Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

PR Update Action

オープン
#9,141 コメント 0 件 リアクション 0 件 担当者 3 名 GitHub で見る

メンテナーはふだん 3 日以内に返信

@KumoLiu がすでに取り組んでいます。

2026年9月29日 から。

評価

この issue はまだ評価されていません。

説明

Is your feature request related to a problem? Please describe.
When PRs are approved they need their branches to be manually kept up to date with the state of dev, this is a bottleneck issue in getting more PRs through because we can't automate a pipeline. The solution is to use an action to update the PRs when dev gets pushed. This should update only the oldest PR which is both approved and has automerge enabled. These two properties together can thus be used by maintainers to signify a PR is ready to be eventually merged, there shouldn't every be many of these so it's not going to create ordering confusion, but will stop working if a PR is help up with test fails. This is an alternative to merge queues.

Describe the solution you'd like
The action below is derived from this test which automates this process:

name: Auto-Update PRs

on:
  push:
    branches:
      - main # Change to your primary target branch (e.g., dev)
  workflow_dispatch: # Allows manual triggering if needed

permissions:
  contents: write
  pull-requests: write

jobs:
  update-prs:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout target branch
        uses: actions/checkout@v6
        with:
          fetch-depth: 0 # Fetches all history so branches can be merged locally

      - name: Update the oldest PR which is approved and automerging-enabled
        env:
          GH_TOKEN: ${{ secrets.PAT_UPDATE_TOKEN }}
        run: |
          # Find all open PRs targeting this branch which are open and approved
          PR_DATA=$(gh pr list --state open --search 'review:approved' --base ${{ github.ref_name }} --json number,reviewDecision,autoMergeRequest)

          echo '================================'
          echo "PR_DATA:"
          echo $PR_DATA
          echo '================================'

          # select the oldest open approved PR with automerge enabled
          OLDEST_APPROVED=$(echo $PR_DATA | jq -r '.[] | select(.reviewDecision == "APPROVED") | select(.autoMergeRequest != null) | "\(.number)"'|head -n 1)

          if [ -z "$OLDEST_APPROVED" ]
          then
            echo "No approved PRs to update."
          else
            echo "Updating PR $OLDEST_APPROVED ..."
            gh pr update-branch "$OLDEST_APPROVED" || echo "Failed to update PR #$OLDEST_APPROVED (merge conflicts?)."
          fi

This critically relies on a personal access token (PAT) being set to PAT_UPDATE_TOKEN which has read/write permissions for Contents and PullRequests (and maybe Actions as well). This won't work with GITHUB_TOKEN since approval will be required to run the actions in each updated PR and so obviate the point of the exercise.

The possible plan then is to PR this action in and setup a PAT to provide the permissions, though whose PAT is the question to answer. This stems from a recent change to Github security rules.

主要言語
Python
スター
8.7k
フォーク
1.6k
平均マージ
3日 10時間
マージ済み PR(30日)
18

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

Project-MONAI/MONAI のほかの issue

Project-MONAI/MONAI の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。