GitHub Actionsで、Cron定期実行でプルリクエストを作成してマージする
6458 ワード
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.GITHUB_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.GITHUB_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.GITHUB_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コマンドのオプションで、ベースブランチ、タイトル、ラベル、内容を設定しています。
この箇所でエラーがでる場合が、いくつかあります。
- すでに
dev
->stage
のプルリクエストが存在している場合 - コンフリクトが存在する場合
- 差分が存在しない場合
以上3つが、エラーでプルリクエストが作成できない場合です。
マージ部分
- name: 【定期実行】Merge Pull Request dev2stage
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN}}
run: |
gh pr merge ${{steps.create-pull-request.outputs.PULL_REQUEST_URI}} --merge
マージ部分では、GitHub CLIを使用して、マージします。
Author And Source
この問題について(GitHub Actionsで、Cron定期実行でプルリクエストを作成してマージする), 我々は、より多くの情報をここで見つけました https://zenn.dev/ekusiadadus/articles/auto_merge_ghactions著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Collection and Share based on the CC protocol