name: code-format-msg on: workflow_run: workflows: [code-format] types: [completed] concurrency: group: code-format-msg-${{ github.head_ref || github.run_id }} permissions: contents: read pull-requests: write jobs: pr-context: name: acquire-pr-context runs-on: ubuntu-latest outputs: PR_HEADSHA: ${{ steps.set-pr-context.outputs.head-sha }} PR_NUMBER: ${{ steps.set-pr-context.outputs.number }} if: ${{ github.event.workflow_run.event == 'pull_request' }} steps: - name: get-pr-context id: set-pr-context env: GH_TOKEN: ${{ github.token }} PR_TARGET_REPO: ${{ github.repository }} PR_BRANCH: |- ${{ (github.event.workflow_run.head_repository.owner.login != github.event.workflow_run.repository.owner.login) && format('{0}:{1}', github.event.workflow_run.head_repository.owner.login, github.event.workflow_run.head_branch) || github.event.workflow_run.head_branch }} run: | gh pr view --repo "${PR_TARGET_REPO}" "${PR_BRANCH}" \ --json 'number,headRefOid' \ --jq '"number=\(.number)\nhead-sha=\(.headRefOid)"' \ >> $GITHUB_OUTPUT remove-comment-if-success: if: ${{ github.event.workflow_run.conclusion == 'success' }} runs-on: ubuntu-latest needs: [pr-context] env: PR_HEADSHA: ${{ needs.pr-context.outputs.PR_HEADSHA }} PR_NUMBER: ${{ needs.pr-context.outputs.PR_NUMBER }} steps: - name: Remove existing "format check failed" comment uses: actions/github-script@v7 with: script: | const owner = context.repo.owner; const repo = context.repo.repo; const { data: comments } = await github.rest.issues.listComments({ owner, repo, issue_number: ${{ env.PR_NUMBER }}, }); const targetComment = comments.find(comment => comment.body.includes("Please enable github action in **YOUR FORKED REPO** to make code-format workflow work") ); if (targetComment) { await github.rest.issues.deleteComment({ owner, repo, comment_id: targetComment.id, }); console.log("Removed existing code-format failure comment."); } else { console.log("No existing format failure comment to remove."); } post-comment-if-failure: if: ${{ github.event.workflow_run.conclusion == 'failure' }} runs-on: ubuntu-latest needs: [pr-context] env: PR_HEADSHA: ${{ needs.pr-context.outputs.PR_HEADSHA }} PR_NUMBER: ${{ needs.pr-context.outputs.PR_NUMBER }} steps: - name: Post comment on failed code-format if not existing uses: actions/github-script@v7 with: script: | const owner = context.repo.owner; const repo = context.repo.repo; const { data: comments } = await github.rest.issues.listComments({ owner, repo, issue_number: ${{ env.PR_NUMBER }}, }); const existingComment = comments.find(comment => comment.body.includes("Please enable github action in **YOUR FORKED REPO** to make code-format workflow work") ); if (existingComment) { console.log("A code-format failure comment already exists."); } else { await github.rest.issues.createComment({ owner, repo, issue_number: ${{ env.PR_NUMBER }}, body: "Please enable github action in **YOUR FORKED REPO** to make code-format workflow work", }); console.log("Created code-format failure comment."); }