Compare commits
33 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7e7150d0e8 | ||
|
|
eb99d45ce6 | ||
|
|
115b7391e1 | ||
|
|
8305970523 | ||
|
|
32f5c5dd5f | ||
|
|
628c2d7d35 | ||
|
|
37582e8764 | ||
|
|
1e6b4d1790 | ||
|
|
a70c6ebe2a | ||
|
|
5bd05538d0 | ||
|
|
26bc40eea1 | ||
|
|
6bb0e7771c | ||
|
|
4c347a4514 | ||
|
|
cff2c3381d | ||
|
|
e48dab0c1c | ||
|
|
ac9f92d6e7 | ||
|
|
3ff256ce08 | ||
|
|
0bcb10560b | ||
|
|
3c4b2793c1 | ||
|
|
22870d7816 | ||
|
|
e324a22ee1 | ||
|
|
8b60386018 | ||
|
|
6852d55922 | ||
|
|
32e5bb80a5 | ||
|
|
619cf2115d | ||
|
|
69008aa567 | ||
|
|
ae4278bf24 | ||
|
|
88da40fea7 | ||
|
|
694e068136 | ||
|
|
64c34f6885 | ||
|
|
52ada17960 | ||
|
|
ce00b952cf | ||
|
|
0d42c285a3 |
2
.github/workflows/cpr-example-command.yml
vendored
2
.github/workflows/cpr-example-command.yml
vendored
@@ -13,7 +13,6 @@ jobs:
|
|||||||
id: cpr
|
id: cpr
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
commit-message: Add report file
|
commit-message: Add report file
|
||||||
committer: Peter Evans <peter-evans@users.noreply.github.com>
|
committer: Peter Evans <peter-evans@users.noreply.github.com>
|
||||||
title: '[Example] Add report file'
|
title: '[Example] Add report file'
|
||||||
@@ -30,6 +29,7 @@ jobs:
|
|||||||
project: Example Project
|
project: Example Project
|
||||||
project-column: To do
|
project-column: To do
|
||||||
branch: example-patches
|
branch: example-patches
|
||||||
|
request-to-parent: false
|
||||||
- name: Check outputs
|
- name: Check outputs
|
||||||
run: |
|
run: |
|
||||||
echo "Pull Request Number - ${{ env.PULL_REQUEST_NUMBER }}"
|
echo "Pull Request Number - ${{ env.PULL_REQUEST_NUMBER }}"
|
||||||
|
|||||||
16
README.md
16
README.md
@@ -27,22 +27,20 @@ Create Pull Request action will:
|
|||||||
```yml
|
```yml
|
||||||
- name: Create Pull Request
|
- name: Create Pull Request
|
||||||
uses: peter-evans/create-pull-request@v2
|
uses: peter-evans/create-pull-request@v2
|
||||||
with:
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
```
|
```
|
||||||
|
|
||||||
You can also pin to a [specific release](https://github.com/peter-evans/create-pull-request/releases) version in the format `@v2.x.x`
|
You can also pin to a [specific release](https://github.com/peter-evans/create-pull-request/releases) version in the format `@v2.x.x`
|
||||||
|
|
||||||
### Action inputs
|
### Action inputs
|
||||||
|
|
||||||
With the exception of `token`, all inputs are **optional**. If not set, sensible default values will be used.
|
All inputs are **optional**. If not set, sensible default values will be used.
|
||||||
|
|
||||||
**Note**: If you want pull requests created by this action to trigger an `on: push` or `on: pull_request` workflow then you must use a [Personal Access Token](https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line) instead of the default `GITHUB_TOKEN`. Alternatively, allow the action to [push using SSH](https://github.com/peter-evans/create-pull-request/blob/master/docs/concepts-guidelines.md#push-using-ssh-deploy-keys) by configuring a deploy key.
|
**Note**: If you want pull requests created by this action to trigger an `on: push` or `on: pull_request` workflow then you must use a [Personal Access Token](https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line) instead of the default `GITHUB_TOKEN`. Alternatively, allow the action to [push using SSH](https://github.com/peter-evans/create-pull-request/blob/master/docs/concepts-guidelines.md#push-using-ssh-deploy-keys) by configuring a deploy key.
|
||||||
|
|
||||||
| Name | Description | Default |
|
| Name | Description | Default |
|
||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
| `token` | `GITHUB_TOKEN` or a `repo` scoped [PAT](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line). | |
|
| `token` | `GITHUB_TOKEN` or a `repo` scoped [PAT](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line). | `GITHUB_TOKEN` |
|
||||||
| `path` | Relative path under `$GITHUB_WORKSPACE` to the repository. | `$GITHUB_WORKSPACE` |
|
| `path` | Relative path under `GITHUB_WORKSPACE` to the repository. | `GITHUB_WORKSPACE` |
|
||||||
| `commit-message` | The message to use when committing changes. | `[create-pull-request] automated change` |
|
| `commit-message` | The message to use when committing changes. | `[create-pull-request] automated change` |
|
||||||
| `committer` | The committer name and email address in the format `Display Name <email@address.com>`. | Defaults to the GitHub Actions bot user. See [Committer and author](#committer-and-author) for details. |
|
| `committer` | The committer name and email address in the format `Display Name <email@address.com>`. | Defaults to the GitHub Actions bot user. See [Committer and author](#committer-and-author) for details. |
|
||||||
| `author` | The author name and email address in the format `Display Name <email@address.com>`. | Defaults to the GitHub Actions bot user. See [Committer and author](#committer-and-author) for details. |
|
| `author` | The author name and email address in the format `Display Name <email@address.com>`. | Defaults to the GitHub Actions bot user. See [Committer and author](#committer-and-author) for details. |
|
||||||
@@ -56,6 +54,7 @@ With the exception of `token`, all inputs are **optional**. If not set, sensible
|
|||||||
| `project` | The name of the project for which a card should be created. Requires `project-column`. | |
|
| `project` | The name of the project for which a card should be created. Requires `project-column`. | |
|
||||||
| `project-column` | The name of the project column under which a card should be created. Requires `project`. | |
|
| `project-column` | The name of the project column under which a card should be created. Requires `project`. | |
|
||||||
| `branch` | The branch name. See [Branch naming](#branch-naming) for details. | `create-pull-request/patch` |
|
| `branch` | The branch name. See [Branch naming](#branch-naming) for details. | `create-pull-request/patch` |
|
||||||
|
| `request-to-parent` | Create the pull request in the parent repository of the checked out fork. See [push pull request branches to a fork](https://github.com/peter-evans/create-pull-request/blob/master/docs/concepts-guidelines.md#push-pull-request-branches-to-a-fork) for details. | `false` |
|
||||||
| `base` | Sets the pull request base branch. | Defaults to the branch checked out in the workflow. |
|
| `base` | Sets the pull request base branch. | Defaults to the branch checked out in the workflow. |
|
||||||
| `branch-suffix` | The branch suffix type. Valid values are `random`, `timestamp` and `short-commit-hash`. See [Branch naming](#branch-naming) for details. | |
|
| `branch-suffix` | The branch suffix type. Valid values are `random`, `timestamp` and `short-commit-hash`. See [Branch naming](#branch-naming) for details. | |
|
||||||
|
|
||||||
@@ -68,8 +67,6 @@ Note that in order to read the step output the action step must have an id.
|
|||||||
- name: Create Pull Request
|
- name: Create Pull Request
|
||||||
id: cpr
|
id: cpr
|
||||||
uses: peter-evans/create-pull-request@v2
|
uses: peter-evans/create-pull-request@v2
|
||||||
with:
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
- name: Check outputs
|
- name: Check outputs
|
||||||
run: |
|
run: |
|
||||||
echo "Pull Request Number - ${{ env.PULL_REQUEST_NUMBER }}"
|
echo "Pull Request Number - ${{ env.PULL_REQUEST_NUMBER }}"
|
||||||
@@ -119,7 +116,6 @@ In most cases, where the committer and author are the same, just the committer c
|
|||||||
- name: Create Pull Request
|
- name: Create Pull Request
|
||||||
uses: peter-evans/create-pull-request@v2
|
uses: peter-evans/create-pull-request@v2
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
committer: Peter Evans <peter-evans@users.noreply.github.com>
|
committer: Peter Evans <peter-evans@users.noreply.github.com>
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -143,8 +139,6 @@ As well as relying on the action to handle uncommitted changes, you can addition
|
|||||||
run: date +%s > report.txt
|
run: date +%s > report.txt
|
||||||
- name: Create Pull Request
|
- name: Create Pull Request
|
||||||
uses: peter-evans/create-pull-request@v2
|
uses: peter-evans/create-pull-request@v2
|
||||||
with:
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Reference Example
|
## Reference Example
|
||||||
@@ -181,10 +175,12 @@ jobs:
|
|||||||
labels: report, automated pr
|
labels: report, automated pr
|
||||||
assignees: peter-evans
|
assignees: peter-evans
|
||||||
reviewers: peter-evans
|
reviewers: peter-evans
|
||||||
|
team-reviewers: owners, maintainers
|
||||||
milestone: 1
|
milestone: 1
|
||||||
project: Example Project
|
project: Example Project
|
||||||
project-column: To do
|
project-column: To do
|
||||||
branch: example-patches
|
branch: example-patches
|
||||||
|
request-to-parent: false
|
||||||
- name: Check outputs
|
- name: Check outputs
|
||||||
run: |
|
run: |
|
||||||
echo "Pull Request Number - ${{ env.PULL_REQUEST_NUMBER }}"
|
echo "Pull Request Number - ${{ env.PULL_REQUEST_NUMBER }}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ description: 'Creates a pull request for changes to your repository in the actio
|
|||||||
inputs:
|
inputs:
|
||||||
token:
|
token:
|
||||||
description: 'GITHUB_TOKEN or a repo scoped PAT'
|
description: 'GITHUB_TOKEN or a repo scoped PAT'
|
||||||
required: true
|
default: ${{ github.token }}
|
||||||
path:
|
path:
|
||||||
description: 'Relative path under $GITHUB_WORKSPACE to the repository.'
|
description: 'Relative path under $GITHUB_WORKSPACE to the repository.'
|
||||||
commit-message:
|
commit-message:
|
||||||
@@ -32,6 +32,9 @@ inputs:
|
|||||||
description: 'The name of the project column under which a card should be created.'
|
description: 'The name of the project column under which a card should be created.'
|
||||||
branch:
|
branch:
|
||||||
description: 'The pull request branch name.'
|
description: 'The pull request branch name.'
|
||||||
|
request-to-parent:
|
||||||
|
description: 'Create the pull request in the parent repository of the checked out fork.'
|
||||||
|
default: false
|
||||||
base:
|
base:
|
||||||
description: 'The pull request base branch.'
|
description: 'The pull request base branch.'
|
||||||
branch-suffix:
|
branch-suffix:
|
||||||
@@ -43,5 +46,5 @@ runs:
|
|||||||
using: 'node12'
|
using: 'node12'
|
||||||
main: 'dist/index.js'
|
main: 'dist/index.js'
|
||||||
branding:
|
branding:
|
||||||
icon: 'git-pull-request'
|
icon: 'git-pull-request'
|
||||||
color: 'gray-dark'
|
color: 'gray-dark'
|
||||||
|
|||||||
22
dist/cpr/create_or_update_pull_request.py
vendored
22
dist/cpr/create_or_update_pull_request.py
vendored
@@ -56,25 +56,37 @@ def create_or_update_pull_request(
|
|||||||
team_reviewers,
|
team_reviewers,
|
||||||
project_name,
|
project_name,
|
||||||
project_column_name,
|
project_column_name,
|
||||||
|
request_to_parent,
|
||||||
):
|
):
|
||||||
|
if request_to_parent is None:
|
||||||
|
request_to_parent = False
|
||||||
|
else:
|
||||||
|
request_to_parent = request_to_parent.lower() in ['true', '1', 't', 'y', 'yes', 'on']
|
||||||
|
|
||||||
|
github_repo = head_repo = Github(github_token).get_repo(github_repository)
|
||||||
|
if request_to_parent:
|
||||||
|
github_repo = github_repo.parent
|
||||||
|
if github_repo is None:
|
||||||
|
raise ValueError("The checked out repository is not a fork. Input 'request-to-parent' should be set to false.")
|
||||||
|
|
||||||
|
head_branch = f"{head_repo.owner.login}:{branch}"
|
||||||
|
|
||||||
# Create the pull request
|
# Create the pull request
|
||||||
github_repo = Github(github_token).get_repo(github_repository)
|
|
||||||
try:
|
try:
|
||||||
pull_request = github_repo.create_pull(
|
pull_request = github_repo.create_pull(
|
||||||
title=title, body=body, base=base, head=branch
|
title=title, body=body, base=base, head=head_branch
|
||||||
)
|
)
|
||||||
print(f"Created pull request #{pull_request.number} ({branch} => {base})")
|
print(f"Created pull request #{pull_request.number} ({head_branch} => {github_repo.owner.login}:{base})")
|
||||||
except GithubException as e:
|
except GithubException as e:
|
||||||
if e.status == 422:
|
if e.status == 422:
|
||||||
# A pull request exists for this branch and base
|
# A pull request exists for this branch and base
|
||||||
head_branch = "{}:{}".format(github_repository.split("/")[0], branch)
|
|
||||||
# Get the pull request
|
# Get the pull request
|
||||||
pull_request = github_repo.get_pulls(
|
pull_request = github_repo.get_pulls(
|
||||||
state="open", base=base, head=head_branch
|
state="open", base=base, head=head_branch
|
||||||
)[0]
|
)[0]
|
||||||
# Update title and body
|
# Update title and body
|
||||||
pull_request.as_issue().edit(title=title, body=body)
|
pull_request.as_issue().edit(title=title, body=body)
|
||||||
print(f"Updated pull request #{pull_request.number} ({branch} => {base})")
|
print(f"Updated pull request #{pull_request.number} ({head_branch} => {github_repo.owner.login}:{base})")
|
||||||
else:
|
else:
|
||||||
print(str(e))
|
print(str(e))
|
||||||
raise
|
raise
|
||||||
|
|||||||
1
dist/cpr/create_pull_request.py
vendored
1
dist/cpr/create_pull_request.py
vendored
@@ -224,4 +224,5 @@ if result["action"] in ["created", "updated"]:
|
|||||||
os.environ.get("CPR_TEAM_REVIEWERS"),
|
os.environ.get("CPR_TEAM_REVIEWERS"),
|
||||||
os.environ.get("CPR_PROJECT_NAME"),
|
os.environ.get("CPR_PROJECT_NAME"),
|
||||||
os.environ.get("CPR_PROJECT_COLUMN_NAME"),
|
os.environ.get("CPR_PROJECT_COLUMN_NAME"),
|
||||||
|
os.environ.get("CPR_REQUEST_TO_PARENT"),
|
||||||
)
|
)
|
||||||
|
|||||||
4
dist/cpr/requirements.txt
vendored
4
dist/cpr/requirements.txt
vendored
@@ -1,2 +1,2 @@
|
|||||||
GitPython==3.0.8
|
GitPython==3.1.0
|
||||||
PyGithub==1.46
|
PyGithub==1.47
|
||||||
|
|||||||
40
dist/index.js
vendored
40
dist/index.js
vendored
@@ -4222,6 +4222,7 @@ const {
|
|||||||
} = __webpack_require__(718);
|
} = __webpack_require__(718);
|
||||||
|
|
||||||
const EXTRAHEADER_OPTION = "http.https://github.com/.extraheader";
|
const EXTRAHEADER_OPTION = "http.https://github.com/.extraheader";
|
||||||
|
const EXTRAHEADER_VALUE_REGEX = "^AUTHORIZATION:";
|
||||||
|
|
||||||
async function run() {
|
async function run() {
|
||||||
try {
|
try {
|
||||||
@@ -4274,6 +4275,7 @@ async function run() {
|
|||||||
project: core.getInput("project"),
|
project: core.getInput("project"),
|
||||||
projectColumn: core.getInput("project-column"),
|
projectColumn: core.getInput("project-column"),
|
||||||
branch: core.getInput("branch"),
|
branch: core.getInput("branch"),
|
||||||
|
request_to_parent: core.getInput("request-to-parent"),
|
||||||
base: core.getInput("base"),
|
base: core.getInput("base"),
|
||||||
branchSuffix: core.getInput("branch-suffix")
|
branchSuffix: core.getInput("branch-suffix")
|
||||||
};
|
};
|
||||||
@@ -4295,15 +4297,17 @@ async function run() {
|
|||||||
if (inputs.project) process.env.CPR_PROJECT_NAME = inputs.project;
|
if (inputs.project) process.env.CPR_PROJECT_NAME = inputs.project;
|
||||||
if (inputs.projectColumn) process.env.CPR_PROJECT_COLUMN_NAME = inputs.projectColumn;
|
if (inputs.projectColumn) process.env.CPR_PROJECT_COLUMN_NAME = inputs.projectColumn;
|
||||||
if (inputs.branch) process.env.CPR_BRANCH = inputs.branch;
|
if (inputs.branch) process.env.CPR_BRANCH = inputs.branch;
|
||||||
|
if (inputs.request_to_parent) process.env.CPR_REQUEST_TO_PARENT = inputs.request_to_parent;
|
||||||
if (inputs.base) process.env.CPR_BASE = inputs.base;
|
if (inputs.base) process.env.CPR_BASE = inputs.base;
|
||||||
if (inputs.branchSuffix) process.env.CPR_BRANCH_SUFFIX = inputs.branchSuffix;
|
if (inputs.branchSuffix) process.env.CPR_BRANCH_SUFFIX = inputs.branchSuffix;
|
||||||
|
|
||||||
// Get the repository path
|
// Get the repository path
|
||||||
var repoPath = getRepoPath(inputs.path);
|
var repoPath = getRepoPath(inputs.path);
|
||||||
// Get the extraheader config option if it exists
|
// Get the extraheader config option if it exists
|
||||||
var extraHeaderOptionValue = await getAndUnsetConfigOption(
|
var extraHeaderOption = await getAndUnsetConfigOption(
|
||||||
repoPath,
|
repoPath,
|
||||||
EXTRAHEADER_OPTION
|
EXTRAHEADER_OPTION,
|
||||||
|
EXTRAHEADER_VALUE_REGEX
|
||||||
);
|
);
|
||||||
|
|
||||||
// Execute create pull request
|
// Execute create pull request
|
||||||
@@ -4312,12 +4316,12 @@ async function run() {
|
|||||||
core.setFailed(error.message);
|
core.setFailed(error.message);
|
||||||
} finally {
|
} finally {
|
||||||
// Restore the extraheader config option
|
// Restore the extraheader config option
|
||||||
if (extraHeaderOptionValue) {
|
if (extraHeaderOption) {
|
||||||
if (
|
if (
|
||||||
await addConfigOption(
|
await addConfigOption(
|
||||||
repoPath,
|
repoPath,
|
||||||
EXTRAHEADER_OPTION,
|
EXTRAHEADER_OPTION,
|
||||||
extraHeaderOptionValue
|
extraHeaderOption.value
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
core.debug(`Restored config option '${EXTRAHEADER_OPTION}'`);
|
core.debug(`Restored config option '${EXTRAHEADER_OPTION}'`);
|
||||||
@@ -4379,39 +4383,43 @@ async function addConfigOption(repoPath, name, value) {
|
|||||||
return result.exitCode === 0;
|
return result.exitCode === 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function unsetConfigOption(repoPath, name) {
|
async function unsetConfigOption(repoPath, name, valueRegex=".") {
|
||||||
const result = await execGit(
|
const result = await execGit(
|
||||||
repoPath,
|
repoPath,
|
||||||
["config", "--local", "--unset", name],
|
["config", "--local", "--unset", name, valueRegex],
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
return result.exitCode === 0;
|
return result.exitCode === 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function configOptionExists(repoPath, name) {
|
async function configOptionExists(repoPath, name, valueRegex=".") {
|
||||||
const result = await execGit(
|
const result = await execGit(
|
||||||
repoPath,
|
repoPath,
|
||||||
["config", "--local", "--name-only", "--get-regexp", name],
|
["config", "--local", "--name-only", "--get-regexp", name, valueRegex],
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
return result.exitCode === 0;
|
return result.exitCode === 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getConfigOption(repoPath, name) {
|
async function getConfigOption(repoPath, name, valueRegex=".") {
|
||||||
const result = await execGit(
|
const result = await execGit(
|
||||||
repoPath,
|
repoPath,
|
||||||
["config", "--local", name],
|
["config", "--local", "--get-regexp", name, valueRegex],
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
return result.stdout.trim();
|
const option = result.stdout.trim().split(`${name} `);
|
||||||
|
return {
|
||||||
|
name: name,
|
||||||
|
value: option[1]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getAndUnsetConfigOption(repoPath, name) {
|
async function getAndUnsetConfigOption(repoPath, name, valueRegex=".") {
|
||||||
if (await configOptionExists(repoPath, name)) {
|
if (await configOptionExists(repoPath, name, valueRegex)) {
|
||||||
const extraHeaderOptionValue = await getConfigOption(repoPath, name);
|
const option = await getConfigOption(repoPath, name, valueRegex);
|
||||||
if (await unsetConfigOption(repoPath, name)) {
|
if (await unsetConfigOption(repoPath, name, valueRegex)) {
|
||||||
core.debug(`Unset config option '${name}'`);
|
core.debug(`Unset config option '${name}'`);
|
||||||
return extraHeaderOptionValue;
|
return option;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
BIN
dist/vendor/GitPython-3.0.8.tar.gz
vendored
BIN
dist/vendor/GitPython-3.0.8.tar.gz
vendored
Binary file not shown.
BIN
dist/vendor/GitPython-3.1.0.tar.gz
vendored
Normal file
BIN
dist/vendor/GitPython-3.1.0.tar.gz
vendored
Normal file
Binary file not shown.
BIN
dist/vendor/PyGithub-1.46.tar.gz
vendored
BIN
dist/vendor/PyGithub-1.46.tar.gz
vendored
Binary file not shown.
BIN
dist/vendor/PyGithub-1.47.tar.gz
vendored
Normal file
BIN
dist/vendor/PyGithub-1.47.tar.gz
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
dist/vendor/smmap-3.0.1.tar.gz
vendored
Normal file
BIN
dist/vendor/smmap-3.0.1.tar.gz
vendored
Normal file
Binary file not shown.
BIN
dist/vendor/smmap2-2.0.5.tar.gz
vendored
BIN
dist/vendor/smmap2-2.0.5.tar.gz
vendored
Binary file not shown.
BIN
dist/vendor/wrapt-1.12.0.tar.gz
vendored
BIN
dist/vendor/wrapt-1.12.0.tar.gz
vendored
Binary file not shown.
BIN
dist/vendor/wrapt-1.12.1.tar.gz
vendored
Normal file
BIN
dist/vendor/wrapt-1.12.1.tar.gz
vendored
Normal file
Binary file not shown.
@@ -13,6 +13,7 @@ This document covers terminology, how the action works, general usage guidelines
|
|||||||
- [Advanced usage](#advanced-usage)
|
- [Advanced usage](#advanced-usage)
|
||||||
- [Creating pull requests in a remote repository](#creating-pull-requests-in-a-remote-repository)
|
- [Creating pull requests in a remote repository](#creating-pull-requests-in-a-remote-repository)
|
||||||
- [Push using SSH (deploy keys)](#push-using-ssh-deploy-keys)
|
- [Push using SSH (deploy keys)](#push-using-ssh-deploy-keys)
|
||||||
|
- [Push pull request branches to a fork](#push-pull-request-branches-to-a-fork)
|
||||||
- [Running in a container](#running-in-a-container)
|
- [Running in a container](#running-in-a-container)
|
||||||
- [Creating pull requests on tag push](#creating-pull-requests-on-tag-push)
|
- [Creating pull requests on tag push](#creating-pull-requests-on-tag-push)
|
||||||
|
|
||||||
@@ -176,8 +177,36 @@ How to use SSH (deploy keys) with create-pull-request action:
|
|||||||
|
|
||||||
- name: Create Pull Request
|
- name: Create Pull Request
|
||||||
uses: peter-evans/create-pull-request@v2
|
uses: peter-evans/create-pull-request@v2
|
||||||
|
```
|
||||||
|
|
||||||
|
### Push pull request branches to a fork
|
||||||
|
|
||||||
|
Instead of pushing pull request branches to the repository you want to update, you can push them to a fork of that repository.
|
||||||
|
This allows you to employ the [principle of least privilege](https://en.wikipedia.org/wiki/Principle_of_least_privilege) by using a dedicated user acting as a [machine account](https://help.github.com/en/github/site-policy/github-terms-of-service#3-account-requirements).
|
||||||
|
This user has no access to the main repository.
|
||||||
|
It will use their own fork to push code and create the pull request.
|
||||||
|
|
||||||
|
1. Create a new GitHub user and login.
|
||||||
|
2. Fork the repository that you will be creating pull requests in.
|
||||||
|
3. Create a [Personal Access Token (PAT)](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line).
|
||||||
|
4. Logout and log back in to your main user account.
|
||||||
|
5. Add a secret to your repository containing the above PAT.
|
||||||
|
6. As shown in the following example workflow, switch the git remote to the fork's URL after checkout and set the action input `request-on-parent` to `true`.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- run: |
|
||||||
|
git config user.password ${{ secrets.PAT }}
|
||||||
|
git remote set-url origin https://github.com/bot-user/fork-project
|
||||||
|
git fetch --unshallow -p origin
|
||||||
|
|
||||||
|
# Make changes to pull request here
|
||||||
|
|
||||||
|
- uses: peter-evans/create-pull-request@v2
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.PAT }}
|
||||||
|
request-on-parent: true
|
||||||
```
|
```
|
||||||
|
|
||||||
### Running in a container
|
### Running in a container
|
||||||
@@ -205,8 +234,6 @@ jobs:
|
|||||||
|
|
||||||
- name: Create Pull Request
|
- name: Create Pull Request
|
||||||
uses: peter-evans/create-pull-request@v2
|
uses: peter-evans/create-pull-request@v2
|
||||||
with:
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
```
|
```
|
||||||
|
|
||||||
**Ubuntu container example:**
|
**Ubuntu container example:**
|
||||||
@@ -230,8 +257,6 @@ jobs:
|
|||||||
|
|
||||||
- name: Create Pull Request
|
- name: Create Pull Request
|
||||||
uses: peter-evans/create-pull-request@v2
|
uses: peter-evans/create-pull-request@v2
|
||||||
with:
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Creating pull requests on tag push
|
### Creating pull requests on tag push
|
||||||
@@ -265,7 +290,6 @@ jobs:
|
|||||||
- name: Create Pull Request
|
- name: Create Pull Request
|
||||||
uses: peter-evans/create-pull-request@v2
|
uses: peter-evans/create-pull-request@v2
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
base: master
|
base: master
|
||||||
|
|
||||||
- name: Delete tag branch
|
- name: Delete tag branch
|
||||||
@@ -293,6 +317,4 @@ jobs:
|
|||||||
|
|
||||||
- name: Create Pull Request
|
- name: Create Pull Request
|
||||||
uses: peter-evans/create-pull-request@v2
|
uses: peter-evans/create-pull-request@v2
|
||||||
with:
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -45,7 +45,6 @@ jobs:
|
|||||||
- name: Create Pull Request
|
- name: Create Pull Request
|
||||||
uses: peter-evans/create-pull-request@v2
|
uses: peter-evans/create-pull-request@v2
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
commit-message: update authors
|
commit-message: update authors
|
||||||
title: Update AUTHORS
|
title: Update AUTHORS
|
||||||
body: Credit new contributors by updating AUTHORS
|
body: Credit new contributors by updating AUTHORS
|
||||||
@@ -78,7 +77,6 @@ jobs:
|
|||||||
- name: Create Pull Request
|
- name: Create Pull Request
|
||||||
uses: peter-evans/create-pull-request@v2
|
uses: peter-evans/create-pull-request@v2
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
branch: production-promotion
|
branch: production-promotion
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -110,7 +108,6 @@ jobs:
|
|||||||
- name: Create Pull Request
|
- name: Create Pull Request
|
||||||
uses: peter-evans/create-pull-request@v2
|
uses: peter-evans/create-pull-request@v2
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
commit-message: update dependencies
|
commit-message: update dependencies
|
||||||
title: Automated Dependency Updates
|
title: Automated Dependency Updates
|
||||||
body: This is an auto-generated PR with dependency updates.
|
body: This is an auto-generated PR with dependency updates.
|
||||||
@@ -161,7 +158,6 @@ jobs:
|
|||||||
- name: Create Pull Request
|
- name: Create Pull Request
|
||||||
uses: peter-evans/create-pull-request@v2
|
uses: peter-evans/create-pull-request@v2
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
commit-message: Update swagger-ui to ${{ steps.swagger-ui.outputs.release_tag }}
|
commit-message: Update swagger-ui to ${{ steps.swagger-ui.outputs.release_tag }}
|
||||||
title: Update SwaggerUI to ${{ steps.swagger-ui.outputs.release_tag }}
|
title: Update SwaggerUI to ${{ steps.swagger-ui.outputs.release_tag }}
|
||||||
body: |
|
body: |
|
||||||
@@ -204,7 +200,6 @@ jobs:
|
|||||||
- name: Create Pull Request
|
- name: Create Pull Request
|
||||||
uses: peter-evans/create-pull-request@v2
|
uses: peter-evans/create-pull-request@v2
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
commit-message: update local website copy
|
commit-message: update local website copy
|
||||||
title: Automated Updates to Local Website Copy
|
title: Automated Updates to Local Website Copy
|
||||||
body: This is an auto-generated PR with website updates.
|
body: This is an auto-generated PR with website updates.
|
||||||
@@ -299,7 +294,6 @@ jobs:
|
|||||||
if: steps.autopep8.outputs.exit-code == 2
|
if: steps.autopep8.outputs.exit-code == 2
|
||||||
uses: peter-evans/create-pull-request@v2
|
uses: peter-evans/create-pull-request@v2
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
commit-message: autopep8 action fixes
|
commit-message: autopep8 action fixes
|
||||||
title: Fixes by autopep8 action
|
title: Fixes by autopep8 action
|
||||||
body: This is an auto-generated PR with fixes by autopep8.
|
body: This is an auto-generated PR with fixes by autopep8.
|
||||||
@@ -358,7 +352,6 @@ The recommended method is to use [`set-output`](https://help.github.com/en/githu
|
|||||||
- name: Create Pull Request
|
- name: Create Pull Request
|
||||||
uses: peter-evans/create-pull-request@v2
|
uses: peter-evans/create-pull-request@v2
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
title: ${{ steps.vars.outputs.pr_title }}
|
title: ${{ steps.vars.outputs.pr_title }}
|
||||||
body: ${{ steps.vars.outputs.pr_body }}
|
body: ${{ steps.vars.outputs.pr_body }}
|
||||||
```
|
```
|
||||||
@@ -374,7 +367,6 @@ Alternatively, [`set-env`](https://help.github.com/en/github/automating-your-wor
|
|||||||
- name: Create Pull Request
|
- name: Create Pull Request
|
||||||
uses: peter-evans/create-pull-request@v2
|
uses: peter-evans/create-pull-request@v2
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
title: ${{ env.PULL_REQUEST_TITLE }}
|
title: ${{ env.PULL_REQUEST_TITLE }}
|
||||||
body: ${{ env.PULL_REQUEST_BODY }}
|
body: ${{ env.PULL_REQUEST_BODY }}
|
||||||
```
|
```
|
||||||
|
|||||||
1124
package-lock.json
generated
1124
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -29,8 +29,8 @@
|
|||||||
"is-docker": "^2.0.0"
|
"is-docker": "^2.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@zeit/ncc": "0.21.1",
|
"@zeit/ncc": "0.22.0",
|
||||||
"eslint": "6.8.0",
|
"eslint": "6.8.0",
|
||||||
"jest": "25.1.0"
|
"jest": "25.2.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,25 +56,37 @@ def create_or_update_pull_request(
|
|||||||
team_reviewers,
|
team_reviewers,
|
||||||
project_name,
|
project_name,
|
||||||
project_column_name,
|
project_column_name,
|
||||||
|
request_to_parent,
|
||||||
):
|
):
|
||||||
|
if request_to_parent is None:
|
||||||
|
request_to_parent = False
|
||||||
|
else:
|
||||||
|
request_to_parent = request_to_parent.lower() in ['true', '1', 't', 'y', 'yes', 'on']
|
||||||
|
|
||||||
|
github_repo = head_repo = Github(github_token).get_repo(github_repository)
|
||||||
|
if request_to_parent:
|
||||||
|
github_repo = github_repo.parent
|
||||||
|
if github_repo is None:
|
||||||
|
raise ValueError("The checked out repository is not a fork. Input 'request-to-parent' should be set to false.")
|
||||||
|
|
||||||
|
head_branch = f"{head_repo.owner.login}:{branch}"
|
||||||
|
|
||||||
# Create the pull request
|
# Create the pull request
|
||||||
github_repo = Github(github_token).get_repo(github_repository)
|
|
||||||
try:
|
try:
|
||||||
pull_request = github_repo.create_pull(
|
pull_request = github_repo.create_pull(
|
||||||
title=title, body=body, base=base, head=branch
|
title=title, body=body, base=base, head=head_branch
|
||||||
)
|
)
|
||||||
print(f"Created pull request #{pull_request.number} ({branch} => {base})")
|
print(f"Created pull request #{pull_request.number} ({head_branch} => {github_repo.owner.login}:{base})")
|
||||||
except GithubException as e:
|
except GithubException as e:
|
||||||
if e.status == 422:
|
if e.status == 422:
|
||||||
# A pull request exists for this branch and base
|
# A pull request exists for this branch and base
|
||||||
head_branch = "{}:{}".format(github_repository.split("/")[0], branch)
|
|
||||||
# Get the pull request
|
# Get the pull request
|
||||||
pull_request = github_repo.get_pulls(
|
pull_request = github_repo.get_pulls(
|
||||||
state="open", base=base, head=head_branch
|
state="open", base=base, head=head_branch
|
||||||
)[0]
|
)[0]
|
||||||
# Update title and body
|
# Update title and body
|
||||||
pull_request.as_issue().edit(title=title, body=body)
|
pull_request.as_issue().edit(title=title, body=body)
|
||||||
print(f"Updated pull request #{pull_request.number} ({branch} => {base})")
|
print(f"Updated pull request #{pull_request.number} ({head_branch} => {github_repo.owner.login}:{base})")
|
||||||
else:
|
else:
|
||||||
print(str(e))
|
print(str(e))
|
||||||
raise
|
raise
|
||||||
|
|||||||
@@ -192,7 +192,7 @@ result = coub.create_or_update_branch(repo, repo_url, commit_message, base, bran
|
|||||||
|
|
||||||
if result["action"] in ["created", "updated"]:
|
if result["action"] in ["created", "updated"]:
|
||||||
# The branch was created or updated
|
# The branch was created or updated
|
||||||
print(f"Pushing pull request branch to 'origin/{branch}'")
|
print(f"Pushing pull request branch to '{repo.full_name}/{branch}'")
|
||||||
repo.git.push("--force", repo_url, f"HEAD:refs/heads/{branch}")
|
repo.git.push("--force", repo_url, f"HEAD:refs/heads/{branch}")
|
||||||
|
|
||||||
# Set the base. It would have been 'None' if not specified as an input
|
# Set the base. It would have been 'None' if not specified as an input
|
||||||
@@ -224,4 +224,5 @@ if result["action"] in ["created", "updated"]:
|
|||||||
os.environ.get("CPR_TEAM_REVIEWERS"),
|
os.environ.get("CPR_TEAM_REVIEWERS"),
|
||||||
os.environ.get("CPR_PROJECT_NAME"),
|
os.environ.get("CPR_PROJECT_NAME"),
|
||||||
os.environ.get("CPR_PROJECT_COLUMN_NAME"),
|
os.environ.get("CPR_PROJECT_COLUMN_NAME"),
|
||||||
|
os.environ.get("CPR_REQUEST_TO_PARENT"),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
GitPython==3.0.8
|
GitPython==3.1.0
|
||||||
PyGithub==1.46
|
PyGithub==1.47
|
||||||
|
|||||||
28
src/git.js
28
src/git.js
@@ -44,39 +44,43 @@ async function addConfigOption(repoPath, name, value) {
|
|||||||
return result.exitCode === 0;
|
return result.exitCode === 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function unsetConfigOption(repoPath, name) {
|
async function unsetConfigOption(repoPath, name, valueRegex=".") {
|
||||||
const result = await execGit(
|
const result = await execGit(
|
||||||
repoPath,
|
repoPath,
|
||||||
["config", "--local", "--unset", name],
|
["config", "--local", "--unset", name, valueRegex],
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
return result.exitCode === 0;
|
return result.exitCode === 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function configOptionExists(repoPath, name) {
|
async function configOptionExists(repoPath, name, valueRegex=".") {
|
||||||
const result = await execGit(
|
const result = await execGit(
|
||||||
repoPath,
|
repoPath,
|
||||||
["config", "--local", "--name-only", "--get-regexp", name],
|
["config", "--local", "--name-only", "--get-regexp", name, valueRegex],
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
return result.exitCode === 0;
|
return result.exitCode === 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getConfigOption(repoPath, name) {
|
async function getConfigOption(repoPath, name, valueRegex=".") {
|
||||||
const result = await execGit(
|
const result = await execGit(
|
||||||
repoPath,
|
repoPath,
|
||||||
["config", "--local", name],
|
["config", "--local", "--get-regexp", name, valueRegex],
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
return result.stdout.trim();
|
const option = result.stdout.trim().split(`${name} `);
|
||||||
|
return {
|
||||||
|
name: name,
|
||||||
|
value: option[1]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getAndUnsetConfigOption(repoPath, name) {
|
async function getAndUnsetConfigOption(repoPath, name, valueRegex=".") {
|
||||||
if (await configOptionExists(repoPath, name)) {
|
if (await configOptionExists(repoPath, name, valueRegex)) {
|
||||||
const extraHeaderOptionValue = await getConfigOption(repoPath, name);
|
const option = await getConfigOption(repoPath, name, valueRegex);
|
||||||
if (await unsetConfigOption(repoPath, name)) {
|
if (await unsetConfigOption(repoPath, name, valueRegex)) {
|
||||||
core.debug(`Unset config option '${name}'`);
|
core.debug(`Unset config option '${name}'`);
|
||||||
return extraHeaderOptionValue;
|
return option;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -29,12 +29,20 @@ test("execGit", async () => {
|
|||||||
|
|
||||||
test("add and unset config option", async () => {
|
test("add and unset config option", async () => {
|
||||||
const repoPath = getRepoPath();
|
const repoPath = getRepoPath();
|
||||||
const add = await addConfigOption(repoPath, "test.add.and.unset.config.option", "true");
|
const add = await addConfigOption(repoPath, "test.add.and.unset.config.option", "foo");
|
||||||
expect(add).toBeTruthy();
|
expect(add).toBeTruthy();
|
||||||
const unset = await unsetConfigOption(repoPath, "test.add.and.unset.config.option");
|
const unset = await unsetConfigOption(repoPath, "test.add.and.unset.config.option");
|
||||||
expect(unset).toBeTruthy();
|
expect(unset).toBeTruthy();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test("add and unset config option with value regex", async () => {
|
||||||
|
const repoPath = getRepoPath();
|
||||||
|
const add = await addConfigOption(repoPath, "test.add.and.unset.config.option", "foo bar");
|
||||||
|
expect(add).toBeTruthy();
|
||||||
|
const unset = await unsetConfigOption(repoPath, "test.add.and.unset.config.option", "^foo");
|
||||||
|
expect(unset).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
test("configOptionExists returns true", async () => {
|
test("configOptionExists returns true", async () => {
|
||||||
const repoPath = getRepoPath();
|
const repoPath = getRepoPath();
|
||||||
const result = await configOptionExists(repoPath, "remote.origin.url");
|
const result = await configOptionExists(repoPath, "remote.origin.url");
|
||||||
@@ -51,18 +59,36 @@ test("get config option", async () => {
|
|||||||
const repoPath = getRepoPath();
|
const repoPath = getRepoPath();
|
||||||
const add = await addConfigOption(repoPath, "test.get.config.option", "foo");
|
const add = await addConfigOption(repoPath, "test.get.config.option", "foo");
|
||||||
expect(add).toBeTruthy();
|
expect(add).toBeTruthy();
|
||||||
const get = await getConfigOption(repoPath, "test.get.config.option");
|
const option = await getConfigOption(repoPath, "test.get.config.option");
|
||||||
expect(get).toEqual("foo");
|
expect(option.value).toEqual("foo");
|
||||||
const unset = await unsetConfigOption(repoPath, "test.get.config.option");
|
const unset = await unsetConfigOption(repoPath, "test.get.config.option");
|
||||||
expect(unset).toBeTruthy();
|
expect(unset).toBeTruthy();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test("get config option with value regex", async () => {
|
||||||
|
const repoPath = getRepoPath();
|
||||||
|
const add = await addConfigOption(repoPath, "test.get.config.option", "foo bar");
|
||||||
|
expect(add).toBeTruthy();
|
||||||
|
const option = await getConfigOption(repoPath, "test.get.config.option", "^foo");
|
||||||
|
expect(option.value).toEqual("foo bar");
|
||||||
|
const unset = await unsetConfigOption(repoPath, "test.get.config.option", "^foo");
|
||||||
|
expect(unset).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
test("get and unset config option is successful", async () => {
|
test("get and unset config option is successful", async () => {
|
||||||
const repoPath = getRepoPath();
|
const repoPath = getRepoPath();
|
||||||
const add = await addConfigOption(repoPath, "test.get.and.unset.config.option", "foo");
|
const add = await addConfigOption(repoPath, "test.get.and.unset.config.option", "foo");
|
||||||
expect(add).toBeTruthy();
|
expect(add).toBeTruthy();
|
||||||
const getAndUnset = await getAndUnsetConfigOption(repoPath, "test.get.and.unset.config.option");
|
const getAndUnset = await getAndUnsetConfigOption(repoPath, "test.get.and.unset.config.option");
|
||||||
expect(getAndUnset).toEqual("foo");
|
expect(getAndUnset.value).toEqual("foo");
|
||||||
|
});
|
||||||
|
|
||||||
|
test("get and unset config option is successful with value regex", async () => {
|
||||||
|
const repoPath = getRepoPath();
|
||||||
|
const add = await addConfigOption(repoPath, "test.get.and.unset.config.option", "foo bar");
|
||||||
|
expect(add).toBeTruthy();
|
||||||
|
const getAndUnset = await getAndUnsetConfigOption(repoPath, "test.get.and.unset.config.option", "^foo");
|
||||||
|
expect(getAndUnset.value).toEqual("foo bar");
|
||||||
});
|
});
|
||||||
|
|
||||||
test("get and unset config option is unsuccessful", async () => {
|
test("get and unset config option is unsuccessful", async () => {
|
||||||
|
|||||||
12
src/index.js
12
src/index.js
@@ -10,6 +10,7 @@ const {
|
|||||||
} = require("./git");
|
} = require("./git");
|
||||||
|
|
||||||
const EXTRAHEADER_OPTION = "http.https://github.com/.extraheader";
|
const EXTRAHEADER_OPTION = "http.https://github.com/.extraheader";
|
||||||
|
const EXTRAHEADER_VALUE_REGEX = "^AUTHORIZATION:";
|
||||||
|
|
||||||
async function run() {
|
async function run() {
|
||||||
try {
|
try {
|
||||||
@@ -62,6 +63,7 @@ async function run() {
|
|||||||
project: core.getInput("project"),
|
project: core.getInput("project"),
|
||||||
projectColumn: core.getInput("project-column"),
|
projectColumn: core.getInput("project-column"),
|
||||||
branch: core.getInput("branch"),
|
branch: core.getInput("branch"),
|
||||||
|
request_to_parent: core.getInput("request-to-parent"),
|
||||||
base: core.getInput("base"),
|
base: core.getInput("base"),
|
||||||
branchSuffix: core.getInput("branch-suffix")
|
branchSuffix: core.getInput("branch-suffix")
|
||||||
};
|
};
|
||||||
@@ -83,15 +85,17 @@ async function run() {
|
|||||||
if (inputs.project) process.env.CPR_PROJECT_NAME = inputs.project;
|
if (inputs.project) process.env.CPR_PROJECT_NAME = inputs.project;
|
||||||
if (inputs.projectColumn) process.env.CPR_PROJECT_COLUMN_NAME = inputs.projectColumn;
|
if (inputs.projectColumn) process.env.CPR_PROJECT_COLUMN_NAME = inputs.projectColumn;
|
||||||
if (inputs.branch) process.env.CPR_BRANCH = inputs.branch;
|
if (inputs.branch) process.env.CPR_BRANCH = inputs.branch;
|
||||||
|
if (inputs.request_to_parent) process.env.CPR_REQUEST_TO_PARENT = inputs.request_to_parent;
|
||||||
if (inputs.base) process.env.CPR_BASE = inputs.base;
|
if (inputs.base) process.env.CPR_BASE = inputs.base;
|
||||||
if (inputs.branchSuffix) process.env.CPR_BRANCH_SUFFIX = inputs.branchSuffix;
|
if (inputs.branchSuffix) process.env.CPR_BRANCH_SUFFIX = inputs.branchSuffix;
|
||||||
|
|
||||||
// Get the repository path
|
// Get the repository path
|
||||||
var repoPath = getRepoPath(inputs.path);
|
var repoPath = getRepoPath(inputs.path);
|
||||||
// Get the extraheader config option if it exists
|
// Get the extraheader config option if it exists
|
||||||
var extraHeaderOptionValue = await getAndUnsetConfigOption(
|
var extraHeaderOption = await getAndUnsetConfigOption(
|
||||||
repoPath,
|
repoPath,
|
||||||
EXTRAHEADER_OPTION
|
EXTRAHEADER_OPTION,
|
||||||
|
EXTRAHEADER_VALUE_REGEX
|
||||||
);
|
);
|
||||||
|
|
||||||
// Execute create pull request
|
// Execute create pull request
|
||||||
@@ -100,12 +104,12 @@ async function run() {
|
|||||||
core.setFailed(error.message);
|
core.setFailed(error.message);
|
||||||
} finally {
|
} finally {
|
||||||
// Restore the extraheader config option
|
// Restore the extraheader config option
|
||||||
if (extraHeaderOptionValue) {
|
if (extraHeaderOption) {
|
||||||
if (
|
if (
|
||||||
await addConfigOption(
|
await addConfigOption(
|
||||||
repoPath,
|
repoPath,
|
||||||
EXTRAHEADER_OPTION,
|
EXTRAHEADER_OPTION,
|
||||||
extraHeaderOptionValue
|
extraHeaderOption.value
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
core.debug(`Restored config option '${EXTRAHEADER_OPTION}'`);
|
core.debug(`Restored config option '${EXTRAHEADER_OPTION}'`);
|
||||||
|
|||||||
Reference in New Issue
Block a user