7 Commits

Author SHA1 Message Date
Vanessasaurus
58a078aed9 Update CHANGELOG.md 2022-02-03 06:00:46 -07:00
Sviatoslav Sydorenko
408336c607 Fix emitting LF-separated GHA environment vars (#84)
Fixes #83 (hopefully)
2022-02-03 05:59:59 -07:00
Vanessasaurus
d99aa3ed71 Adding quick option to be able to specify a GitHub enterprise url (#80)
* adding quick option to be able to specify a GitHub enterprise url
Signed-off-by: vsoch <vsoch@users.noreply.github.com>
* Use GITHUB_API_URL instead
Co-authored-by: Tobias <github@tobiasgabriel.de>

* Update README.md
* Update pull-request.py

Co-authored-by: vsoch <vsoch@users.noreply.github.com>
Co-authored-by: Tobias <github@tobiasgabriel.de>
2021-10-02 22:40:48 -06:00
Vanessasaurus
a48b660567 Merge pull request #81 from vsoch/add/open-source-halloween-2021
adding open source halloween!
2021-10-02 18:26:20 -06:00
vsoch
4b09070b0a adding open source halloween!
Signed-off-by: vsoch <vsoch@users.noreply.github.com>
2021-10-02 18:25:26 -06:00
Vanessasaurus
29dbfc0acd Merge pull request #75 from Kong/feat/discover-default-branch
Use repo's default branch if no branch specified
2021-06-21 10:10:40 -06:00
Danny Sauer
c0bf76830b Use repo's default branch if no branch specified 2021-06-21 11:04:52 -05:00
4 changed files with 26 additions and 8 deletions

View File

@@ -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. Versions correspond with GitHub releases that can be referenced with @ using actions.
## [master](https://github.com/vsoch/pull-request-action/tree/master) (master) ## [master](https://github.com/vsoch/pull-request-action/tree/master) (master)
- bugfix of writing to environment file (missing newline) (1.0.19)
- bugfix of missing from branch with scheduled run (1.0.16) - bugfix of missing from branch with scheduled run (1.0.16)
- forgot to add assignees (1.0.15) - forgot to add assignees (1.0.15)
- output and environment variables for PR number and return codes (1.0.5) - output and environment variables for PR number and return codes (1.0.5)

View File

@@ -50,10 +50,10 @@ Unlike standard actions, this action just uses variables from the environment.
| PULL_REQUEST_ASSIGNEES | A list (string with spaces) of users to assign | false | unset | | PULL_REQUEST_ASSIGNEES | A list (string with spaces) of users to assign | false | unset |
| PULL_REQUEST_REVIEWERS | A list (string with spaces) of users to assign review | false | unset | | PULL_REQUEST_REVIEWERS | A list (string with spaces) of users to assign review | false | unset |
| PULL_REQUEST_TEAM_REVIEWERS | A list (string with spaces) of teams to assign review | false | unset | | PULL_REQUEST_TEAM_REVIEWERS | A list (string with spaces) of teams to assign review | false | unset |
| PASS_ON_ERROR | Instead of failing on an error response, pass | unset | | PASS_ON_ERROR | Instead of failing on an error response, pass | false | unset |
| PASS_IF_EXISTS | Instead of failing if the pull request already exists, pass | unset | | PASS_IF_EXISTS | Instead of failing if the pull request already exists, pass | false | unset |
| PULL_REQUEST_UPDATE | If the pull request already exists, update it | unset | | PULL_REQUEST_UPDATE | If the pull request already exists, update it | false | unset |
| PULL_REQUEST_STATE | If `PULL_REQUEST_UPDATE` is true, update to this state (open, closed) | open | | PULL_REQUEST_STATE | If `PULL_REQUEST_UPDATE` is true, update to this state (open, closed) | false |open |
For `PULL_REQUEST_DRAFT`, `PASS_ON_ERROR`, `PASS_IF_EXISTS`, and `MAINTAINER_CANT_MODIFY`, these are For `PULL_REQUEST_DRAFT`, `PASS_ON_ERROR`, `PASS_IF_EXISTS`, and `MAINTAINER_CANT_MODIFY`, these are
treated as environment booleans. If they are defined in the environment, they trigger the treated as environment booleans. If they are defined in the environment, they trigger the

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

View File

@@ -79,7 +79,7 @@ def set_env(name, value):
environment_file_path = os.environ.get("GITHUB_ENV") environment_file_path = os.environ.get("GITHUB_ENV")
with open(environment_file_path, "a") as environment_file: with open(environment_file_path, "a") as environment_file:
environment_file.write("%s=%s" % (name, value)) environment_file.write("%s=%s\n" % (name, value))
def open_pull_request(title, body, target, source, is_draft=False, can_modify=True): def open_pull_request(title, body, target, source, is_draft=False, can_modify=True):
@@ -234,6 +234,21 @@ def find_pull_request(listing, source):
return entry return entry
def find_default_branch():
"""Find default branch for a repo (only called if branch not provided)"""
response = requests.get(REPO_URL)
# Case 1: 404 might need a token
if response.status_code == 404:
response = requests.get(REPO_URL, headers=HEADERS)
if response.status_code != 200:
abort_if_fail(response, "Unable to retrieve default branch")
default_branch = response.json()["default_branch"]
print("Found default branch: %s" % default_branch)
return default_branch
def add_reviewers(entry, reviewers, team_reviewers): def add_reviewers(entry, reviewers, team_reviewers):
"""Given regular or team reviewers, add them to a PR. """Given regular or team reviewers, add them to a PR.
@@ -267,7 +282,9 @@ def add_reviewers(entry, reviewers, team_reviewers):
################################################################################ ################################################################################
API_VERSION = "v3" API_VERSION = "v3"
BASE = "https://api.github.com"
# Allow for a GitHub enterprise URL
BASE = os.environ.get("GITHUB_API_URL") or "https://api.github.com"
PR_TOKEN = os.environ.get("PULL_REQUEST_TOKEN") or get_envar("GITHUB_TOKEN") PR_TOKEN = os.environ.get("PULL_REQUEST_TOKEN") or get_envar("GITHUB_TOKEN")
PR_REPO = os.environ.get("PULL_REQUEST_REPOSITORY") or get_envar("GITHUB_REPOSITORY") PR_REPO = os.environ.get("PULL_REQUEST_REPOSITORY") or get_envar("GITHUB_REPOSITORY")
@@ -343,8 +360,8 @@ def main():
if not branch_prefix: if not branch_prefix:
print("No branch prefix is set, all branches will be used.") print("No branch prefix is set, all branches will be used.")
# Default to master to support older, will eventually change to main # Default to project default branch if none provided
pull_request_branch = os.environ.get("PULL_REQUEST_BRANCH", "master") pull_request_branch = os.environ.get("PULL_REQUEST_BRANCH", find_default_branch())
print("Pull requests will go to %s" % pull_request_branch) print("Pull requests will go to %s" % pull_request_branch)
# Pull request draft # Pull request draft