From 50178989a845e3d6bed806ef966a335287f59f45 Mon Sep 17 00:00:00 2001 From: Enrico Minack Date: Wed, 7 Jun 2023 11:30:30 +0200 Subject: [PATCH 1/8] Use pygithub package that allows sorting comments --- composite/action.yml | 2 +- python/requirements.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/composite/action.yml b/composite/action.yml index e792768b..9fca741e 100644 --- a/composite/action.yml +++ b/composite/action.yml @@ -189,7 +189,7 @@ runs: continue-on-error: true with: path: ${{ steps.os.outputs.pip-cache }} - key: enricomi-publish-action-${{ runner.os }}-${{ runner.arch }}-pip-${{ steps.python.outputs.version }}-b8e8abb8483d74cfe629dd253143f067 + key: enricomi-publish-action-${{ runner.os }}-${{ runner.arch }}-pip-${{ steps.python.outputs.version }}-64b1dc12d10fb72f07fd7241cd2b1732 - name: Install Python dependencies run: | diff --git a/python/requirements.txt b/python/requirements.txt index c91a9b14..7ffe9613 100644 --- a/python/requirements.txt +++ b/python/requirements.txt @@ -3,7 +3,7 @@ junitparser==3.1.0 future==0.18.3 lxml==4.9.1 psutil==5.9.5 -PyGithub==1.58.2 +git+https://github.com/enricomi/pygithub.git@get-sorted-comments Deprecated==1.2.13 wrapt==1.15.0 PyJWT==2.4.0 From 996e38bdf47f12e16b46d51e11d750780719412d Mon Sep 17 00:00:00 2001 From: Enrico Minack Date: Wed, 7 Jun 2023 11:30:49 +0200 Subject: [PATCH 2/8] Replace graphql query with rest call --- python/publish/publisher.py | 53 ++++++++++--------------------------- 1 file changed, 14 insertions(+), 39 deletions(-) diff --git a/python/publish/publisher.py b/python/publish/publisher.py index 9682f50a..5fd8354e 100644 --- a/python/publish/publisher.py +++ b/python/publish/publisher.py @@ -4,13 +4,14 @@ import os import re from dataclasses import dataclass -from typing import List, Set, Any, Optional, Tuple, Mapping, Dict, Union, Callable +from typing import List, Any, Optional, Tuple, Mapping, Dict, Union, Callable from copy import deepcopy from github import Github, GithubException, UnknownObjectException from github.CheckRun import CheckRun from github.CheckRunAnnotation import CheckRunAnnotation from github.PullRequest import PullRequest +from github.PullRequestComment import PullRequestComment from github.IssueComment import IssueComment from publish import __version__, comment_mode_off, digest_prefix, restrict_unicode_list, \ @@ -654,7 +655,7 @@ def do_stats_require_comment(earlier_stats_require: Optional[bool], stats_requir return False - def get_latest_comment(self, pull: PullRequest) -> Optional[IssueComment]: + def get_latest_comment(self, pull: PullRequest) -> Optional[PullRequestComment]: # get comments of this pull request comments = self.get_pull_request_comments(pull, order_by_updated=True) @@ -665,11 +666,10 @@ def get_latest_comment(self, pull: PullRequest) -> Optional[IssueComment]: if len(comments) == 0: return None - # fetch latest action comment - comment_id = comments[-1].get("databaseId") - return pull.get_issue_comment(comment_id) + # return latest action comment + return comments[-1] - def reuse_comment(self, comment: IssueComment, body: str): + def reuse_comment(self, comment: PullRequestComment, body: str): if ':recycle:' not in body: body = f'{body}\n:recycle: This comment has been updated with latest results.' @@ -703,41 +703,16 @@ def get_base_commit_sha(self, pull_request: PullRequest) -> Optional[str]: return None - def get_pull_request_comments(self, pull: PullRequest, order_by_updated: bool) -> List[Mapping[str, Any]]: - order = '' + def get_pull_request_comments(self, pull: PullRequest, order_by_updated: bool) -> List[PullRequestComment]: if order_by_updated: - order = ', orderBy: { direction: ASC, field: UPDATED_AT }' - - query = dict( - query=r'query ListComments {' - r' repository(owner:"' + self._repo.owner.login + r'", name:"' + self._repo.name + r'") {' - r' pullRequest(number: ' + str(pull.number) + r') {' - f' comments(last: 100{order}) {{' - r' nodes {' - r' id, databaseId, author { login }, body, isMinimized' - r' }' - r' }' - r' }' - r' }' - r'}' - ) - - headers, data = self._req.requestJsonAndCheck( - "POST", self._settings.graphql_url, input=query - ) - - return data \ - .get('data', {}) \ - .get('repository', {}) \ - .get('pullRequest', {}) \ - .get('comments', {}) \ - .get('nodes') + return list(pull.get_comments(sort="updated_at", direction="asc")) + else: + return list(pull.get_comments()) - def get_action_comments(self, comments: List[Mapping[str, Any]], is_minimized: Optional[bool] = False): + def get_action_comments(self, comments: List[PullRequestComment]): comment_body_start = f'## {self._settings.comment_title}\n' comment_body_indicators = ['\nresults for commit ', '\nResults for commit '] return list([comment for comment in comments - if comment.get('author', {}).get('login') == self._settings.actor - and (is_minimized is None or comment.get('isMinimized') == is_minimized) - and comment.get('body', '').startswith(comment_body_start) - and any(indicator in comment.get('body', '') for indicator in comment_body_indicators)]) + if comment.user.login == self._settings.actor + and comment.body.startswith(comment_body_start) + and any(indicator in comment.body for indicator in comment_body_indicators)]) From 5b7280fd3ad7d18868e81892013f541561266f27 Mon Sep 17 00:00:00 2001 From: Enrico Minack Date: Mon, 12 Jun 2023 10:02:30 +0200 Subject: [PATCH 3/8] Make requirements work with https link --- .github/upgrade-pip-packages.sh | 2 +- composite/action.yml | 2 +- python/requirements-direct.txt | 2 +- python/requirements.txt | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/upgrade-pip-packages.sh b/.github/upgrade-pip-packages.sh index c369c1a4..64106947 100755 --- a/.github/upgrade-pip-packages.sh +++ b/.github/upgrade-pip-packages.sh @@ -7,7 +7,7 @@ pip install --upgrade --force pip==22.0.0 pip install --upgrade --upgrade-strategy eager -r "$base/../python/requirements-direct.txt" -c "$base/../python/constraints.txt" pip install pipdeptree -pipdeptree --packages="$(sed -e "s/;.*//" -e "s/=.*//g" "$base/../python/requirements-direct.txt" | paste -s -d ,)" --freeze > "$base/../python/requirements.txt" +pipdeptree --packages="$(sed -e "s/\s*;.*//" -e "s/\s*@.*//" -e "s/=.*//g" "$base/../python/requirements-direct.txt" | paste -s -d ,)" --freeze > "$base/../python/requirements.txt" git diff "$base/../python/requirements.txt" diff --git a/composite/action.yml b/composite/action.yml index 9fca741e..ca9ce3f5 100644 --- a/composite/action.yml +++ b/composite/action.yml @@ -189,7 +189,7 @@ runs: continue-on-error: true with: path: ${{ steps.os.outputs.pip-cache }} - key: enricomi-publish-action-${{ runner.os }}-${{ runner.arch }}-pip-${{ steps.python.outputs.version }}-64b1dc12d10fb72f07fd7241cd2b1732 + key: enricomi-publish-action-${{ runner.os }}-${{ runner.arch }}-pip-${{ steps.python.outputs.version }}-9b4d44cd08298a16faf5caff0672dc90 - name: Install Python dependencies run: | diff --git a/python/requirements-direct.txt b/python/requirements-direct.txt index f43e58c1..13f8642f 100644 --- a/python/requirements-direct.txt +++ b/python/requirements-direct.txt @@ -2,6 +2,6 @@ humanize==3.14.0 junitparser==3.1.0 lxml==4.9.1 psutil==5.9.5 -PyGithub==1.58.2 +PyGithub @ git+https://github.com/pygithub/pygithub.git@daf62bd4610ba4c43ae8ced66ced3ff722c30cf0 requests==2.31.0 urllib3==1.26.16 diff --git a/python/requirements.txt b/python/requirements.txt index 7ffe9613..61da3e39 100644 --- a/python/requirements.txt +++ b/python/requirements.txt @@ -3,7 +3,7 @@ junitparser==3.1.0 future==0.18.3 lxml==4.9.1 psutil==5.9.5 -git+https://github.com/enricomi/pygithub.git@get-sorted-comments +PyGithub @ git+https://github.com/pygithub/pygithub.git@daf62bd4610ba4c43ae8ced66ced3ff722c30cf0 Deprecated==1.2.13 wrapt==1.15.0 PyJWT==2.4.0 From 303f51a2b153e6b80f64e2df648201cb21ddd496 Mon Sep 17 00:00:00 2001 From: Enrico Minack Date: Mon, 12 Jun 2023 10:02:38 +0200 Subject: [PATCH 4/8] Adjust tests --- python/test/test_publisher.py | 143 ++++++++++++---------------------- 1 file changed, 50 insertions(+), 93 deletions(-) diff --git a/python/test/test_publisher.py b/python/test/test_publisher.py index f1135709..280dd3ea 100644 --- a/python/test/test_publisher.py +++ b/python/test/test_publisher.py @@ -7,11 +7,12 @@ import unittest from collections.abc import Collection from datetime import datetime, timezone -from typing import Optional, List, Mapping, Union, Any, Callable +from typing import Optional, List, Mapping, Union, Any, Callable, Dict import github.CheckRun import mock from github import Github, GithubException +from github.PullRequestComment import PullRequestComment from publish import __version__, comment_mode_off, comment_mode_always, \ comment_mode_changes, comment_mode_changes_failures, comment_mode_changes_errors, \ @@ -50,6 +51,10 @@ class CommentConditionTest: current_has_errors: bool +def comment(data: Dict[str, Any]) -> PullRequestComment: + return PullRequestComment(None, {}, data, False) + + class TestPublisher(unittest.TestCase): @staticmethod @@ -2507,118 +2512,82 @@ def exception(base, head): def do_test_get_pull_request_comments(self, order_updated: bool): settings = self.create_settings() + comments = [mock.Mock()] gh, gha, req, repo, commit = self.create_mocks(repo_name=settings.repo, repo_login='login') req.requestJsonAndCheck = mock.Mock( return_value=({}, {'data': {'repository': {'pullRequest': {'comments': {'nodes': ['node']}}}}}) ) pr = self.create_github_pr(settings.repo, number=1234) + pr.get_comments = mock.Mock(return_value=comments) publisher = Publisher(settings, gh, gha) response = publisher.get_pull_request_comments(pr, order_by_updated=order_updated) - self.assertEqual(['node'], response) - return req + self.assertEqual(comments, response) + return pr def test_get_pull_request_comments(self): - req = self.do_test_get_pull_request_comments(order_updated=False) - req.requestJsonAndCheck.assert_called_once_with( - 'POST', 'https://the-github-graphql-url', - input={ - 'query': 'query ListComments {' - ' repository(owner:"login", name:"owner/repo") {' - ' pullRequest(number: 1234) {' - ' comments(last: 100) {' - ' nodes {' - ' id, databaseId, author { login }, body, isMinimized' - ' }' - ' }' - ' }' - ' }' - '}' - } - ) + pr = self.do_test_get_pull_request_comments(order_updated=False) + pr.get_comments.assert_called_once_with() def test_get_pull_request_comments_order_updated(self): - req = self.do_test_get_pull_request_comments(order_updated=True) - req.requestJsonAndCheck.assert_called_once_with( - 'POST', 'https://the-github-graphql-url', - input={ - 'query': 'query ListComments {' - ' repository(owner:"login", name:"owner/repo") {' - ' pullRequest(number: 1234) {' - ' comments(last: 100, orderBy: { direction: ASC, field: UPDATED_AT }) {' - ' nodes {' - ' id, databaseId, author { login }, body, isMinimized' - ' }' - ' }' - ' }' - ' }' - '}' - } - ) + pr = self.do_test_get_pull_request_comments(order_updated=True) + pr.get_comments.assert_called_once_with(sort='updated_at', direction='asc') comments = [ - { - 'id': 'comment one', - 'author': {'login': 'github-actions'}, + comment({ + 'id': 1, + 'user': {'login': 'github-actions'}, 'body': '## Comment Title\n' 'Results for commit dee59820.\u2003± Comparison against base commit 70b5dd18.\n', - 'isMinimized': False - }, - { - 'id': 'comment two', - 'author': {'login': 'someone else'}, + }), + comment({ + 'id': 2, + 'user': {'login': 'someone else'}, 'body': '## Comment Title\n' 'more body\n' 'Results for commit dee59820.\u2003± Comparison against base commit 70b5dd18.\n', - 'isMinimized': False - }, - { - 'id': 'comment three', - 'author': {'login': 'github-actions'}, + }), + comment({ + 'id': 3, + 'user': {'login': 'github-actions'}, 'body': '## Wrong Comment Title\n' 'more body\n' 'Results for commit dee59820.\u2003± Comparison against base commit 70b5dd18.\n', - 'isMinimized': False - }, - { - 'id': 'comment four', - 'author': {'login': 'github-actions'}, + }), + comment({ + 'id': 4, + 'user': {'login': 'github-actions'}, 'body': '## Comment Title\n' 'more body\n' 'no Results for commit dee59820.\u2003± Comparison against base commit 70b5dd18.\n', - 'isMinimized': False - }, - { - 'id': 'comment five', - 'author': {'login': 'github-actions'}, + }), + comment({ + 'id': 5, + 'user': {'login': 'github-actions'}, 'body': '## Comment Title\n' 'more body\n' 'Results for commit dee59820.\u2003± Comparison against base commit 70b5dd18.\n', - 'isMinimized': True - }, - { - 'id': 'comment six', - 'author': {'login': 'github-actions'}, + }), + comment({ + 'id': 6, + 'user': {'login': 'github-actions'}, 'body': 'comment', - 'isMinimized': True - }, + }), # earlier version of comments with lower case result and comparison - { - 'id': 'comment seven', - 'author': {'login': 'github-actions'}, + comment({ + 'id': 7, + 'user': {'login': 'github-actions'}, 'body': '## Comment Title\n' 'results for commit dee59820\u2003± comparison against base commit 70b5dd18\n', - 'isMinimized': False - }, + }), # comment of different actor - { - 'id': 'comment eight', - 'author': {'login': 'other-actor'}, + comment({ + 'id': 8, + 'user': {'login': 'other-actor'}, 'body': '## Comment Title\n' 'Results for commit dee59820.\u2003± Comparison against base commit 70b5dd18.\n', - 'isMinimized': False - }, + }), ] def test_get_action_comments(self): @@ -2628,8 +2597,8 @@ def test_get_action_comments(self): expected = [comment for comment in self.comments - if comment.get('id') in ['comment one', 'comment five', 'comment seven']] - actual = publisher.get_action_comments(self.comments, is_minimized=None) + if comment.id in {1, 5, 7}] + actual = publisher.get_action_comments(self.comments) self.assertEqual(3, len(expected)) self.assertEqual(expected, actual) @@ -2640,19 +2609,7 @@ def test_get_action_comments_other_actor(self): expected = [comment for comment in self.comments - if comment.get('id') == 'comment eight'] - actual = publisher.get_action_comments(self.comments, is_minimized=None) + if comment.id == 8] + actual = publisher.get_action_comments(self.comments) self.assertEqual(1, len(expected)) self.assertEqual(expected, actual) - - def test_get_action_comments_not_minimized(self): - settings = self.create_settings(actor='github-actions') - gh, gha, req, repo, commit = self.create_mocks() - publisher = Publisher(settings, gh, gha) - - expected = [comment - for comment in self.comments - if comment.get('id') in ['comment one', 'comment seven']] - actual = publisher.get_action_comments(self.comments, is_minimized=False) - self.assertEqual(2, len(expected)) - self.assertEqual(expected, actual) From dca99f424f8ded430467687565f2ce8e288e0d04 Mon Sep 17 00:00:00 2001 From: Enrico Minack Date: Mon, 12 Jun 2023 10:22:27 +0200 Subject: [PATCH 5/8] Add installation of git to Dockerfile --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 455b6ede..f1d45ec1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,10 +12,10 @@ LABEL com.github.actions.color="green" RUN apk add --no-cache --upgrade expat libuuid COPY python/requirements.txt /action/ -RUN apk add --no-cache build-base libffi-dev; \ +RUN apk add --no-cache build-base libffi-dev git; \ pip install --upgrade --force --no-cache-dir pip && \ pip install --upgrade --force --no-cache-dir -r /action/requirements.txt; \ - apk del build-base libffi-dev + apk del build-base libffi-dev git COPY python/publish /action/publish COPY python/publish_test_results.py /action/ From d480e2a53219668881a29f9344fa6e7f03566d9d Mon Sep 17 00:00:00 2001 From: Enrico Minack Date: Mon, 12 Jun 2023 10:43:49 +0200 Subject: [PATCH 6/8] Debug retrieved comments --- .github/workflows/ci-cd.yml | 1 + python/publish/publisher.py | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index c707f13f..79e74913 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -481,6 +481,7 @@ jobs: json_suite_details: true json_test_case_results: true report_suite_logs: "any" + log_level: DEBUG - name: JSON output uses: ./misc/action/json-output diff --git a/python/publish/publisher.py b/python/publish/publisher.py index 5fd8354e..c3b38624 100644 --- a/python/publish/publisher.py +++ b/python/publish/publisher.py @@ -705,13 +705,20 @@ def get_base_commit_sha(self, pull_request: PullRequest) -> Optional[str]: def get_pull_request_comments(self, pull: PullRequest, order_by_updated: bool) -> List[PullRequestComment]: if order_by_updated: - return list(pull.get_comments(sort="updated_at", direction="asc")) + comments = list(pull.get_comments(sort="updated_at", direction="asc")) else: - return list(pull.get_comments()) + comments = list(pull.get_comments()) + logger.debug(f'Found {len(comments)} comments for pull request {pull.number}') + for comment in comments: + logger.debug(f'comment: {comment}') + return comments def get_action_comments(self, comments: List[PullRequestComment]): comment_body_start = f'## {self._settings.comment_title}\n' comment_body_indicators = ['\nresults for commit ', '\nResults for commit '] + for comment in comments: + logger.debug(f'login={comment.user.login}') + logger.debug(f'body={comment.body}') return list([comment for comment in comments if comment.user.login == self._settings.actor and comment.body.startswith(comment_body_start) From e84d602269b50fb0f79862904af01a3b71ff3c22 Mon Sep 17 00:00:00 2001 From: Enrico Minack Date: Mon, 12 Jun 2023 11:51:15 +0200 Subject: [PATCH 7/8] Action comments are IssueComments, fixing --- python/publish/publisher.py | 18 +++++++----------- python/test/test_publisher.py | 19 ++++--------------- 2 files changed, 11 insertions(+), 26 deletions(-) diff --git a/python/publish/publisher.py b/python/publish/publisher.py index c3b38624..4a6b1df3 100644 --- a/python/publish/publisher.py +++ b/python/publish/publisher.py @@ -11,7 +11,6 @@ from github.CheckRun import CheckRun from github.CheckRunAnnotation import CheckRunAnnotation from github.PullRequest import PullRequest -from github.PullRequestComment import PullRequestComment from github.IssueComment import IssueComment from publish import __version__, comment_mode_off, digest_prefix, restrict_unicode_list, \ @@ -655,9 +654,9 @@ def do_stats_require_comment(earlier_stats_require: Optional[bool], stats_requir return False - def get_latest_comment(self, pull: PullRequest) -> Optional[PullRequestComment]: + def get_latest_comment(self, pull: PullRequest) -> Optional[IssueComment]: # get comments of this pull request - comments = self.get_pull_request_comments(pull, order_by_updated=True) + comments = self.get_pull_request_comments(pull) # get all comments that come from this action and are not hidden comments = self.get_action_comments(comments) @@ -667,9 +666,9 @@ def get_latest_comment(self, pull: PullRequest) -> Optional[PullRequestComment]: return None # return latest action comment - return comments[-1] + return sorted(comments, key=lambda comment: comment.updated_at, reverse=True)[-1] - def reuse_comment(self, comment: PullRequestComment, body: str): + def reuse_comment(self, comment: IssueComment, body: str): if ':recycle:' not in body: body = f'{body}\n:recycle: This comment has been updated with latest results.' @@ -703,17 +702,14 @@ def get_base_commit_sha(self, pull_request: PullRequest) -> Optional[str]: return None - def get_pull_request_comments(self, pull: PullRequest, order_by_updated: bool) -> List[PullRequestComment]: - if order_by_updated: - comments = list(pull.get_comments(sort="updated_at", direction="asc")) - else: - comments = list(pull.get_comments()) + def get_pull_request_comments(self, pull: PullRequest) -> List[IssueComment]: + comments = list(pull.get_issue_comments()) logger.debug(f'Found {len(comments)} comments for pull request {pull.number}') for comment in comments: logger.debug(f'comment: {comment}') return comments - def get_action_comments(self, comments: List[PullRequestComment]): + def get_action_comments(self, comments: List[IssueComment]): comment_body_start = f'## {self._settings.comment_title}\n' comment_body_indicators = ['\nresults for commit ', '\nResults for commit '] for comment in comments: diff --git a/python/test/test_publisher.py b/python/test/test_publisher.py index 280dd3ea..928f441a 100644 --- a/python/test/test_publisher.py +++ b/python/test/test_publisher.py @@ -2510,29 +2510,18 @@ def exception(base, head): self.assertEqual(None, result) - def do_test_get_pull_request_comments(self, order_updated: bool): + def test_get_pull_request_comments(self): settings = self.create_settings() comments = [mock.Mock()] gh, gha, req, repo, commit = self.create_mocks(repo_name=settings.repo, repo_login='login') - req.requestJsonAndCheck = mock.Mock( - return_value=({}, {'data': {'repository': {'pullRequest': {'comments': {'nodes': ['node']}}}}}) - ) pr = self.create_github_pr(settings.repo, number=1234) - pr.get_comments = mock.Mock(return_value=comments) + pr.get_issue_comments = mock.Mock(return_value=comments) publisher = Publisher(settings, gh, gha) - response = publisher.get_pull_request_comments(pr, order_by_updated=order_updated) + response = publisher.get_pull_request_comments(pr) self.assertEqual(comments, response) - return pr - - def test_get_pull_request_comments(self): - pr = self.do_test_get_pull_request_comments(order_updated=False) - pr.get_comments.assert_called_once_with() - - def test_get_pull_request_comments_order_updated(self): - pr = self.do_test_get_pull_request_comments(order_updated=True) - pr.get_comments.assert_called_once_with(sort='updated_at', direction='asc') + pr.get_issue_comments.assert_called_once_with() comments = [ comment({ From 1549e5196509a4b4ddd0141dfd40c1e2bf973b3b Mon Sep 17 00:00:00 2001 From: Enrico Minack Date: Mon, 12 Jun 2023 11:55:21 +0200 Subject: [PATCH 8/8] Revert use of PyGithub master branch --- Dockerfile | 4 ++-- composite/action.yml | 2 +- python/requirements-direct.txt | 2 +- python/requirements.txt | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index f1d45ec1..455b6ede 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,10 +12,10 @@ LABEL com.github.actions.color="green" RUN apk add --no-cache --upgrade expat libuuid COPY python/requirements.txt /action/ -RUN apk add --no-cache build-base libffi-dev git; \ +RUN apk add --no-cache build-base libffi-dev; \ pip install --upgrade --force --no-cache-dir pip && \ pip install --upgrade --force --no-cache-dir -r /action/requirements.txt; \ - apk del build-base libffi-dev git + apk del build-base libffi-dev COPY python/publish /action/publish COPY python/publish_test_results.py /action/ diff --git a/composite/action.yml b/composite/action.yml index ca9ce3f5..e792768b 100644 --- a/composite/action.yml +++ b/composite/action.yml @@ -189,7 +189,7 @@ runs: continue-on-error: true with: path: ${{ steps.os.outputs.pip-cache }} - key: enricomi-publish-action-${{ runner.os }}-${{ runner.arch }}-pip-${{ steps.python.outputs.version }}-9b4d44cd08298a16faf5caff0672dc90 + key: enricomi-publish-action-${{ runner.os }}-${{ runner.arch }}-pip-${{ steps.python.outputs.version }}-b8e8abb8483d74cfe629dd253143f067 - name: Install Python dependencies run: | diff --git a/python/requirements-direct.txt b/python/requirements-direct.txt index 13f8642f..f43e58c1 100644 --- a/python/requirements-direct.txt +++ b/python/requirements-direct.txt @@ -2,6 +2,6 @@ humanize==3.14.0 junitparser==3.1.0 lxml==4.9.1 psutil==5.9.5 -PyGithub @ git+https://github.com/pygithub/pygithub.git@daf62bd4610ba4c43ae8ced66ced3ff722c30cf0 +PyGithub==1.58.2 requests==2.31.0 urllib3==1.26.16 diff --git a/python/requirements.txt b/python/requirements.txt index 61da3e39..c91a9b14 100644 --- a/python/requirements.txt +++ b/python/requirements.txt @@ -3,7 +3,7 @@ junitparser==3.1.0 future==0.18.3 lxml==4.9.1 psutil==5.9.5 -PyGithub @ git+https://github.com/pygithub/pygithub.git@daf62bd4610ba4c43ae8ced66ced3ff722c30cf0 +PyGithub==1.58.2 Deprecated==1.2.13 wrapt==1.15.0 PyJWT==2.4.0