2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GitHub Actionsで、Cron定期実行でプルリクエストを作成してマージする

Last updated at Posted at 2022-03-28

GitHub Actionsで、自動でプルリクを作成してマージする方法

dev -> stage へのプルリクエストの作成とマージをする機会があり、定期的に実行できたら楽なのでGitHub Actionsで作成してみました。

name: Auto merge dev2stage

on:
  schedule:
    - cron: "0 15 * * *"

jobs:
  auto-merge-dev2stage:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2
        with:
          ref: dev
      - name: 【定期実行】Create Pull Request dev2stage
        id: create-pull-request
        env:
          GH_TOKEN: ${{ secrets.AUTO_DEP_TOKEN }}
        run: |
          PULL_REQUEST_URI=$(gh pr create -B stage -t 【定期実行】dev2stage -l 'auto merge' -b "")
          echo "::set-output name=PULL_REQUEST_URI::$PULL_REQUEST_URI"
      - name: 【定期実行】Merge Pull Request dev2stage
        env:
          GH_TOKEN: ${{ secrets.AUTO_DEP_TOKEN }}
        run: |
          gh pr merge ${{steps.create-pull-request.outputs.PULL_REQUEST_URI}} --merge

定期実行

定期実行部分は、以下です。

on:
  schedule:
    - cron: "0 15 * * *"

日本時間に合わせるために、15にしています。

プルリクエスト作成部分

      - name: 【定期実行】Create Pull Request dev2stage
        id: create-pull-request
        env:
          GH_TOKEN: ${{ secrets.AUTO_DEP_TOKEN }}
        run: |
          PULL_REQUEST_URI=$(gh pr create -B stage -t 【定期実行】dev2stage -l 'auto merge' -b "")
          echo "::set-output name=PULL_REQUEST_URI::$PULL_REQUEST_URI"

プルリクエスト作成部分では、GitHub CLIを使用して、プルリクエストを作成します。
gh pr create 部分で、CLIを用いてプルリクエストの作成を行っています。
gh prコマンドのオプションで、ベースブランチ、タイトル、ラベル、内容を設定しています。

この箇所でエラーがでる場合が、いくつかあります。

  1. すでにdev->stageのプルリクエストが存在している場合
  2. コンフリクトが存在する場合
  3. 差分が存在しない場合

以上3つが、エラーでプルリクエストが作成できない場合です。

マージ部分

      - name: 【定期実行】Merge Pull Request dev2stage
        env:
          GH_TOKEN: ${{ secrets.AUTO_DEP_TOKEN }}
        run: |
          gh pr merge ${{steps.create-pull-request.outputs.PULL_REQUEST_URI}} --merge

マージ部分では、GitHub CLIを使用して、マージします。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?