年中アイス

いろいろつらつら

Pull Requestを自動で作成する

rnssh, rnzooの新しいバージョンを出そうとするときに、別リポジトリになっているhomebrew-rnssh, homebrew-rnzooを編集してpushするのが、地味に面倒だと思うようになり、他の自動化でも使えるかなと考えて、Pull Requestの自動作成をやってみるようにしてみました。

こんな感じで動かします。今回はversionとsha256 hashを渡してます。

bash genpr.sh 0.0.0 ab01cd23ef45ab01cd23ef45ab01cd23ef45ab01cd23ef45

コードはgistに。rnzooのhomebrewのバージョンアップ対応。

手順としてはすごく単純で、以下を行っているだけ。

  • tmpディレクトリにcloneしてくる
  • sedで該当ファイルを編集する
  • git commitする
  • git pushする
  • hubコマンドでPull Requestを作成する

実際にできたプルリク(テストなのでクローズしてます)

sedで編集している部分は、方法は何でもよく、コードで書き換えられるなら、他の用途にも使えそうです。AWSのCodenizeに使ってるroadworker(Route53)やmiam(IAM)などの定義追加や変更は、この応用でPull Requestを生成できそうな雰囲気。

hubコマンドは、githubCLIで操作できるもので、githubのreleaseも作れるようなので、あとはそこをスクリプトにすれば、リリースが全部自動化できます。最後のhomebrewの反映だけプルリクをマージのワンクッション。*1

rnsshとrnzooのリリース自動化状況

参考

*1:今回の場合は別にPull Requestでなくてmasterにそのままpushするでもいいんですが、練習と個人的に最後の一押しは手でいいかなというところ。