[workflows] Fix release note request workflow (#94784)

We need to use the issue-write workflow to write the comments, because
pull_request targets don't have permissions to write comments.
This commit is contained in:
Tom Stellard 2024-06-27 15:54:22 -07:00 committed by GitHub
parent 7a03666401
commit 2879a03647
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 21 additions and 3 deletions

View File

@ -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;
}
});

View File

@ -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@26f96dfa697d77e81fd5907df203aa23a56210a8 #v4.3.0
if: always()
with:
name: workflow-args
path: |
comments

View File

@ -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,13 @@ 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()