- scala-stewardという、全自動でScala projectのlibrary update pull requestを送ってくれるやつが数年前からある
- https://github.com/scala-steward-org/scala-steward
- しばらくは、OSSなpublicなものは、普通、公式のリポジトリ一覧が書いてあるファイルに、自分のリポジトリを追記するpull reqを送ってmergeしてもらう方式だった
- これ https://github.com/scala-steward-org/repos/blob/7295c03b9fc26d54e057e8307bfc5578733cd59d/repos-github.md
- それはそれで一度mergeされれば運用必要ないので楽だが、頻繁に追記や変更、削除する場合は、わざわざmergeしてもらう手間が面倒
- もちろん、private repoだったり、github enterpriseや他のプラットフォーム(github以外もサポートしてる)の場合は、独自インスタンスを立ち上げて自由に動かすことも可能だが、それはそれで運用の手間増える(前職でそれやったなぁ)
- 今年5月くらいに、GitHub Actions用のものが作られた、やった〜
- https://github.com/scala-steward-org/scala-steward-action
- それを使えば、上記の微妙なデメリット(pull reqのmergeの手間 or 運用の手間)が解消される
- しかしこれの現状の使い方としては
(botあるいは自分の)tokenを用意して、scala-stewardを動かしたいrepositoryの設定からそれを登録
という作業が必要である - ここでの微妙な問題点としては
- よって、tokenやbotすら用意する必要ない方法を見つけたので、scala-steward本体のgithub actionsのrepositoryにpull reqした(イマココ
- この方法は、それはそれで、使って良いのか謎なgithub側の実装依存な可能性もなくもないが・・・
- https://github.com/scala-steward-org/scala-steward-action/pull/176
- これ、何もリリースしなくても、forkしたrepoでも
xuwei-k/scala-steward-action@65461e9a57695ac4522cd0fb36ffa0596beab835
みたいにhash値を直書きでも動かせるんですね、とても便利 - 使い方例 https://github.com/xuwei-k/scala-steward-test-1/commit/d871418d30c944d750cddc4ae894fc46090a0f64
- 実際にgithub-actions botから送られたpull req https://github.com/xuwei-k/scala-steward-test-1/pull/1
- これ、何もリリースしなくても、forkしたrepoでも
追記:
つらい
GitHubのスタッフの方が言っている以下のことですか?
— nwtgck (ja) (@nwtgck_ja) 2020年10月19日
> Events raised from workflows using the GITHUB_TOKEN do not currently trigger other workflows.https://t.co/EOSaaoWZy0
GitHub Actions以外の他のCIは動くので、scala-stewardは以前blogに書いた方法で自分のリポジトリで動かしつつ、TravisCIなどで普通のCIやってたら、それはそのまま維持して複数のCI併用すればいいか、という謎のノウハウが https://t.co/faKK7yCkvT
— Kenji Yoshida (@xuwei_k) 2020年10月19日
さらに追記
続編