Introduce Mako to fix pr_triage workflow (#5574)

* pr_triage: Fix invalid workflow

* Don't assign reviewers to draft PRs

* Add team review request for developers team

* Introduce Mako to make team reviewers work
This commit is contained in:
TSRBerry 2023-08-16 23:01:34 +02:00 committed by GitHub
parent b12ea343d0
commit 9b8625d999
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 12 deletions

View File

@ -29,4 +29,4 @@ infra:
- TSRBerry - TSRBerry
default: default:
- marysaka - @developers

View File

@ -1,9 +1,10 @@
from pathlib import Path from pathlib import Path
from typing import List, Set from typing import List, Set
from github import Github from github import Auth, Github
from github.Repository import Repository from github.Repository import Repository
from github.GithubException import GithubException from github.GithubException import GithubException
import os
import sys import sys
import yaml import yaml
@ -25,6 +26,10 @@ def update_reviewers(config, repo: Repository, pr_id: int) -> int:
sys.stderr.writable(f"Unknown PR #{pr_id}\n") sys.stderr.writable(f"Unknown PR #{pr_id}\n")
return 1 return 1
if pull_request.draft:
print("Not assigning reviewers for draft PRs")
return 0
pull_request_author = pull_request.user.login pull_request_author = pull_request.user.login
reviewers = set() reviewers = set()
team_reviewers = set() team_reviewers = set()
@ -53,16 +58,19 @@ def update_reviewers(config, repo: Repository, pr_id: int) -> int:
if __name__ == "__main__": if __name__ == "__main__":
if len(sys.argv) != 5: if len(sys.argv) != 7:
sys.stderr.write("usage: <token> <repo_path> <pr_id> <config_path>\n") sys.stderr.write("usage: <app_id> <private_key_env_name> <installation_id> <repo_path> <pr_id> <config_path>\n")
sys.exit(1) sys.exit(1)
token = sys.argv[1] app_id = sys.argv[1]
repo_path = sys.argv[2] private_key = os.environ[sys.argv[2]]
pr_id = int(sys.argv[3]) installation_id = sys.argv[3]
config_path = Path(sys.argv[4]) repo_path = sys.argv[4]
pr_id = int(sys.argv[5])
config_path = Path(sys.argv[6])
g = Github(token) auth = Auth.AppAuth(app_id, private_key).get_installation_auth(installation_id)
g = Github(auth=auth)
repo = g.get_repo(repo_path) repo = g.get_repo(repo_path)
if not repo: if not repo:

View File

@ -27,9 +27,11 @@ jobs:
sync-labels: true sync-labels: true
dot: true dot: true
- run: pip3 install PyGithub
- name: Assign reviewers - name: Assign reviewers
if: ! github.event.pull_request.draft
run: | run: |
pip3 install PyGithub python3 .github/update_reviewers.py ${{ secrets.MAKO_APP_ID }} "MAKO_PRIVATE_KEY" ${{ secrets.MAKO_INSTALLATION_ID }} ${{ github.repository }} ${{ github.event.pull_request.number }} .github/reviewers.yml
python3 .github/update_reviewers.py ${{ secrets.GITHUB_TOKEN }} ${{ github.repository }} ${{ github.event.pull_request.number }} .github/reviewers.yml
shell: bash shell: bash
env:
MAKO_PRIVATE_KEY: ${{ secrets.MAKO_PRIVATE_KEY }}