-
Notifications
You must be signed in to change notification settings - Fork 13.5k
[workflows] Add a job for requesting a release note on release branch PRs #91826
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
@llvm/pr-subscribers-github-workflow Author: Tom Stellard (tstellar) ChangesWe have been collecting release notes from the PRs for most of the 18.1.x releases and this just helps automate the process. Full diff: https://github.com/llvm/llvm-project/pull/91826.diff 2 Files Affected:
diff --git a/.github/workflows/pr-request-release-note.yml b/.github/workflows/pr-request-release-note.yml
new file mode 100644
index 0000000000000..0fcb95f1fe294
--- /dev/null
+++ b/.github/workflows/pr-request-release-note.yml
@@ -0,0 +1,43 @@
+name: PR Request Release Note
+
+permissions:
+ contents: read
+ pull-requests: write
+
+on:
+ pull_request:
+ types:
+ - closed
+
+jobs:
+ request-release-note:
+ if: >-
+ github.repository_owner == 'llvm' &&
+ startsWith(github.ref, 'refs/heads/release')
+
+ runs-on: ubuntu-latest
+ steps:
+ # We need to pull the script from the main branch, so that we ensure
+ # we get the latest version of this script.
+ - name: Checkout Scripts
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+ with:
+ sparse-checkout: |
+ llvm/utils/git/requirements.txt
+ llvm/utils/git/github-automation.py
+ sparse-checkout-cone-mode: false
+
+ - name: Install Dependencies
+ run: |
+ pip install -r llvm/utils/git/requirements.txt
+
+ - name: Request Release Note
+ env:
+ # We need to use an llvmbot token here, because we are mentioning a user.
+ GITHUB_TOKEN: ${{ github.token }}
+ run: |
+ python3 llvm/utils/git/github-automation.py \
+ --repo "$GITHUB_REPOSITORY" \
+ --token "$GITHUB_TOKEN" \
+ request-release-note \
+ --pr-number ${{ github.event.pull_request.number}}
diff --git a/llvm/utils/git/github-automation.py b/llvm/utils/git/github-automation.py
index 1b5141e42594b..ab9b5e07230d4 100755
--- a/llvm/utils/git/github-automation.py
+++ b/llvm/utils/git/github-automation.py
@@ -637,6 +637,25 @@ def execute_command(self) -> bool:
return False
+def request_release_note(token:str, repo_name:str, pr_number:int):
+ repo = github.Github(token).get_repo(repo_name)
+ pr = repo.get_issue(pr_number).as_pull_request()
+ submitter = pr.user.login
+ if submitter == 'llvmbot':
+ m = re.search("Requested by: @(.+)$", pr.body)
+ if not m:
+ submitter = None
+ print("Warning could not determine user who requested backport.")
+ submitter = m.group(1)
+
+ mention = ''
+ if submitter:
+ 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)
+
+
parser = argparse.ArgumentParser()
parser.add_argument(
"--token", type=str, required=True, help="GitHub authentication token"
@@ -703,6 +722,18 @@ def execute_command(self) -> bool:
help="The user that requested this backport",
)
+request_release_note_parser = subparsers.add_parser(
+ "request-release-note",
+ help="Request a release note for a pull request",
+)
+request_release_note_parser.add_argument(
+ "--pr-number",
+ type=int,
+ required=True,
+ help="The pull request to request the release note",
+)
+
+
args = parser.parse_args()
if args.command == "issue-subscriber":
@@ -743,3 +774,5 @@ def execute_command(self) -> bool:
sys.exit(1)
elif args.command == "setup-llvmbot-git":
setup_llvmbot_git()
+elif args.command == "request-release-note":
+ request_release_note(args.token, args.repo, args.pr_number)
|
✅ With the latest revision this PR passed the Python code formatter. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great! Thanks for this!
/cherry-pick c99d115 |
Failed to cherry-pick: c99d115) https://github.com/llvm/llvm-project/actions/runs/9071247831 Please manually backport the fix and push it to your github fork. Once this is done, please create a pull request |
… PRs (llvm#91826) We have been collecting release notes from the PRs for most of the 18.1.x releases and this just helps automate the process. (cherry picked from commit c99d115)
/pull-request #92049 |
We have been collecting release notes from the PRs for most of the 18.1.x releases and this just helps automate the process.