From 82afce7d1da967a3e1f10a52ca90054a9de89023 Mon Sep 17 00:00:00 2001 From: openhands Date: Wed, 14 Jan 2026 16:29:28 +0000 Subject: [PATCH 1/2] ci: auto-approve and auto-merge sync PRs Co-authored-by: openhands --- .github/workflows/sync-agent-sdk-openapi.yml | 26 ++++++++++++++++++++ .github/workflows/sync-docs-code-blocks.yml | 26 ++++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/.github/workflows/sync-agent-sdk-openapi.yml b/.github/workflows/sync-agent-sdk-openapi.yml index 15b2c217..8855d7e0 100644 --- a/.github/workflows/sync-agent-sdk-openapi.yml +++ b/.github/workflows/sync-agent-sdk-openapi.yml @@ -81,6 +81,7 @@ jobs: - name: Create Pull Request if: steps.detect_changes.outputs.changes == 'true' + id: cpr uses: peter-evans/create-pull-request@v7 with: add-paths: openapi/agent-sdk.json @@ -105,3 +106,28 @@ jobs: - [x] If the change is significant, I have run the documentation site locally and confirmed it renders as expected. **Note**: This is an automated pull request. Please review the changes to ensure they are correct before merging. + + - name: Auto-approve PR + if: steps.cpr.outputs.pull-request-number != '' && secrets.DOCS_SYNC_TOKEN != '' + env: + GH_TOKEN: ${{ secrets.DOCS_SYNC_TOKEN }} + run: | + gh pr review "${{ steps.cpr.outputs.pull-request-number }}" \ + --approve \ + --body "Auto-approving automated OpenAPI sync PR." + + - name: Enable auto-merge + if: steps.cpr.outputs.pull-request-number != '' && secrets.DOCS_SYNC_TOKEN != '' + env: + GH_TOKEN: ${{ secrets.DOCS_SYNC_TOKEN }} + run: | + PR_NUMBER="${{ steps.cpr.outputs.pull-request-number }}" + + # Prefer auto-merge (merges when required checks finish). If auto-merge + # isn't enabled for the repo, fall back to attempting an immediate merge. + gh pr merge "$PR_NUMBER" --auto --delete-branch --squash \ + || gh pr merge "$PR_NUMBER" --auto --delete-branch --merge \ + || gh pr merge "$PR_NUMBER" --auto --delete-branch --rebase \ + || gh pr merge "$PR_NUMBER" --delete-branch --squash \ + || gh pr merge "$PR_NUMBER" --delete-branch --merge \ + || gh pr merge "$PR_NUMBER" --delete-branch --rebase diff --git a/.github/workflows/sync-docs-code-blocks.yml b/.github/workflows/sync-docs-code-blocks.yml index 4466f631..3a06cb2f 100644 --- a/.github/workflows/sync-docs-code-blocks.yml +++ b/.github/workflows/sync-docs-code-blocks.yml @@ -69,6 +69,7 @@ jobs: - name: Create Pull Request if: steps.detect_changes.outputs.changes == 'true' + id: cpr uses: peter-evans/create-pull-request@v7 with: commit-message: | @@ -94,3 +95,28 @@ jobs: ### Checklist - [x] I have read and reviewed the documentation changes to the best of my ability. - [x] If the change is significant, I have run the documentation site locally and confirmed it renders as expected. + + - name: Auto-approve PR + if: steps.cpr.outputs.pull-request-number != '' && secrets.DOCS_SYNC_TOKEN != '' + env: + GH_TOKEN: ${{ secrets.DOCS_SYNC_TOKEN }} + run: | + gh pr review "${{ steps.cpr.outputs.pull-request-number }}" \ + --approve \ + --body "Auto-approving automated docs sync PR." + + - name: Enable auto-merge + if: steps.cpr.outputs.pull-request-number != '' && secrets.DOCS_SYNC_TOKEN != '' + env: + GH_TOKEN: ${{ secrets.DOCS_SYNC_TOKEN }} + run: | + PR_NUMBER="${{ steps.cpr.outputs.pull-request-number }}" + + # Prefer auto-merge (merges when required checks finish). If auto-merge + # isn't enabled for the repo, fall back to attempting an immediate merge. + gh pr merge "$PR_NUMBER" --auto --delete-branch --squash \ + || gh pr merge "$PR_NUMBER" --auto --delete-branch --merge \ + || gh pr merge "$PR_NUMBER" --auto --delete-branch --rebase \ + || gh pr merge "$PR_NUMBER" --delete-branch --squash \ + || gh pr merge "$PR_NUMBER" --delete-branch --merge \ + || gh pr merge "$PR_NUMBER" --delete-branch --rebase From c661a3a962f56542593fc889e4975c58f2806d12 Mon Sep 17 00:00:00 2001 From: openhands Date: Wed, 14 Jan 2026 17:15:15 +0000 Subject: [PATCH 2/2] ci: harden docs sync auto-merge --- .github/workflows/sync-agent-sdk-openapi.yml | 28 ++++++++++---------- .github/workflows/sync-docs-code-blocks.yml | 28 ++++++++++---------- 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/.github/workflows/sync-agent-sdk-openapi.yml b/.github/workflows/sync-agent-sdk-openapi.yml index 8855d7e0..169574c5 100644 --- a/.github/workflows/sync-agent-sdk-openapi.yml +++ b/.github/workflows/sync-agent-sdk-openapi.yml @@ -14,6 +14,10 @@ permissions: contents: write pull-requests: write +concurrency: + group: sync-agent-sdk-openapi + cancel-in-progress: true + jobs: sync-openapi: runs-on: ubuntu-latest @@ -108,26 +112,22 @@ jobs: **Note**: This is an automated pull request. Please review the changes to ensure they are correct before merging. - name: Auto-approve PR - if: steps.cpr.outputs.pull-request-number != '' && secrets.DOCS_SYNC_TOKEN != '' + if: steps.cpr.outputs.pull-request-url && secrets.DOCS_SYNC_TOKEN env: GH_TOKEN: ${{ secrets.DOCS_SYNC_TOKEN }} run: | - gh pr review "${{ steps.cpr.outputs.pull-request-number }}" \ + gh pr review "${{ steps.cpr.outputs.pull-request-url }}" \ --approve \ --body "Auto-approving automated OpenAPI sync PR." - - name: Enable auto-merge - if: steps.cpr.outputs.pull-request-number != '' && secrets.DOCS_SYNC_TOKEN != '' + - name: Enable auto-merge (squash) + if: steps.cpr.outputs.pull-request-url && secrets.DOCS_SYNC_TOKEN env: GH_TOKEN: ${{ secrets.DOCS_SYNC_TOKEN }} run: | - PR_NUMBER="${{ steps.cpr.outputs.pull-request-number }}" - - # Prefer auto-merge (merges when required checks finish). If auto-merge - # isn't enabled for the repo, fall back to attempting an immediate merge. - gh pr merge "$PR_NUMBER" --auto --delete-branch --squash \ - || gh pr merge "$PR_NUMBER" --auto --delete-branch --merge \ - || gh pr merge "$PR_NUMBER" --auto --delete-branch --rebase \ - || gh pr merge "$PR_NUMBER" --delete-branch --squash \ - || gh pr merge "$PR_NUMBER" --delete-branch --merge \ - || gh pr merge "$PR_NUMBER" --delete-branch --rebase + PR_URL="${{ steps.cpr.outputs.pull-request-url }}" + + # Prefer auto-merge (merges when required checks finish). + # If auto-merge isn't enabled for the repo, fall back to attempting an immediate merge. + gh pr merge "$PR_URL" --auto --delete-branch --squash \ + || gh pr merge "$PR_URL" --delete-branch --squash diff --git a/.github/workflows/sync-docs-code-blocks.yml b/.github/workflows/sync-docs-code-blocks.yml index 3a06cb2f..3dd32283 100644 --- a/.github/workflows/sync-docs-code-blocks.yml +++ b/.github/workflows/sync-docs-code-blocks.yml @@ -15,6 +15,10 @@ permissions: contents: write pull-requests: write +concurrency: + group: sync-docs-code-blocks + cancel-in-progress: true + jobs: sync-code-blocks: runs-on: ubuntu-latest @@ -97,26 +101,22 @@ jobs: - [x] If the change is significant, I have run the documentation site locally and confirmed it renders as expected. - name: Auto-approve PR - if: steps.cpr.outputs.pull-request-number != '' && secrets.DOCS_SYNC_TOKEN != '' + if: steps.cpr.outputs.pull-request-url && secrets.DOCS_SYNC_TOKEN env: GH_TOKEN: ${{ secrets.DOCS_SYNC_TOKEN }} run: | - gh pr review "${{ steps.cpr.outputs.pull-request-number }}" \ + gh pr review "${{ steps.cpr.outputs.pull-request-url }}" \ --approve \ --body "Auto-approving automated docs sync PR." - - name: Enable auto-merge - if: steps.cpr.outputs.pull-request-number != '' && secrets.DOCS_SYNC_TOKEN != '' + - name: Enable auto-merge (squash) + if: steps.cpr.outputs.pull-request-url && secrets.DOCS_SYNC_TOKEN env: GH_TOKEN: ${{ secrets.DOCS_SYNC_TOKEN }} run: | - PR_NUMBER="${{ steps.cpr.outputs.pull-request-number }}" - - # Prefer auto-merge (merges when required checks finish). If auto-merge - # isn't enabled for the repo, fall back to attempting an immediate merge. - gh pr merge "$PR_NUMBER" --auto --delete-branch --squash \ - || gh pr merge "$PR_NUMBER" --auto --delete-branch --merge \ - || gh pr merge "$PR_NUMBER" --auto --delete-branch --rebase \ - || gh pr merge "$PR_NUMBER" --delete-branch --squash \ - || gh pr merge "$PR_NUMBER" --delete-branch --merge \ - || gh pr merge "$PR_NUMBER" --delete-branch --rebase + PR_URL="${{ steps.cpr.outputs.pull-request-url }}" + + # Prefer auto-merge (merges when required checks finish). + # If auto-merge isn't enabled for the repo, fall back to attempting an immediate merge. + gh pr merge "$PR_URL" --auto --delete-branch --squash \ + || gh pr merge "$PR_URL" --delete-branch --squash