[llvm] [workflows] Fix release note request workflow (PR #94784)
Tom Stellard via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 7 11:13:11 PDT 2024
https://github.com/tstellar created https://github.com/llvm/llvm-project/pull/94784
We need to use the issue-write workflow to write the comments, because pull_request targets don't have permissions to write comments.
>From 31751bad57f1003f3841ca6a16b811e19df1d08e Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Fri, 7 Jun 2024 10:23:28 -0700
Subject: [PATCH] [workflows] Fix release note request workflow
We need to use the issue-write workflow to write the comments, because
pull_request targets don't have permissions to write comments.
---
.github/workflows/issue-write.yml | 7 ++++++-
.github/workflows/pr-request-release-note.yml | 8 +++++++-
llvm/utils/git/github-automation.py | 11 ++++++++++-
3 files changed, 23 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/issue-write.yml b/.github/workflows/issue-write.yml
index e003be006c4e1..616b323ad5fac 100644
--- a/.github/workflows/issue-write.yml
+++ b/.github/workflows/issue-write.yml
@@ -5,6 +5,7 @@ on:
workflows:
- "Check code formatting"
- "Check for private emails used in PRs"
+ - "PR Request Release Note"
types:
- completed
@@ -92,7 +93,11 @@ jobs:
var pr_number = 0;
gql_result.repository.ref.associatedPullRequests.nodes.forEach((pr) => {
- if (pr.baseRepository.owner.login = context.repo.owner && pr.state == 'OPEN') {
+
+ // The largest PR number is the one we care about. The only way
+ // to have more than one associated pull requests is if all the
+ // old pull requests are in the closed state.
+ if (pr.baseRepository.owner.login = context.repo.owner && pr.number > pr_number) {
pr_number = pr.number;
}
});
diff --git a/.github/workflows/pr-request-release-note.yml b/.github/workflows/pr-request-release-note.yml
index 5e48ce7aee2e2..2fa501dda16bb 100644
--- a/.github/workflows/pr-request-release-note.yml
+++ b/.github/workflows/pr-request-release-note.yml
@@ -2,7 +2,6 @@ name: PR Request Release Note
permissions:
contents: read
- pull-requests: write
on:
pull_request:
@@ -41,3 +40,10 @@ jobs:
--token "$GITHUB_TOKEN" \
request-release-note \
--pr-number ${{ github.event.pull_request.number}}
+
+ - uses: actions/upload-artifact at 26f96dfa697d77e81fd5907df203aa23a56210a8 #v4.3.0
+ if: always()
+ with:
+ name: workflow-args
+ path: |
+ comments
diff --git a/llvm/utils/git/github-automation.py b/llvm/utils/git/github-automation.py
index 1766ccb38ba25..46d05dab005c2 100755
--- a/llvm/utils/git/github-automation.py
+++ b/llvm/utils/git/github-automation.py
@@ -11,6 +11,7 @@
import argparse
from git import Repo # type: ignore
import html
+import json
import github
import os
import re
@@ -653,7 +654,15 @@ def request_release_note(token: str, repo_name: str, pr_number: int):
mention = f"@{submitter}"
comment = f"{mention} (or anyone else). If you would like to add a note about this fix in the release notes (completely optional). Please reply to this comment with a one or two sentence description of the fix. When you are done, please add the release:note label to this PR. "
- pr.as_issue().create_comment(comment)
+ try:
+ pr.as_issue().create_comment(comment)
+ except:
+ # Failed to create comment so emit file instead
+ with open("comments", "w") as file:
+ data = [
+ {"body" : comment}
+ ]
+ json.dump(data, file)
parser = argparse.ArgumentParser()
More information about the llvm-commits
mailing list