👏

GithubのAuto Request Review使ってみた

2023/06/25に公開

先にまとめ

  • Auto Reqquest Reviewを使って、プルリクエストを出すと自動でレビュアーをアサインする
  • 使えそうだけど、一人で試すのは無理でした
    • 複数人いる状態で試すのがよさそう
  • .github/の中の設定が必要

やりたかったこと

  • GithubにPullRequestを出したときに、自動でレビュアーがアサインする

やったこと

  • 設定: Github Tokenは最初から使えました(他で設定してたかも
  • 下記の2つのymlを.githubの中に置く

.github/workflows/auto_request_review.yml

  • デフォルトから、この部分だけ変更
    use_local: false
.github/workflows/auto_request_review.yml
name: Auto Request Review

on:
  pull_request:
    types: [opened, ready_for_review, reopened]

jobs:
  auto-request-review:
    name: Auto Request Review
    runs-on: ubuntu-latest
    steps:
      - name: Request review based on files changes and/or groups the author belongs to
        uses: necojackarc/auto-request-review@v0.12.0
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          config: .github/reviewers.yml # Config file location override
          # Look for config locally during run instead of in repo.
          # For instance, if you'd like to use a config file stored in external storage,
          # you can fetch it before you run this action, then let this action pick it up with `use_local: true`.
          # This defaults to false if not specified.
          # See https://github.com/necojackarc/auto-request-review/issues/76 for more details.
          use_local: false

.github/reviewers.yml

  • (下記はデフォルトから一部残した形)
  • (自分で自分をアサインしているので、動かない。エラーにはならない)
  • revieweeが自分のときreviewerをアサイン
  • すべてのファイルに対してアサイン
.github/reviewers.yml
reviewers:

  # Reviewers per author.
  # Keys are reviewees, each of which has an array of reviewers.
  per_author:
    shimo:
      - shimo
files:
  # Keys are glob expressions.
  # You can assign groups defined above as well as GitHub usernames.
  '**':
    - shimo 

options:
  ignore_draft: true
  ignored_keywords:
    - DO NOT REVIEW
  enable_group_assignment: false

  # Randomly pick reviewers up to this number.
  # Do not set this option if you'd like to assign all matching reviewers.
  # number_of_reviewers: 3

  # If it's true, the last matching files-change pattern takes the most precedence (CODEOWNERS-compatible)
  # See https://github.com/necojackarc/auto-request-review/pull/80 for more details.
  last_files_match_only: false

ためした結果

PullReqeestを出すと、自動でActionsが走ります。
(その前に1秒くらいだけマージするボタンが現れる)

これはチェック中の画面

(OKになると、マージできる)
(※この場合、マージできることと、レビュアーのアサインは独立しているので、すぐにマージできる状態になっているはず)

エラー、Actionsのログ

.github/reviewers.ymlのファイル名が間違えていたとき、これもエラーにはならない

Fetching configuration file from the source branch
Warning: No configuration file is found locally; terminating the process

1人アカウントで、自分をレビュアーにはできないのでこういう結果で(エラーにはならず、マージできる状態になる)

Matched no reviewers
No default reviewers are matched; terminating the process

存在しないGithuアカウントを指定したとき

Error: HttpError: Resource not accessible by integration

似ている話

https://qiita.com/sii_gizmo/items/b70a83b46a4895e6f7e8

Discussion