🎆

GitLab×Teamsで社内の申請フローを少し楽にした話

2024/10/13に公開

前提

そこそこ大きかったりネームバリューのある会社で働いたことのある人ならイメージつくと思うんだけど、セキュリティ対策で諸々縛られているんだ。
例えば、今まで使っていなかった外部のWebサービスの利用やアプリをインストールする時。会社の申請フローに則って部内の上司の許可をもらってから、情シス部門に依頼をを出さないといけない。

既にインストールされているVsCodeの拡張機能を一つ追加するにしても。部内で完結できるとはいえ上司の許可をもらわないといけないし、何を追加したのかの証跡を残さないといけない。

事故が起きてからでは遅いから仕方のないことだが、まぁ煩わしいよね。
自宅で検証してできたことを職場でやろうとしても、こういう環境面のせいで1週間とかかかるし、「だったら手間はかかるけど他の方法でいいや」ってなっちゃう。これが何回も繰り返されるとストレスだし生産性が爆落ちだから誰のためにもならないよね。

自宅での個人開発と同じスピード感でノンストレスにとはいかなくても、少しでもみんなが楽になる方法はないかなって考えて試してみた。それがチームメンバーから思った以上に好評だったから紹介しようと思う。

やったことの概要

  1. 絵を描いて無駄なフローを俯瞰で整理した。
  2. GitLabとTeamsの組み合わせで無駄なフローを自動化した。

1. 現行の申請〜管理までの運用フローの見直し

絵を描いて無駄なフローを俯瞰で整理した。

絵を描いてみたらこんな感じだった。

無駄だらけ・・・。なんでこんなことになっているのか?
方々に確認して見たら色んな理由がわかってきた。

無駄①

いちいちTeamsで手動で連絡している点。

わざわざ上司にTeamsで連絡していた理由

Redmineのチケット更新でメール通知は飛ぶものの、"My boss is very, very busy."
なので自動通知のメールの見落としは発生する前提。Teamsでメンションして連絡した方が確認してくれたかを追いやすいし、リマインドもしやすい。ってことでわざわざ手動で連絡してた。

メンバーにもTeamsで連絡していた理由

これはいち早くメンバーに伝えたかったから。言うなれば優しさ。
ほんとにみんな人が良い職場なんだ。

無駄②

申請が通った時に「RedmineのWiki」と「ファイルサーバのテキストファイル」を更新している点。
これも確認を進めたら理由がわかってきた。

RedmineのWikiで管理していた理由

プロジェクト管理ToolがRedmineになっていて、開発者的に普段から馴染みがあってよく使用するのがredmineだったから。ってか私を含めた開発者の所属する部門的にはRedmineにノウハウが溜まりまくっているから、全部ここに集約させたいっていう温度感。

ファイルサーバのテキストファイルで管理していた理由

主管が異なる他部門でもVscode使うし、管理のために両部門が見れるようにしていたためだった。
元々ファイルサーバのあたりを整えてくれていた人が退職していたし、他部門からは拡張機能の追加申請とかもしばらくしていなさそうだった。

2. こう変えてみた

GitLabで管理も申請もできるようにしてみた

  1. 上司がすぐにYesかNoかだけをすぐ判断できるようにするために、マージリクエスト時のテンプレートを整えた。セキュリティのチェックの観点を含んだフォーマットを用意して、新人でも観点漏れ無く申請できるようになった。
  2. 許可されたものだけでなく、拒否されたもののリストと、その理由も追えるようにした。何度も同じものが申請されては拒否されてを繰り返すことがなくなった。
  3. ついでに、setting.jsonとか基本設定も新人向けに展開しておいたから、新人のセットアップが早くなったし、既存メンバー同士でおすすめ設定とか共有するようになった。
  4. マージリクエストが証跡になるから、事後のRedmineのWikiやファイルさーばのテキスト更新の作業自体を無くせた。
  5. ファイルサーバとかRedmineのWikiはGitLab見ればわかるから思い切って廃止させた。

GitLabのWebhook機能でTeamsに自動で通知するようにした

該当のリポジトリのmainブランチに対して発生したマージリクエストに対して、自動でみんながよく見るTeamsに通知を出すようにした。開発時のソースコードだけでなく、申請に応用してみた感じ。

反省と次にやりたいこと

Redmineに申請系の証跡を残すのが現時点では社内の結構上段の規約に記載されているらしかった。このルールは完全に見落としていた。そのため、現時点ではRedmineのチケットを手動起票して、コミットのハッシュのみチケットに貼り付けてクローズするという不要な手作業でカバーしている。今後はGitLabとRedmineとを連携するAPI作れそうなので、この作業も自動化してもっと楽にしたい。

Discussion