From 2821558b6636c095f79a8b711b04d9be2eccae09 Mon Sep 17 00:00:00 2001 From: pseusys Date: Sun, 26 Feb 2023 10:16:13 +0100 Subject: [PATCH] making commit using bot test --- .github/workflows/review_pr.yml | 18 +++++++++++++++--- sources/manager_download.py | 17 ++++++++--------- sources/manager_environment.py | 5 +++-- sources/manager_github.py | 9 +-------- 4 files changed, 27 insertions(+), 22 deletions(-) diff --git a/.github/workflows/review_pr.yml b/.github/workflows/review_pr.yml index a09185c..5d0fb80 100644 --- a/.github/workflows/review_pr.yml +++ b/.github/workflows/review_pr.yml @@ -29,10 +29,16 @@ jobs: - name: Install Dependencies ๐Ÿ“ฅ run: pip install -r requirements.txt - - name: Create assets folder ๐Ÿ“ฅ + - name: Create Assets Folder ๐Ÿ“ฅ run: mkdir assets + - name: Create Previous Comments ๐Ÿซฃ + uses: int128/hide-comment-action@v1 + with: + starts-with: "README stats current output:" + - name: Run Action Preview on Current Code ๐Ÿงช + id: make-stats env: INPUT_GH_TOKEN: ${{ secrets.INPUT_GITHUB_TOKEN }} INPUT_WAKATIME_API_KEY: ${{ secrets.WAKATIME_API_KEY }} @@ -54,6 +60,12 @@ jobs: INPUT_COMMIT_BY_ME: True INPUT_DEBUG_LOGGING: True # This is for testing purpose only not for production DEBUG_RUN: True # This is for testing purpose only not for production - PR_NUMBER: ${{ github.event.number }} # This is for testing purpose only not for production - CURRENT_GITHUB_ACTION_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This is for testing purpose only not for production run: python3 sources/main.py + + - name: Create Comment + uses: jungwinter/comment@v1 + with: + type: create + body: ${{ steps.run_tests.outputs.README_CONTENT }} + issue_number: ${{ github.event.number }} + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/sources/manager_download.py b/sources/manager_download.py index 6208fc4..71db5d9 100644 --- a/sources/manager_download.py +++ b/sources/manager_download.py @@ -227,7 +227,7 @@ class DownloadManager: return await DownloadManager._get_remote_resource(resource, safe_load) @staticmethod - async def _fetch_graphql_query(query: str, use_github_action: bool = False, **kwargs) -> Dict: + async def _fetch_graphql_query(query: str, **kwargs) -> Dict: """ Execute GitHub GraphQL API simple query. :param query: Dynamic query identifier. @@ -235,7 +235,7 @@ class DownloadManager: :param kwargs: Parameters for substitution of variables in dynamic query. :return: Response JSON dictionary. """ - headers = {"Authorization": f"Bearer {EM.GH_TOKEN if not use_github_action else EM.CURRENT_GITHUB_ACTION_TOKEN}"} + headers = {"Authorization": f"Bearer {EM.GH_TOKEN}"} res = await DownloadManager._client.post( "https://api.github.com/graphql", json={"query": Template(GITHUB_API_QUERIES[query]).substitute(kwargs)}, headers=headers ) @@ -268,7 +268,7 @@ class DownloadManager: return list(), dict(hasNextPage=False) @staticmethod - async def _fetch_graphql_paginated(query: str, use_github_action: bool = False, **kwargs) -> Dict: + async def _fetch_graphql_paginated(query: str, **kwargs) -> Dict: """ Execute GitHub GraphQL API paginated query. Queries 100 new results each time until no more results are left. @@ -278,11 +278,11 @@ class DownloadManager: :param kwargs: Parameters for substitution of variables in dynamic query. :return: Response JSON dictionary. """ - initial_query_response = await DownloadManager._fetch_graphql_query(query, use_github_action, **kwargs, pagination="first: 100") + initial_query_response = await DownloadManager._fetch_graphql_query(query, **kwargs, pagination="first: 100") page_list, page_info = DownloadManager._find_pagination_and_data_list(initial_query_response) while page_info["hasNextPage"]: pagination = f'first: 100, after: "{page_info["endCursor"]}"' - query_response = await DownloadManager._fetch_graphql_query(query, use_github_action, **kwargs, pagination=pagination) + query_response = await DownloadManager._fetch_graphql_query(query, **kwargs, pagination=pagination) new_page_list, page_info = DownloadManager._find_pagination_and_data_list(query_response) page_list += new_page_list _, page_info = DownloadManager._find_pagination_and_data_list(initial_query_response) @@ -290,7 +290,7 @@ class DownloadManager: return initial_query_response @staticmethod - async def get_remote_graphql(query: str, use_github_action: bool = False, **kwargs) -> Dict: + async def get_remote_graphql(query: str, **kwargs) -> Dict: """ Execute GitHub GraphQL API query. The queries are defined in `GITHUB_API_QUERIES`, all parameters should be passed as kwargs. @@ -298,16 +298,15 @@ class DownloadManager: Merges paginated sub-queries if pagination is required for the query. Parse and return response as JSON. :param query: Dynamic query identifier. - :param use_github_action: Use GitHub actions bot auth token instead of current user. :param kwargs: Parameters for substitution of variables in dynamic query. :return: Response JSON dictionary. """ key = f"{query}_{md5(dumps(kwargs, sort_keys=True).encode('utf-8')).digest()}" if key not in DownloadManager._REMOTE_RESOURCES_CACHE: if "$pagination" in GITHUB_API_QUERIES[query]: - res = await DownloadManager._fetch_graphql_paginated(query, use_github_action, **kwargs) + res = await DownloadManager._fetch_graphql_paginated(query, **kwargs) else: - res = await DownloadManager._fetch_graphql_query(query, use_github_action, **kwargs) + res = await DownloadManager._fetch_graphql_query(query, **kwargs) DownloadManager._REMOTE_RESOURCES_CACHE[key] = res else: res = DownloadManager._REMOTE_RESOURCES_CACHE[key] diff --git a/sources/manager_environment.py b/sources/manager_environment.py index d98fb07..a13b170 100644 --- a/sources/manager_environment.py +++ b/sources/manager_environment.py @@ -47,5 +47,6 @@ class EnvironmentManager: DEBUG_LOGGING = getenv("INPUT_DEBUG_LOGGING", "0").lower() in _TRUTHY DEBUG_RUN = getenv("DEBUG_RUN", "False").lower() in _TRUTHY - PR_NUMBER = int(getenv("PR_NUMBER", "0")) - CURRENT_GITHUB_ACTION_TOKEN = getenv("CURRENT_GITHUB_ACTION_TOKEN", "") + @staticmethod + def set_variable(name: str, content: str): + environ[name] = content diff --git a/sources/manager_github.py b/sources/manager_github.py index c757dae..07340dc 100644 --- a/sources/manager_github.py +++ b/sources/manager_github.py @@ -4,7 +4,6 @@ from re import sub from github import Github, AuthenticatedUser, Repository, ContentFile, InputGitAuthor, UnknownObjectException from manager_environment import EnvironmentManager as EM -from manager_download import DownloadManager as DM from manager_debug import DebugManager as DBM @@ -111,13 +110,7 @@ class GitHubManager: """ prefix = "README stats current output:" DBM.i("Commenting PR...") - - github = Github(EM.CURRENT_GITHUB_ACTION_TOKEN) - pull_request = github.get_repo("anmol098/waka-readme-stats").get_pull(EM.PR_NUMBER) - for comment in [ic for ic in pull_request.get_issue_comments() if ic.body.startswith(prefix)]: - await DM.get_remote_graphql("hide_outdated_comment", use_github_action=True, id=comment.id) - - pull_request.create_issue_comment(f"{prefix}\n\n{stats}") + EM.set_variable("GITHUB_OUTPUT", f"README_CONTENT={prefix}\n\n{stats}") DBM.g("PR commented!") @staticmethod