Skip to content

Commit fc7a3b1

Browse files
committed
add new input update-comment
defaults to false for old behavior
1 parent f59981c commit fc7a3b1

File tree

3 files changed

+15
-4
lines changed

3 files changed

+15
-4
lines changed

action.yml

+3
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ inputs:
77
github-token:
88
description: "GitHub access token used to comment the memory usage comparison results to the PR thread"
99
default: ${{ github.token }}
10+
update-comment:
11+
description: "when posting a report, set this to true to only update the previous report (if one exists)"
12+
default: false
1013
runs:
1114
using: "docker"
1215
image: "Dockerfile"

reportsizedeltas/reportsizedeltas.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ def main() -> None:
3232
repository_name=os.environ["GITHUB_REPOSITORY"],
3333
sketches_reports_source=os.environ["INPUT_SKETCHES-REPORTS-SOURCE"],
3434
token=os.environ["INPUT_GITHUB-TOKEN"],
35+
update_comment=os.environ["INPUT_UPDATE-COMMENT"] == "true",
3536
)
3637

3738
report_size_deltas.report_size_deltas()
@@ -87,10 +88,11 @@ class ReportKeys:
8788
sketches = "sketches"
8889
compilation_success = "compilation_success"
8990

90-
def __init__(self, repository_name: str, sketches_reports_source: str, token: str) -> None:
91+
def __init__(self, repository_name: str, sketches_reports_source: str, token: str, update_comment: bool) -> None:
9192
self.repository_name = repository_name
9293
self.sketches_reports_source = sketches_reports_source
9394
self.token = token
95+
self.update_comment = update_comment
9496

9597
def report_size_deltas(self) -> None:
9698
"""Comment a report of memory usage change to pull request(s)."""
@@ -572,7 +574,7 @@ def comment_report(self, pr_number: int, report_markdown: str) -> None:
572574
report_data = json.dumps(obj={"body": report_markdown}).encode(encoding="utf-8")
573575
url = f"https://api.github.com/repos/{self.repository_name}/issues/{pr_number}"
574576

575-
comment_url = self.get_previous_comment(url)
577+
comment_url = None if not self.update_comment else self.get_previous_comment(url)
576578
url = comment_url or url + "/comments"
577579
method = "PATCH" if comment_url else None
578580

reportsizedeltas/tests/test_reportsizedeltas.py

+8-2
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ def get_reportsizedeltas_object(
2222
repository_name: str = "FooOwner/BarRepository",
2323
sketches_reports_source: str = "foo-artifact-pattern",
2424
token: str = "foo token",
25+
update_comment: bool = False,
2526
) -> reportsizedeltas.ReportSizeDeltas:
2627
"""Return a reportsizedeltas.ReportSizeDeltas object to use in tests.
2728
@@ -32,7 +33,10 @@ def get_reportsizedeltas_object(
3233
token -- GitHub access token
3334
"""
3435
return reportsizedeltas.ReportSizeDeltas(
35-
repository_name=repository_name, sketches_reports_source=sketches_reports_source, token=token
36+
repository_name=repository_name,
37+
sketches_reports_source=sketches_reports_source,
38+
token=token,
39+
update_comment=update_comment,
3640
)
3741

3842

@@ -106,10 +110,12 @@ class ActionInputs:
106110
repository_name = "GoldenOwner/GoldenRepository"
107111
sketches_reports_source = "golden-source-pattern"
108112
token = "golden-github-token"
113+
update_comment = "false"
109114

110115
monkeypatch.setenv("GITHUB_REPOSITORY", ActionInputs.repository_name)
111116
monkeypatch.setenv("INPUT_SKETCHES-REPORTS-SOURCE", ActionInputs.sketches_reports_source)
112117
monkeypatch.setenv("INPUT_GITHUB-TOKEN", ActionInputs.token)
118+
monkeypatch.setenv("INPUT_UPDATE-COMMENT", ActionInputs.token)
113119

114120
return ActionInputs()
115121

@@ -132,6 +138,7 @@ def report_size_deltas(self):
132138
repository_name=setup_environment_variables.repository_name,
133139
sketches_reports_source=setup_environment_variables.sketches_reports_source,
134140
token=setup_environment_variables.token,
141+
update_comment=setup_environment_variables.update_comment == "true",
135142
)
136143
ReportSizeDeltas.report_size_deltas.assert_called_once()
137144

@@ -768,7 +775,6 @@ def test_comment_report():
768775
report_size_deltas = get_reportsizedeltas_object(repository_name=repository_name)
769776

770777
report_size_deltas.http_request = unittest.mock.MagicMock()
771-
report_size_deltas.get_previous_comment = unittest.mock.Mock(return_value=None)
772778

773779
report_size_deltas.comment_report(pr_number=pr_number, report_markdown=report_markdown)
774780

0 commit comments

Comments
 (0)