Skip to content

Commit 2836d8e

Browse files
authored
[workflows] Fix permissions check for creating new releases (#81163)
The default GitHub token does not have read permissions on the org, so we need to use a custom token in order to read the members of the llvm-release-managers team.
1 parent b9a071d commit 2836d8e

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

.github/workflows/release-tasks.yml

+3-1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ jobs:
2828
name: Create a New Release
2929
runs-on: ubuntu-latest
3030
needs: validate-tag
31+
3132
steps:
3233
- name: Install Dependencies
3334
run: |
@@ -40,8 +41,9 @@ jobs:
4041
- name: Create Release
4142
env:
4243
GITHUB_TOKEN: ${{ github.token }}
44+
USER_TOKEN: ${{ secrets.RELEASE_TASKS_USER_TOKEN }}
4345
run: |
44-
./llvm/utils/release/./github-upload-release.py --token "$GITHUB_TOKEN" --release ${{ needs.validate-tag.outputs.release-version }} --user ${{ github.actor }} create
46+
./llvm/utils/release/./github-upload-release.py --token "$GITHUB_TOKEN" --release ${{ needs.validate-tag.outputs.release-version }} --user ${{ github.actor }} --user-token "$USER_TOKEN" create
4547
release-documentation:
4648
name: Build and Upload Release Documentation
4749
needs:

llvm/utils/release/github-upload-release.py

+12-4
Original file line numberDiff line numberDiff line change
@@ -77,20 +77,28 @@ def upload_files(repo, release, files):
7777
parser.add_argument("--token", type=str)
7878
parser.add_argument("--release", type=str)
7979
parser.add_argument("--user", type=str)
80+
parser.add_argument("--user-token", type=str)
8081

8182
# Upload args
8283
parser.add_argument("--files", nargs="+", type=str)
8384

8485
args = parser.parse_args()
8586

86-
github = github.Github(args.token)
87-
llvm_org = github.get_organization("llvm")
87+
gh = github.Github(args.token)
88+
llvm_org = gh.get_organization("llvm")
8889
llvm_repo = llvm_org.get_repo("llvm-project")
8990

9091
if args.user:
92+
if not args.user_token:
93+
print("--user-token option required when --user is used")
94+
sys.exit(1)
9195
# Validate that this user is allowed to modify releases.
92-
user = github.get_user(args.user)
93-
team = llvm_org.get_team_by_slug("llvm-release-managers")
96+
user = gh.get_user(args.user)
97+
team = (
98+
github.Github(args.user_token)
99+
.get_organization("llvm")
100+
.get_team_by_slug("llvm-release-managers")
101+
)
94102
if not team.has_in_members(user):
95103
print("User {} is not a allowed to modify releases".format(args.user))
96104
sys.exit(1)

0 commit comments

Comments
 (0)