From e7c8e1e24d927d2284636a1b881dc58bdb933c61 Mon Sep 17 00:00:00 2001 From: "Wei-Chun, Chang" Date: Tue, 24 Sep 2024 08:57:08 +0800 Subject: [PATCH 1/4] Remove unnecessary message Signed-off-by: Wei-Chun, Chang --- recce/github.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/recce/github.py b/recce/github.py index c572617d..398f2d91 100644 --- a/recce/github.py +++ b/recce/github.py @@ -128,9 +128,7 @@ def get_pull_request(branch, owner, repo_name, github_token=None): return pr except UnknownObjectException: - if github_token is None: - print(f"Repository {owner}/{repo_name} not found. Please provide '$GITHUB_TOKEN' environment variable.") - else: + if github_token is not None: print( f"Repository {owner}/{repo_name} not found. If it is private repo, please add the 'repo' scope to the token.") return None From fb7a71c168fc37442705b8060d508c6b529ccae4 Mon Sep 17 00:00:00 2001 From: "Wei-Chun, Chang" Date: Tue, 24 Sep 2024 16:03:02 +0800 Subject: [PATCH 2/4] Present PR related warning only in cloud mode Signed-off-by: Wei-Chun, Chang --- recce/github.py | 24 +++++++++--------------- recce/pull_request.py | 5 ++++- recce/state.py | 4 ++-- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/recce/github.py b/recce/github.py index 398f2d91..fb9cab87 100644 --- a/recce/github.py +++ b/recce/github.py @@ -3,7 +3,7 @@ import re import zipfile from datetime import datetime -from typing import List +from typing import List, Tuple, Optional import requests from github import Artifact, Github, Auth, UnknownObjectException, PullRequest @@ -116,7 +116,7 @@ def recce_base_artifact(**kwargs): pass -def get_pull_request(branch, owner, repo_name, github_token=None): +def get_pull_request(branch, owner, repo_name, github_token=None) -> Tuple[Optional[PullRequest], Optional[str]]: g = Github(auth=Auth.Token(github_token)) if github_token else Github() try: @@ -125,34 +125,28 @@ def get_pull_request(branch, owner, repo_name, github_token=None): for pr in pulls: if pr.head.ref == branch: - return pr + return pr, None except UnknownObjectException: if github_token is not None: - print( - f"Repository {owner}/{repo_name} not found. If it is private repo, please add the 'repo' scope to the token.") - return None + return None, f"Repository {owner}/{repo_name} not found. If it is private repo, please add the 'repo' scope to the token." - return None + return None, None -def recce_pr_information(github_token=None) -> PullRequest: +def recce_pr_information(github_token=None) -> Tuple[Optional[PullRequest], Optional[str]]: branch = current_branch() repo = hosting_repo() if not repo: - print('This is not a git repository.') - return + return None, 'This is not a git repository.' if '/' not in repo: - print('This is not a GitHub repository.') - return + return None, 'This is not a GitHub repository.' owner, repo_name = repo.split('/') github_token = github_token if github_token else os.getenv("GITHUB_TOKEN") - pr = get_pull_request(branch, owner, repo_name, github_token) - - return pr if pr else None + return get_pull_request(branch, owner, repo_name, github_token) def is_github_codespace(): diff --git a/recce/pull_request.py b/recce/pull_request.py index 63b55d12..8da7deeb 100644 --- a/recce/pull_request.py +++ b/recce/pull_request.py @@ -34,7 +34,10 @@ def fetch_pr_metadata(**kwargs): pr_info.repository = metadata.get('github_repository') else: repo = hosting_repo() - pr = recce_pr_information(github_token=kwargs.get('github_token')) + pr, message = recce_pr_information(github_token=kwargs.get('github_token')) + if kwargs.get('cloud') and message: + print(message) + if pr: pr_info.repository = repo pr_info.id = pr.number diff --git a/recce/state.py b/recce/state.py index 464bdb69..d5ba7675 100644 --- a/recce/state.py +++ b/recce/state.py @@ -179,7 +179,7 @@ def __init__(self, if self.cloud_mode: if not self.cloud_options.get('token'): raise Exception('No GitHub token is provided to access the pull request information.') - self.pr_info = fetch_pr_metadata(github_token=self.cloud_options.get('token')) + self.pr_info = fetch_pr_metadata(cloud=self.cloud_mode, github_token=self.cloud_options.get('token')) if self.pr_info.id is None: raise Exception('Cannot get the pull request information from GitHub.') @@ -483,7 +483,7 @@ def __init__(self, cloud_options: Optional[Dict[str, str]] = None): if not self.cloud_options.get('token'): raise Exception('No GitHub token is provided to access the pull request information.') - self.pr_info = fetch_pr_metadata(github_token=self.cloud_options.get('token')) + self.pr_info = fetch_pr_metadata(cloud=True, github_token=self.cloud_options.get('token')) if self.pr_info.id is None: raise Exception('Cannot get the pull request information from GitHub.') From 8afed02f4ae143c4706054443ebddb1129664d02 Mon Sep 17 00:00:00 2001 From: "Wei-Chun, Chang" Date: Tue, 24 Sep 2024 16:34:38 +0800 Subject: [PATCH 3/4] Replace Optional with Union Signed-off-by: Wei-Chun, Chang --- recce/github.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recce/github.py b/recce/github.py index fb9cab87..59d6659a 100644 --- a/recce/github.py +++ b/recce/github.py @@ -3,7 +3,7 @@ import re import zipfile from datetime import datetime -from typing import List, Tuple, Optional +from typing import List, Tuple, Union import requests from github import Artifact, Github, Auth, UnknownObjectException, PullRequest @@ -116,7 +116,7 @@ def recce_base_artifact(**kwargs): pass -def get_pull_request(branch, owner, repo_name, github_token=None) -> Tuple[Optional[PullRequest], Optional[str]]: +def get_pull_request(branch, owner, repo_name, github_token=None) -> Tuple[Union[PullRequest, None], Union[str, None]]: g = Github(auth=Auth.Token(github_token)) if github_token else Github() try: @@ -134,7 +134,7 @@ def get_pull_request(branch, owner, repo_name, github_token=None) -> Tuple[Optio return None, None -def recce_pr_information(github_token=None) -> Tuple[Optional[PullRequest], Optional[str]]: +def recce_pr_information(github_token=None) -> Tuple[Union[PullRequest, None], Union[str, None]]: branch = current_branch() repo = hosting_repo() From c699965fd90f1d0b47d7c847f88faa97d7725c98 Mon Sep 17 00:00:00 2001 From: "Wei-Chun, Chang" Date: Tue, 24 Sep 2024 16:47:28 +0800 Subject: [PATCH 4/4] Type hint for user defined class Signed-off-by: Wei-Chun, Chang --- recce/github.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recce/github.py b/recce/github.py index 59d6659a..af75c454 100644 --- a/recce/github.py +++ b/recce/github.py @@ -3,7 +3,7 @@ import re import zipfile from datetime import datetime -from typing import List, Tuple, Union +from typing import List, Tuple, Optional import requests from github import Artifact, Github, Auth, UnknownObjectException, PullRequest @@ -116,7 +116,7 @@ def recce_base_artifact(**kwargs): pass -def get_pull_request(branch, owner, repo_name, github_token=None) -> Tuple[Union[PullRequest, None], Union[str, None]]: +def get_pull_request(branch, owner, repo_name, github_token=None) -> Tuple[Optional[type(PullRequest)], Optional[str]]: g = Github(auth=Auth.Token(github_token)) if github_token else Github() try: @@ -134,7 +134,7 @@ def get_pull_request(branch, owner, repo_name, github_token=None) -> Tuple[Union return None, None -def recce_pr_information(github_token=None) -> Tuple[Union[PullRequest, None], Union[str, None]]: +def recce_pr_information(github_token=None) -> Tuple[Optional[type(PullRequest)], Optional[str]]: branch = current_branch() repo = hosting_repo()