From c8e84cea4c91c3379be16bc011c195edd3abbb2d Mon Sep 17 00:00:00 2001 From: Yoshihisa Mochihara Date: Wed, 23 Nov 2022 22:02:13 +0100 Subject: [PATCH] fix GITHUB_OUTPUT bug (#92) * fix GITHUB_OUTPUT bug * Update CHANGELOG.md --- CHANGELOG.md | 1 + pull-request.py | 26 +++++++++++--------------- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2bd9bdf..32e5737 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ represented by the pull requests that fixed them. Critical items to know are: Versions correspond with GitHub releases that can be referenced with @ using actions. ## [master](https://github.com/vsoch/pull-request-action/tree/master) (master) + - bugfix of missing output values (1.0.23) - bugfix of token handling if 401 error received (missing 401 case) (1.0.21) - bugfix of writing to environment file (missing newline) (1.0.19) - bugfix of missing from branch with scheduled run (1.0.16) diff --git a/pull-request.py b/pull-request.py index 5c40178..f51cbe4 100755 --- a/pull-request.py +++ b/pull-request.py @@ -69,17 +69,19 @@ def parse_into_list(values): return [x.strip() for x in values.split(" ")] -def set_env(name, value): +def set_env_and_output(name, value): """helper function to echo a key/value pair to the environement file Parameters: name (str) : the name of the environment variable value (str) : the value to write to file """ - environment_file_path = os.environ.get("GITHUB_ENV") + for env_var in ("GITHUB_ENV", "GITHUB_OUTPUT"): + environment_file_path = os.environ.get(env_var) + print("Writing %s=%s to %s" % (name, value, env_var)) - with open(environment_file_path, "a") as environment_file: - environment_file.write("%s=%s\n" % (name, value)) + with open(environment_file_path, "a") as environment_file: + environment_file.write("%s=%s\n" % (name, value)) def open_pull_request(title, body, target, source, is_draft=False, can_modify=True): @@ -159,12 +161,9 @@ def set_pull_request_groups(response): number = response.get("number") html_url = response.get("html_url") print("Number opened for PR is %s" % number) - set_env("PULL_REQUEST_NUMBER", number) - print("pull_request_number=%s >> $GITHUB_OUTPUT" % number) - set_env("PULL_REQUEST_RETURN_CODE", pull_request_return_code) - print("pull_request_return_code=%s >> $GITHUB_OUTPUT" % pull_request_return_code) - set_env("PULL_REQUEST_URL", html_url) - print("pull_request_url=%s >> $GITHUB_OUTPUT" % html_url) + set_env_and_output("PULL_REQUEST_NUMBER", number) + set_env_and_output("PULL_REQUEST_RETURN_CODE", pull_request_return_code) + set_env_and_output("PULL_REQUEST_URL", html_url) def list_pull_requests(target, source): @@ -215,8 +214,7 @@ def add_assignees(entry, assignees): print("::group::github assignees response") print(response.json()) print("::endgroup::github assignees response") - set_env("ASSIGNEES_RETURN_CODE", assignees_return_code) - print("assignees_return_code=%s >> $GITHUB_OUTPUT" % assignees_return_code) + set_env_and_output("ASSIGNEES_RETURN_CODE", assignees_return_code) def find_pull_request(listing, source): @@ -272,9 +270,7 @@ def add_reviewers(entry, reviewers, team_reviewers): print("::group::github reviewers response") print(response.json()) print("::endgroup::github reviewers response") - set_env("REVIEWERS_RETURN_CODE", reviewers_return_code) - print("reviewers_return_code=%s >> $GITHUB_OUTPUT" % reviewers_return_code) - print("Add reviewers return code: %s" % reviewers_return_code) + set_env_and_output("REVIEWERS_RETURN_CODE", reviewers_return_code) ################################################################################