[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:
parent
7a03666401
commit
2879a03647
7
.github/workflows/issue-write.yml
vendored
7
.github/workflows/issue-write.yml
vendored
@ -5,6 +5,7 @@ on:
|
|||||||
workflows:
|
workflows:
|
||||||
- "Check code formatting"
|
- "Check code formatting"
|
||||||
- "Check for private emails used in PRs"
|
- "Check for private emails used in PRs"
|
||||||
|
- "PR Request Release Note"
|
||||||
types:
|
types:
|
||||||
- completed
|
- completed
|
||||||
|
|
||||||
@ -92,7 +93,11 @@ jobs:
|
|||||||
|
|
||||||
var pr_number = 0;
|
var pr_number = 0;
|
||||||
gql_result.repository.ref.associatedPullRequests.nodes.forEach((pr) => {
|
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;
|
pr_number = pr.number;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -2,7 +2,6 @@ name: PR Request Release Note
|
|||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
pull-requests: write
|
|
||||||
|
|
||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
@ -41,3 +40,10 @@ jobs:
|
|||||||
--token "$GITHUB_TOKEN" \
|
--token "$GITHUB_TOKEN" \
|
||||||
request-release-note \
|
request-release-note \
|
||||||
--pr-number ${{ github.event.pull_request.number}}
|
--pr-number ${{ github.event.pull_request.number}}
|
||||||
|
|
||||||
|
- uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 #v4.3.0
|
||||||
|
if: always()
|
||||||
|
with:
|
||||||
|
name: workflow-args
|
||||||
|
path: |
|
||||||
|
comments
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
import argparse
|
import argparse
|
||||||
from git import Repo # type: ignore
|
from git import Repo # type: ignore
|
||||||
import html
|
import html
|
||||||
|
import json
|
||||||
import github
|
import github
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
@ -653,7 +654,13 @@ def request_release_note(token: str, repo_name: str, pr_number: int):
|
|||||||
mention = f"@{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. "
|
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. "
|
||||||
|
try:
|
||||||
pr.as_issue().create_comment(comment)
|
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()
|
parser = argparse.ArgumentParser()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user