From 0a4f2a3f77b296db255498ee2fde8ec5f48a4e55 Mon Sep 17 00:00:00 2001 From: Mattia Dal Ben Date: Mon, 25 Aug 2025 08:30:31 +0200 Subject: [PATCH] ci(workflows): switch to shared force merge workflow --- .github/workflows/force-merge.yml | 120 +----------------------------- 1 file changed, 2 insertions(+), 118 deletions(-) diff --git a/.github/workflows/force-merge.yml b/.github/workflows/force-merge.yml index 0f2fa056ca8..d2b9c15e5d4 100644 --- a/.github/workflows/force-merge.yml +++ b/.github/workflows/force-merge.yml @@ -10,122 +10,6 @@ permissions: pull-requests: write issues: write -env: - quorum: 3 - jobs: - force_merge: - # This job only runs for pull request comments - if: ${{ github.event.issue.pull_request }} - runs-on: ubuntu-latest - - steps: - - name: Check pull request - id: should-run - uses: actions/github-script@v7 - with: - script: | - const issue = await github.rest.issues.get({ - issue_number: context.issue.number, - owner: context.repo.owner, - repo: context.repo.repo - }) - - const isClosed = issue.data.closed_at != null - const isDraft = issue.data.draft - - return !isClosed && !isDraft - - - name: Count votes - id: count-votes - if: ${{ steps.should-run.outputs.result == 'true' }} - uses: actions/github-script@v7 - with: - script: | - const comments = await github.rest.issues.listComments({ - issue_number: context.issue.number, - owner: context.repo.owner, - repo: context.repo.repo - }) - - // Check if debug mode is enabled by any comment containing "/debug-force-merge" - const debugEnabled = comments.data.some(comment => - comment.body && comment.body.includes('/debug-force-merge') - ); - - // Debug: Print all commenters and their associations (only if debug enabled) - if (debugEnabled) { - console.log("=== All Comments Debug ==="); - for(const comment of comments.data) { - console.log(`User: ${comment.user.login}`); - console.log(`Association: ${comment.author_association}`); - console.log(`Has voting rights: ${comment.author_association === 'MEMBER' || comment.author_association === 'OWNER'}`); - console.log(`Has casted vote: ${comment.body && comment.body.trim() === '/force-merge'}`); - console.log("---"); - } - } - - const votes = new Map(); - for(const comment of comments.data) { - const hasVotingRights = comment.author_association === 'MEMBER' || comment.author_association === 'OWNER' - const hasCastedVote = comment.body && comment.body.trim() === '/force-merge' - - if(hasVotingRights && hasCastedVote) { - votes.set(comment.user.login, comment.author_association); - } - } - - // Display voters and role - console.table(votes) - - return votes.size - - - name: Set lables - if: ${{ steps.should-run.outputs.result == 'true' }} - uses: actions/github-script@v7 - with: - script: | - const labels = await github.rest.issues.listLabelsOnIssue({ - issue_number: context.issue.number, - owner: context.repo.owner, - repo: context.repo.repo - }) - const labelsToAdd = [] - for(const label of labels.data) { - if(!label.name.startsWith('force-merge-votes-')) { - labelsToAdd.push(label.name) - } - } - - const votes = ${{ steps.count-votes.outputs.result }} - if(votes >= 1 && votes < ${{env.quorum}}) { - labelsToAdd.push("force-merge-votes-" + votes) - } - - const result = github.rest.issues.setLabels({ - issue_number: context.issue.number, - owner: context.repo.owner, - repo: context.repo.repo, - labels: labelsToAdd - }) - - - name: Perform merge - if: ${{ (steps.should-run.outputs.result == 'true') && (steps.count-votes.outputs.result >= env.quorum) }} - uses: actions/github-script@v7 - with: - github-token: ${{ secrets.KURA_BOT_GITHUB_TOKEN }} - script: | - github.rest.issues.addLabels({ - issue_number: context.issue.number, - owner: context.repo.owner, - repo: context.repo.repo, - labels: ['force-merged'] - }) - - await github.rest.pulls.merge({ - pull_number: context.issue.number, - owner: context.repo.owner, - repo: context.repo.repo, - merge_method: "squash" - }); - + call-workflow-in-public-repo: + uses: eclipse-kura/.github/.github/workflows/_shared-force-merge.yml@main