From 09cba4d416e26fb64c21d9b74ac46e74bb75c07b Mon Sep 17 00:00:00 2001 From: harshitha-cstk Date: Thu, 23 Apr 2026 11:20:28 +0530 Subject: [PATCH 1/2] Add back-merge workflow for master to development --- .github/workflows/back-merge-pr.yml | 63 +++++++++++++++++++++++++++++ .github/workflows/check-branch.yml | 2 +- 2 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/back-merge-pr.yml diff --git a/.github/workflows/back-merge-pr.yml b/.github/workflows/back-merge-pr.yml new file mode 100644 index 00000000..d3d2b53a --- /dev/null +++ b/.github/workflows/back-merge-pr.yml @@ -0,0 +1,63 @@ +# Opens a PR from master → development after changes land on master (back-merge). +# +# Permissions: default GITHUB_TOKEN needs repo Settings → Actions → General → +# "Workflow permissions" = read and write (to create pull requests). If your org +# restricts this, create a fine-grained PAT with contents:read + pull-requests:write, +# store it as repo secret GH_TOKEN, and set GH_TOKEN on the "Open back-merge PR" step to: +# env: +# GH_TOKEN: ${{ secrets.GH_TOKEN }} + +name: Back-merge master to development + +on: + push: + branches: [master] + workflow_dispatch: + +permissions: + contents: read + pull-requests: write + +jobs: + open-back-merge-pr: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Open back-merge PR if needed + env: + GH_TOKEN: ${{ github.token }} + run: | + set -euo pipefail + git fetch origin development master + + MASTER_SHA=$(git rev-parse origin/master) + DEV_SHA=$(git rev-parse origin/development) + + if [ "$MASTER_SHA" = "$DEV_SHA" ]; then + echo "master and development are at the same commit; nothing to back-merge." + exit 0 + fi + + EXISTING=$(gh pr list --repo "${{ github.repository }}" \ + --base development \ + --head master \ + --state open \ + --json number \ + --jq 'length') + + if [ "$EXISTING" -gt 0 ]; then + echo "An open PR from master to development already exists; skipping." + exit 0 + fi + + gh pr create --repo "${{ github.repository }}" \ + --base development \ + --head master \ + --title "chore: back-merge master into development" \ + --body "Automated back-merge after changes landed on \`master\`. Review and merge to keep \`development\` in sync." + + echo "Created back-merge PR master → development." diff --git a/.github/workflows/check-branch.yml b/.github/workflows/check-branch.yml index b4907721..421c2535 100644 --- a/.github/workflows/check-branch.yml +++ b/.github/workflows/check-branch.yml @@ -8,7 +8,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Comment PR - if: github.base_ref == 'master' && github.head_ref != 'developement' + if: github.base_ref == 'master' && github.head_ref != 'development' uses: thollander/actions-comment-pull-request@v2 with: message: | From 5f2fcc3492ed3389b2a994b3b3d3a4cea686c9af Mon Sep 17 00:00:00 2001 From: harshitha-cstk Date: Thu, 23 Apr 2026 11:24:41 +0530 Subject: [PATCH 2/2] test back merge --- .github/workflows/back-merge-pr.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/back-merge-pr.yml b/.github/workflows/back-merge-pr.yml index d3d2b53a..02f8cfaa 100644 --- a/.github/workflows/back-merge-pr.yml +++ b/.github/workflows/back-merge-pr.yml @@ -11,7 +11,7 @@ name: Back-merge master to development on: push: - branches: [master] + branches: [test/workflow] workflow_dispatch: permissions: @@ -32,32 +32,32 @@ jobs: GH_TOKEN: ${{ github.token }} run: | set -euo pipefail - git fetch origin development master + git fetch origin development test/workflow - MASTER_SHA=$(git rev-parse origin/master) + MASTER_SHA=$(git rev-parse origin/test/workflow) DEV_SHA=$(git rev-parse origin/development) if [ "$MASTER_SHA" = "$DEV_SHA" ]; then - echo "master and development are at the same commit; nothing to back-merge." + echo "test/workflow and development are at the same commit; nothing to back-merge." exit 0 fi EXISTING=$(gh pr list --repo "${{ github.repository }}" \ --base development \ - --head master \ + --head test/workflow \ --state open \ --json number \ --jq 'length') if [ "$EXISTING" -gt 0 ]; then - echo "An open PR from master to development already exists; skipping." + echo "An open PR from test/workflow to development already exists; skipping." exit 0 fi gh pr create --repo "${{ github.repository }}" \ --base development \ - --head master \ - --title "chore: back-merge master into development" \ - --body "Automated back-merge after changes landed on \`master\`. Review and merge to keep \`development\` in sync." + --head test/workflow \ + --title "chore: back-merge test/workflow into development" \ + --body "Automated back-merge after changes landed on \`test/workflow\`. Review and merge to keep \`development\` in sync." - echo "Created back-merge PR master → development." + echo "Created back-merge PR test/workflow → development."