素敵なGithub生活を実現するライフハック

素敵なGithub生活を実現するライフハック

こんにちは!
平日はコードの海に溺れているこまっちゃんです。

休日は本物の海に潜りたいタイプのSEなのですが、今年一度も潜れておらず、平日モリモリ書いて休日モリモリ潜る、アツい夏を画策中です!

さて、仕事が忙しくなってくると、ついプルリクエスト(以下PR)レビューを忘れたり、後回しにしてしまったりしませんか?
毎回レビュアーやアサイニーを選択するのが少し面倒に感じる時もありますよね。
PRを送った後に修正事項に気がつき修正していたら、うっかり「review」ラベルを外し忘れて、修正中の箇所に新しくコメントがついてしまったり…!

そんな時に便利なTipsをまとめてご紹介です!

PRのリアルタイム通知・リマインド

当社ではコミュニケーションツールとしてSlackを採用しているのですが、GithubとSlackを連携し、PR通知を設定することができます。

個人向けの通知設定では、リアルタイム通知に加え任意の時間にリマインドすることも可能です。

設定方法(個人向け)

右上のアイコン > Settings > Scheduled reminders
photo1

リマインドは30分毎に複数設定することができます。私は出社時・昼食終了後、午後のひと段落ついたタイミングで確認できるよう、3回分設定しています。

また、リアルタイム通知は通知のタイミングをカスタマイズできます。
PRにコメントがついた場合に通知が来るようにしておくと、すぐに確認・修正が可能ですので非常におすすめです!
photo2

ちなみに、Slack通知はこんな形で届きます。
リアルタイム通知は対応後に取り消し線が引かれるため、TODOリストの様にも活用できますね。
(上段:リマインド通知、下段:リアルタイム通知)
photo3

Draft Pull Requestの使用

また、当社では春から本格的に「Draft Pull Request」を使用し始めています。
参考:Draft Pull Requestをリリースしました

レビューが可能な状態か作業中かが明確になる他、進捗をチームメンバーに共有する上でも有用です。

さらに、正式にPRを出した後にDraftに戻すことも可能です。
修正対応中にDraftへ戻すとレビュアーに通知が届かないようになるため、修正中に他メンバーがレビューしてしまうことを防ぐこともできますよ!

レビュアー・アサイニーの自動設定

そして最後に、ちょっとした作業の手間を解消してくれるGithub Actionの設定についてご紹介です。
使用したGithub Actionはこちら → Auto Assign Action

  • asignees = PRを上げる人
  • reviewers = 固定メンバー
    というパターンの場合におすすめです!

設定手順

まず、.github/workflows/配下に actions.ymlファイルを作成します。

name: "Auto Assign"
on:
  pull_request:
    types: [opened, ready_for_review]

jobs:
  auto_assign:
    runs-on: ubuntu-latest
    steps:
      - name: Assign author
        uses: kentaro-m/auto-assign-action@v1.2.1
        with:
          configuration-path: '.github/workflows/auto_assign.yml'

次に、同じ場所にauto_assign.ymlを作成します。
ファイル名を変えたい場合は、上記のconfiguration-pathを修正してください。

# レビュアーの自動アサイン設定
addReviewers: true

# author(PRを出す人)をアサイニーに指定
addAssignees: author

# レビュアーに指定するGitHub user nameを指定
reviewers:
  - GitHub user name 1
  - GitHub user name 2
  - GitHub user name 3
  - GitHub user name 4

# A number of reviewers added to the pull request
# Set 0 to add all the reviewers (default: 0)
numberOfReviewers: 0
# A list of assignees, overrides reviewers if set
# assignees:
#   - assigneeA

# A number of assignees to add to the pull request
# Set to 0 to add all of the assignees.
# Uses numberOfReviewers if unset.
# numberOfAssignees: 2

# A list of keywords to be skipped the process that add reviewers if pull requests include it
# skipKeywords:
#   - wip

# Draftではoffにする場合、以下はfalseにしてください。
runOnDraft: true

ラベルによってフィルターをかけたり、レビュアーにグループを指定することも可能ですので、
ぜひプロジェクトにあった設定を研究していただけたらと思います。

最後に

tips集、いかがでしたでしょうか。
ご存じの方も多い設定であったかもしれませんが、いざやるとなると意外とハードルが高かったりしますよね。
当社でも慣れるまで少々時間はかかりましたが、慣れてしまえばこちらの方が快適だなという印象です。

実は今回掲載しているtipは、今年度のGithub運用について検討会を設け、話し合った内容も元にしています。
会を通じて皆さんの考え方を聞きつつ、より良い設定を検討できたのは非常に良い経験でした。
そういった話し合いのきっかけとしても、このtip集を活用いただけたら嬉しいです!

ちょっとしたことですが、設定すると意外と良いことある?なGithub lifehackでした。ではでは!