dependabotの作成したPRを自動でGithubのプロジェクトボードに追加する
概要
dependabot が自動でプルリクエストを作成してくれる機能は素晴らしいですね。
ただ、開発で Github のプロジェクトボードを利用している場合には、
下記のようなことを思います。
- dependabot が作ったプルリクエストを手動でプロジェクトボードに追加しているけど、作業が面倒・・・
- プルリクエストを作ったら、自動的にプロジェクトボードに追加しておいてほしい
これを解決する Github Actions があったので、設定方法を紹介します。
記事の最後に参考リンクをいくつか貼りましたので、そちらも参照ください。
設定方法
今回は、Create or Update Project Card というアクションを利用します。
念のため、dependabot の自動プルリクエスト作成の設定方法も記載します。
Create or Update Project Card を導入
今回は、下記の Action を利用します。
色々なリポジトリやユーザー、組織などに所属するプロジェクトボードを指定してカードが追加できるので、この Action にしました。
アクセストークンの設定
プロジェクトボードにプルリクエストのカードを追加するために、
リポジトリからプロジェクトボードにアクセスできるアクセストークンを作成する必要があります。
※複数名で開発している場合、アクセストークンを追加しても問題ないかをメンバーに確認するようにしましょう。
- 下記にアクセスして、アクセストークンを作成してください。
- プロジェクトボードにアクセスする権限のあるユーザーでログインしている必要があります。
- https://github.com/settings/tokens/new
-
repo
とadmin:org
の権限が必要(下記の画像のようになります。)
- 先ほど作成したアクセストークンを、リポジトリのシークレットに追加します。
- https://github.com/ユーザー名または組織名/リポジトリ名/settings/secrets/actions/new
-
GHPROJECT_TOKEN
という名前で追加してください。
(もし違う名前にする場合は、後で作成する YAML ファイル内のGHPROJECT_TOKEN
の部分を変更してください。)
YAML ファイル追加
.github/workflows
に、下記の YAML ファイルを追加します。
下記のようなプロジェクトボードやリポジトリという設定で、サンプルの YAML ファイルを作成しました。
- プロジェクトボードのある場所の名前:
TestUser
- リポジトリやユーザー、組織名等を指定
- デフォルトはこの YAML ファイルがあるリポジトリのプロジェクトボードが指定される
- プロジェクトボードの名前:
サンプルプロジェクト
- プルリクエストを追加したいカードの名前:
To do
name: Move dependabot pull requests into To do
on:
pull_request_target:
types: [opened]
jobs:
automate-project-columns:
runs-on: ubuntu-latest
steps:
- uses: peter-evans/create-or-update-project-card@v1
with:
project-location: TestUser
project-name: サンプルプロジェクト
column-name: To do
issue-number: ${{ github.event.number }}
token: ${{ secrets.GHPROJECT_TOKEN }}
試しにプルリクエストを作成してみてください。
ワークフローの実行が成功すれば、
作成したプルリクエストはプロジェクトボードに追加されます。
「dependabot が作成したプルリクエストのときだけ」ジョブを動かしたい
今のままだと、誰がプルリクエストを作成してもアクションが動いてプルリクエストがプロジェクトボードに追加されてしまいます。
「dependabot が作成したときだけ」 という制限をつけます。
jobs:
automate-project-columns:
runs-on: ubuntu-latest
+ if: ${{ github.actor == 'dependabot[bot]' }}
steps:
- uses: peter-evans/create-or-update-project-card@v1
with:
dependabot の自動プルリクエスト作成導入
dependabot の自動プルリクエスト作成導入は、
今回ワークフローを追加したリポジトリに .github/dependabot.yml
を追加するだけです。
今回は一般的なRailsアプリケーションを想定して、
「週に 1 回、gem のバージョンアップをチェックする」という設定を追加します。
version: 2
updates:
- package-ecosystem: "bundler"
directory: "/"
schedule:
interval: "weekly"
- 他の設定(npm など)にしてみたい方は、下記を参考にしてください。
dependabot.yml
で使えるオプションが載っています。
これで、更新の必要な gem がある場合はプルリクエストが自動的に作成されます。
先ほど追加したワークフローがあるので、
dependabot が作成したプルリクエストは、自動的にプロジェクトボードに追加されます。
おわりに
際限なくなんでも面倒だと思ってしまうのはどうにかした方がいいような気もするのですが、
便利にできるところはやっぱり便利にしたいですね
参考サイト・記事
-
Create or Update Project Card · Actions · GitHub Marketplace
- 今回使った Action です。詳しくはこちらの README.md を読んでください。
-
GitHub Project Automation+ · Actions · GitHub Marketplace
- 利用を検討していたが、今回は使わなかった Action です。
project-location
の指定ができないので、こちらの利用は見送りました。
-
個人アクセストークンを使用する - GitHub Docs
- アクセストークンの作り方
-
OAuth App のスコープ - GitHub Docs
- アクセストークンのスコープについて。適切なスコープを指定しましょう。
-
Automating Dependabot with GitHub Actions - GitHub Docs
- dependabot を Github Actions で自動化する方法
-
依存関係の更新の設定オプション - GitHub Docs
-
dependabot.yml
内で使えるオプションの一覧
- 今回使った Action です。詳しくはこちらの README.md を読んでください。
- 利用を検討していたが、今回は使わなかった Action です。
project-location
の指定ができないので、こちらの利用は見送りました。
- アクセストークンの作り方
- アクセストークンのスコープについて。適切なスコープを指定しましょう。
- dependabot を Github Actions で自動化する方法
-
dependabot.yml
内で使えるオプションの一覧
Author And Source
この問題について(dependabotの作成したPRを自動でGithubのプロジェクトボードに追加する), 我々は、より多くの情報をここで見つけました https://qiita.com/murakami-mm/items/682aab172bd414e6fcbb著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .