インフラチームの西川です。
当社ではGitHubを利用しています。いろいろ便利な機能があるのですが社内でコマテクを募集してみたところ意外と知らないものがあったので共有してみます。
- 行動の見える化
- 特定コミットのリンク取得
- 通知
- 行動規範
- ガイドライン
- .github リポジトリ
- テンプレートリポジトリ
- タグをたくさんプッシュさせない
- ドラフトプルリクエスト
- チケットの自動リンク化
- ベースブランチの更新を取り込む
- まだレビューが終わってないプルリクエストの一覧化
- レビュアーの自動割り当て
- コードの所有者
- ファイル単位でレビュー済みをチェックする
- レビュー中のファイルを全部閉じる
- 具体的な修正を提案する
- レビューコメントをラベル化
- デプロイ管理
- リリースノートを自動作成
行動の見える化
以下の設定をすることで、GitHub上の行動を見える化することができます。
docs.github.com
特定コミットのリンク取得
[Copy permalink]でコピーするとファイル変更に左右されないリンクが取れます。
通知
レビュー漏れを防ぐために、リマインダーを定期的に動かすことができます。
個人設定だけではなく、チームの設定をしておくとより抜け漏れを防ぐことができます。
行動規範
OSSでよく見るやつですが、社内向けの規範としても使えます。
ガイドライン
これまたOSSでよく見るやつですが、社内向けのガイドラインとしても使えます。
.github
リポジトリ
publicリポジトリにしないと使えないので社内での利用は難しいですが、 .github
というリポジトリを作成することで行動規範やプルリクエストテンプレートなどを一箇所にまとめられます。
テンプレートリポジトリ
当社ではまだ使ったことないのですが、機会があれば使ってみたい機能です。
テンプレート化できるようなリポジトリ(マイクロサービス等)がある場合に、テンプレートリポジトリから作ると楽ができそうです。
docs.github.com
タグをたくさんプッシュさせない
当社ではタグのプッシュをトリガーに検証環境が構築されたり、デプロイメントのトリガーに使ったりしており、かなりタグの数が多いです。
現在は、いらないタグを自動で消すようにしているのですが、以前はタグが溜まり続けており4000を超えた段階でGitHub APIがエラーを出してリリースできないという事象が発生しました。
暫定対応として、タグを消したのですがなぜか復活してしまうことがありました。
原因としては、gitクライアントの設定で全てのタグをプッシュする機能が有効化されており復活していました。
この設定を有効化すればそういった事象を防ぐことができます。
ドラフトプルリクエスト
社内で意外と使われてない気がします。
チケットの自動リンク化
当社ではBacklogを利用してチケットを管理しています。
Backlogのリンクをプルリクエストにも貼っているのですが、以下の設定をすれば、チケット番号を書くだけで自動でリンクされるようになります。
ベースブランチの更新を取り込む
地味に面倒なベースブランチの更新を取り込む作業ですが、以下の設定をすることでプルリクエスト上で完結することができます。
まだレビューが終わってないプルリクエストの一覧化
以下URLで確認できます。通知を見逃すこともあるので、ことあるごとにチェックしてます。
https://github.com/pulls/review-requested
レビュアーの自動割り当て
プルリクエスト作る際に誰をレビュアーにするか悩むことがありますが、以下の機能を使うことによって自動でレビュアーを割り当てることができます。
割り当ての仕方も順次割り当てるか、負荷を見て割り当てるかを選ぶことができます。
またチーム内に割り当てたくない人がいれば除外することも可能です。
コードの所有者
コードの所有者を設定することで、該当ファイルが変更された際に自動でレビュアーとして割り当てられます。
コードの所有者をチームにして、レビュアーの自動割り当てと組み合わせるとプルリクエストが作られたタイミングでレビュアーがいい感じに割り当てられます。
ファイル単位でレビュー済みをチェックする
個人的にかなり便利な機能だと思ってます。
どこまでレビューしたかを保存できます。
チェック済みのファイルが更新された場合は、チェックが外れます。
レビュー中のファイルを全部閉じる
プルリクエストで変更を見るときに、左上の v をaltキー押しながらクリックすると
全ファイルを閉じることができます。
具体的な修正を提案する
こういうふうに直してくださいと説明するより直接コードを提示したい時に便利です。
提案された内容は[Commit suggestion]ボタンから直接提案内容をコミットできます。
また、同様の提案が複数ある場合は[Add sugestion to batch]でまとめて1コミットにできます。
レビューコメントをラベル化
レビューコメントにも種類があり、質問だったり指摘だったり温度感もまちまちだったりします。
レビューコメントにラベルをつけてテンプレ化することにより、コメントの意図が伝わりやすくなります。
docs.github.com
デプロイ管理
デプロイメントの状態管理をGitHub上で行うことができます。
デプロイメントの状態管理をしておくと、fourkeysの計測ツールを使って自動的にfourkeysを計測できるようになります。
リリースノートを自動作成
当社では現状リリースノートを部分的に利用するにとどまっていますが、以下の機能でリリースノートを自動作成することができます。
docs.github.com