diff --git a/.github/scripts/label_community_user.py b/.github/scripts/label_community_user.py index d95f1bf372d7..1df61cec6df5 100644 --- a/.github/scripts/label_community_user.py +++ b/.github/scripts/label_community_user.py @@ -4,7 +4,7 @@ import requests GITHUB_API_URL = "https://api.github.com" -GITHUB_TOKEN = os.environ.get("GITHUB_TOKEN") +GITHUB_TOKEN = os.environ.get("MY_GITHUB_TOKEN") assert GITHUB_TOKEN, "GITHUB_TOKEN environment variable not set" HEADERS = { @@ -59,12 +59,21 @@ def get_nvidia_members() -> list[str]: return members -def add_label_to_pr(repo_name: str, pr_number: str, label: str): +def add_label_to_pr(repo_owner: str, repo_name: str, pr_number: str, + label: str): """Adds a label to a pull request.""" - url = f"{GITHUB_API_URL}/repos/NVIDIA/{repo_name}/issues/{pr_number}/labels" + url = f"{GITHUB_API_URL}/repos/{repo_owner}/{repo_name}/issues/{pr_number}/labels" payload = {"labels": [label]} + print(f"Attempting to add label. URL: {url}, Payload: {payload}") try: response = requests.post(url, headers=HEADERS, json=payload) + print(f"API Response Status Code: {response.status_code}") + try: + response_json = response.json() + print(f"API Response JSON: {response_json}") + except requests.exceptions.JSONDecodeError: + print(f"API Response Text (not JSON): {response.text}") + response.raise_for_status() print(f"Successfully added label '{label}' to PR #{pr_number}.") except requests.exceptions.RequestException as e: @@ -78,6 +87,8 @@ def main(): assert pr_author, "PR_AUTHOR environment variable not set" pr_number = os.environ.get("PR_NUMBER") assert pr_number, "PR_NUMBER environment variable not set" + repo_owner = os.environ.get("REPO_OWNER") + assert repo_owner, "REPO_OWNER environment variable not set" repo_name = os.environ.get("REPO_NAME") assert repo_name, "REPO_NAME environment variable not set" community_label = os.environ.get("COMMUNITY_LABEL") @@ -95,11 +106,11 @@ def main(): is_member = pr_author.lower() in nvidia_members print(f"User '{pr_author}' is a member of NVIDIA: {is_member}") - if not is_member: + if is_member: print( - f"User '{pr_author}' is a community user. Adding label '{community_label}'." + f"User '{pr_author}' is not a community user. Adding label '{community_label}'." ) - add_label_to_pr(repo_name, pr_number, community_label) + add_label_to_pr(repo_owner, repo_name, pr_number, community_label) else: print( f"User '{pr_author}' is an NVIDIA member. No label will be added.") diff --git a/.github/workflows/label_community_pr.yml b/.github/workflows/label_community_pr.yml index 6ae9322c4bf4..4e08b779e05e 100644 --- a/.github/workflows/label_community_pr.yml +++ b/.github/workflows/label_community_pr.yml @@ -3,6 +3,8 @@ name: Label Community PR on: pull_request: types: [opened] +permissions: + pull-requests: write jobs: label_pr: @@ -21,9 +23,10 @@ jobs: - name: Run labeling script env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + MY_GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }} PR_AUTHOR: ${{ github.event.pull_request.user.login }} PR_NUMBER: ${{ github.event.pull_request.number }} + REPO_OWNER: ${{ github.event.repository.owner.login }} REPO_NAME: ${{ github.event.repository.name }} - COMMUNITY_LABEL: "Community want to contribute" + COMMUNITY_LABEL: "test_label" run: python .github/scripts/label_community_user.py