OpenWork Tech Blog

社員クチコミサービスを運営しているオープンワークエンジニアによるテックブログです。

GitHubコマテク集

インフラチームの西川です。
当社ではGitHubを利用しています。いろいろ便利な機能があるのですが社内でコマテクを募集してみたところ意外と知らないものがあったので共有してみます。

行動の見える化

以下の設定をすることで、GitHub上の行動を見える化することができます。
docs.github.com

特定コミットのリンク取得

[Copy permalink]でコピーするとファイル変更に左右されないリンクが取れます。

通知

レビュー漏れを防ぐために、リマインダーを定期的に動かすことができます。

docs.github.com

個人設定だけではなく、チームの設定をしておくとより抜け漏れを防ぐことができます。

docs.github.com

行動規範

OSSでよく見るやつですが、社内向けの規範としても使えます。

docs.github.com

ガイドライン

これまたOSSでよく見るやつですが、社内向けのガイドラインとしても使えます。

docs.github.com

.github リポジトリ

publicリポジトリにしないと使えないので社内での利用は難しいですが、 .github というリポジトリを作成することで行動規範やプルリクエストテンプレートなどを一箇所にまとめられます。

docs.github.com

テンプレートリポジトリ

当社ではまだ使ったことないのですが、機会があれば使ってみたい機能です。
テンプレート化できるようなリポジトリ(マイクロサービス等)がある場合に、テンプレートリポジトリから作ると楽ができそうです。
docs.github.com

タグをたくさんプッシュさせない

当社ではタグのプッシュをトリガーに検証環境が構築されたり、デプロイメントのトリガーに使ったりしており、かなりタグの数が多いです。 現在は、いらないタグを自動で消すようにしているのですが、以前はタグが溜まり続けており4000を超えた段階でGitHub APIがエラーを出してリリースできないという事象が発生しました。 暫定対応として、タグを消したのですがなぜか復活してしまうことがありました。
原因としては、gitクライアントの設定で全てのタグをプッシュする機能が有効化されており復活していました。
この設定を有効化すればそういった事象を防ぐことができます。

docs.github.com

ドラフトプルリクエスト

社内で意外と使われてない気がします。

docs.github.com

チケットの自動リンク化

当社ではBacklogを利用してチケットを管理しています。
Backlogのリンクをプルリクエストにも貼っているのですが、以下の設定をすれば、チケット番号を書くだけで自動でリンクされるようになります。

docs.github.com

ベースブランチの更新を取り込む

地味に面倒なベースブランチの更新を取り込む作業ですが、以下の設定をすることでプルリクエスト上で完結することができます。

docs.github.com

まだレビューが終わってないプルリクエストの一覧化

以下URLで確認できます。通知を見逃すこともあるので、ことあるごとにチェックしてます。

https://github.com/pulls/review-requested

レビュアーの自動割り当て

プルリクエスト作る際に誰をレビュアーにするか悩むことがありますが、以下の機能を使うことによって自動でレビュアーを割り当てることができます。
割り当ての仕方も順次割り当てるか、負荷を見て割り当てるかを選ぶことができます。
またチーム内に割り当てたくない人がいれば除外することも可能です。

docs.github.com

コードの所有者

コードの所有者を設定することで、該当ファイルが変更された際に自動でレビュアーとして割り当てられます。
コードの所有者をチームにして、レビュアーの自動割り当てと組み合わせるとプルリクエストが作られたタイミングでレビュアーがいい感じに割り当てられます。

docs.github.com

ファイル単位でレビュー済みをチェックする

個人的にかなり便利な機能だと思ってます。
どこまでレビューしたかを保存できます。
チェック済みのファイルが更新された場合は、チェックが外れます。

レビュー中のファイルを全部閉じる

プルリクエストで変更を見るときに、左上の v をaltキー押しながらクリックすると

全ファイルを閉じることができます。

具体的な修正を提案する

こういうふうに直してくださいと説明するより直接コードを提示したい時に便利です。
提案された内容は[Commit suggestion]ボタンから直接提案内容をコミットできます。
また、同様の提案が複数ある場合は[Add sugestion to batch]でまとめて1コミットにできます。

docs.github.com

レビューコメントをラベル化

レビューコメントにも種類があり、質問だったり指摘だったり温度感もまちまちだったりします。
レビューコメントにラベルをつけてテンプレ化することにより、コメントの意図が伝わりやすくなります。
docs.github.com

デプロイ管理

デプロイメントの状態管理をGitHub上で行うことができます。

docs.github.com

デプロイメントの状態管理をしておくと、fourkeysの計測ツールを使って自動的にfourkeysを計測できるようになります。

github.com

リリースノートを自動作成

当社では現状リリースノートを部分的に利用するにとどまっていますが、以下の機能でリリースノートを自動作成することができます。
docs.github.com