GitHub actions で PR が無ければ作る、あれば更新する
こんな感じでできた。gh pr list で標準で jq 使えることが今回の発見。かっこいい。
env: TARGET_BRANCH: 'target-branch' GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} jobs: create-or-update-pr: runs-on: ubuntu-latest steps: - name: search pr number and set to env # この場合は head が 'target-branch' かつマージされてないブランチを探している run: echo "PR_NUMBER=$(gh pr list --search "head:${{ env.TARGET_BRANCH }} is:unmerged" --json number --jq ".[].number")" >> $GITHUB_ENV - name: create pull request # 空なら 0 が入る ref. https://docs.github.com/ja/actions/learn-github-actions/expressions#operators if: ${{ env.PR_NUMBER == 0 }} run: gh pr create --base main --head ${{ env.TARGET_BRANCH }} --title "タイトル" --body "本文" - name: update pull request if: ${{ env.PR_NUMBER != 0 }} run: gh pr edit ${{ env.PR_NUMBER }} --title "更新後のタイトル" --body "更新後の本文"