gitHubActionsでホストリポでの変更を検知してプルリク作成
labelをホストリポジトリで管理して、変更があれば参照してる他のリポジトリたちも変更されるようにしてるけど、そうなると
pull_request_templateとか
labelerとか
こいつらもそうしたくなってきた、、、
gitHubActionsでホストリポでの変更を検知してプルリク作成ってどうするんや、できるんか調べてみる
ファイル共有ということ
strategy:
matrix:
とは
matrix は、job を複数の変数の組み合わせで実行するための機能です。
こんな便利なものが
今回紹介する仕組みの核となるのが GitHub Actionsのrepository-dispatch トリガーです。
このトリガーは、GitHub APIを経由して、GitHub Actionsのワークフローを起動することができます。そのため、次のように 異なるリポジトリでのGitHub Actionsワークフローを連携できます。
ほーん なるほど
うーん
ホストリポで新規作成したリポに対してのコードを書かないといけないのか
新規追加するリポが増えるたびに追加していかないといけない
不便だ
更新元のリポジトリ 1のGitHub Actionsは以下の通りです。
name: dispatch target file updated
on:
push:
branches:
- main
paths:
- 'target.yml'
jobs:
dispatch-target-updated:
strategy:
matrix:
repo: ['organization/repository2']
name: dispatch-target-updated
runs-on: ubuntu-latest
steps:
- name: dispatch target-updated
uses: peter-evans/repository-dispatch@v1
with:
token: ${{ secrets.GITHUB_ACCESS_TOKEN }}
repository: ${{ matrix.repo }}
event-type: target-updated
PATじゃなくてGitHub Appsでやろうとしてる
ただ、
これがGitHub Apps非対応pat登録方法
別にリアルタイムで同期が必要なわけじゃないので、週1回の更新で十分すぎるし、必要なリポでは手動で回せばいいので、トリガーはスケジュールにする
GITHUB_TOKEN
でプルリク作成やcontentsの読みができるそう
よしできた
バグ発生
ワークフロー内に変更があった時に、プルリク作成すると失敗する
これを見てみる
ワークフローを書き換えるプルリクを作成するには権限が必要そうだ
簡単に実装できる方法としては、PATがあるが、
それぞれのリポジトリのシークレットに登録する必要があるので極力使用したくない
これが良さそうかな
GitHubAppsも各リポジトリにそれぞれセキュリティキーが必要だ
面倒なので、workflowsは対象外にした設計にする