Skip to content

Commit d359236

Browse files
samagiusBetaHuhn
andcommitted
✨ Add skip PR option #14
Co-authored-by: BetaHuhn <[email protected]>
1 parent 5a99a42 commit d359236

File tree

6 files changed

+377
-245
lines changed

6 files changed

+377
-245
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ Here are all the inputs [repo-file-sync-action](https://github.com/BetaHuhn/repo
103103
| `TMP_DIR` | The working directory where all git operations will be done | **No** | tmp-${ Date.now().toString() } |
104104
| `DRY_RUN` | Run everything except that nothing will be pushed | **No** | false |
105105
| `SKIP_CLEANUP` | Skips removing the temporary directory. Useful for debugging | **No** | false |
106+
| `SKIP_PR` | Skips creating a Pull Request and pushes directly to the default branch | **No** | false |
106107

107108
## 🛠️ Sync Configuration
108109

action.yml

+4
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ inputs:
5151
description: |
5252
Overwrite any existing Sync PR with the new changes. Defaults to true
5353
required: false
54+
SKIP_PR:
55+
description: |
56+
Skips creating a Pull Request and pushes directly to the default branch. Defaults to false
57+
required: false
5458

5559
runs:
5660
using: 'node12'

dist/index.js

+56-44
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ module.exports =
66
/***/ ((module) => {
77

88
"use strict";
9-
module.exports = JSON.parse("{\"_args\":[[\"@octokit/[email protected]\",\"/home/betahuhn/programming/action-github-file-sync\"]],\"_from\":\"@octokit/[email protected]\",\"_id\":\"@octokit/[email protected]\",\"_inBundle\":false,\"_integrity\":\"sha512-ngDBevLbBTFfrHZeiS7SAMAZ6ssuVmXuya+F/7RaVvlysgGa1JKJkKWY+jV6TCJYcW0OALfJ7nTIGXcBXzycfQ==\",\"_location\":\"/@actions/github/@octokit/rest\",\"_phantomChildren\":{},\"_requested\":{\"type\":\"version\",\"registry\":true,\"raw\":\"@octokit/[email protected]\",\"name\":\"@octokit/rest\",\"escapedName\":\"@octokit%2frest\",\"scope\":\"@octokit\",\"rawSpec\":\"16.43.2\",\"saveSpec\":null,\"fetchSpec\":\"16.43.2\"},\"_requiredBy\":[\"/@actions/github\"],\"_resolved\":\"https://registry.npmjs.org/@octokit/rest/-/rest-16.43.2.tgz\",\"_spec\":\"16.43.2\",\"_where\":\"/home/betahuhn/programming/action-github-file-sync\",\"author\":{\"name\":\"Gregor Martynus\",\"url\":\"https://github.com/gr2m\"},\"bugs\":{\"url\":\"https://github.com/octokit/rest.js/issues\"},\"bundlesize\":[{\"path\":\"./dist/octokit-rest.min.js.gz\",\"maxSize\":\"33 kB\"}],\"contributors\":[{\"name\":\"Mike de Boer\",\"email\":\"[email protected]\"},{\"name\":\"Fabian Jakobs\",\"email\":\"[email protected]\"},{\"name\":\"Joe Gallo\",\"email\":\"[email protected]\"},{\"name\":\"Gregor Martynus\",\"url\":\"https://github.com/gr2m\"}],\"dependencies\":{\"@octokit/auth-token\":\"^2.4.0\",\"@octokit/plugin-paginate-rest\":\"^1.1.1\",\"@octokit/plugin-request-log\":\"^1.0.0\",\"@octokit/plugin-rest-endpoint-methods\":\"2.4.0\",\"@octokit/request\":\"^5.2.0\",\"@octokit/request-error\":\"^1.0.2\",\"atob-lite\":\"^2.0.0\",\"before-after-hook\":\"^2.0.0\",\"btoa-lite\":\"^1.0.0\",\"deprecation\":\"^2.0.0\",\"lodash.get\":\"^4.4.2\",\"lodash.set\":\"^4.3.2\",\"lodash.uniq\":\"^4.5.0\",\"octokit-pagination-methods\":\"^1.1.0\",\"once\":\"^1.4.0\",\"universal-user-agent\":\"^4.0.0\"},\"description\":\"GitHub REST API client for Node.js\",\"devDependencies\":{\"@gimenete/type-writer\":\"^0.1.3\",\"@octokit/auth\":\"^1.1.1\",\"@octokit/fixtures-server\":\"^5.0.6\",\"@octokit/graphql\":\"^4.2.0\",\"@types/node\":\"^13.1.0\",\"bundlesize\":\"^0.18.0\",\"chai\":\"^4.1.2\",\"compression-webpack-plugin\":\"^3.1.0\",\"cypress\":\"^4.0.0\",\"glob\":\"^7.1.2\",\"http-proxy-agent\":\"^4.0.0\",\"lodash.camelcase\":\"^4.3.0\",\"lodash.merge\":\"^4.6.1\",\"lodash.upperfirst\":\"^4.3.1\",\"lolex\":\"^6.0.0\",\"mkdirp\":\"^1.0.0\",\"mocha\":\"^7.0.1\",\"mustache\":\"^4.0.0\",\"nock\":\"^11.3.3\",\"npm-run-all\":\"^4.1.2\",\"nyc\":\"^15.0.0\",\"prettier\":\"^1.14.2\",\"proxy\":\"^1.0.0\",\"semantic-release\":\"^17.0.0\",\"sinon\":\"^8.0.0\",\"sinon-chai\":\"^3.0.0\",\"sort-keys\":\"^4.0.0\",\"string-to-arraybuffer\":\"^1.0.0\",\"string-to-jsdoc-comment\":\"^1.0.0\",\"typescript\":\"^3.3.1\",\"webpack\":\"^4.0.0\",\"webpack-bundle-analyzer\":\"^3.0.0\",\"webpack-cli\":\"^3.0.0\"},\"files\":[\"index.js\",\"index.d.ts\",\"lib\",\"plugins\"],\"homepage\":\"https://github.com/octokit/rest.js#readme\",\"keywords\":[\"octokit\",\"github\",\"rest\",\"api-client\"],\"license\":\"MIT\",\"name\":\"@octokit/rest\",\"nyc\":{\"ignore\":[\"test\"]},\"publishConfig\":{\"access\":\"public\"},\"release\":{\"publish\":[\"@semantic-release/npm\",{\"path\":\"@semantic-release/github\",\"assets\":[\"dist/*\",\"!dist/*.map.gz\"]}]},\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/octokit/rest.js.git\"},\"scripts\":{\"build\":\"npm-run-all build:*\",\"build:browser\":\"npm-run-all build:browser:*\",\"build:browser:development\":\"webpack --mode development --entry . --output-library=Octokit --output=./dist/octokit-rest.js --profile --json > dist/bundle-stats.json\",\"build:browser:production\":\"webpack --mode production --entry . --plugin=compression-webpack-plugin --output-library=Octokit --output-path=./dist --output-filename=octokit-rest.min.js --devtool source-map\",\"build:ts\":\"npm run -s update-endpoints:typescript\",\"coverage\":\"nyc report --reporter=html && open coverage/index.html\",\"generate-bundle-report\":\"webpack-bundle-analyzer dist/bundle-stats.json --mode=static --no-open --report dist/bundle-report.html\",\"lint\":\"prettier --check '{lib,plugins,scripts,test}/**/*.{js,json,ts}' 'docs/*.{js,json}' 'docs/src/**/*' index.js README.md package.json\",\"lint:fix\":\"prettier --write '{lib,plugins,scripts,test}/**/*.{js,json,ts}' 'docs/*.{js,json}' 'docs/src/**/*' index.js README.md package.json\",\"postvalidate:ts\":\"tsc --noEmit --target es6 test/typescript-validate.ts\",\"prebuild:browser\":\"mkdirp dist/\",\"pretest\":\"npm run -s lint\",\"prevalidate:ts\":\"npm run -s build:ts\",\"start-fixtures-server\":\"octokit-fixtures-server\",\"test\":\"nyc mocha test/mocha-node-setup.js \\\"test/*/**/*-test.js\\\"\",\"test:browser\":\"cypress run --browser chrome\",\"update-endpoints\":\"npm-run-all update-endpoints:*\",\"update-endpoints:fetch-json\":\"node scripts/update-endpoints/fetch-json\",\"update-endpoints:typescript\":\"node scripts/update-endpoints/typescript\",\"validate:ts\":\"tsc --target es6 --noImplicitAny index.d.ts\"},\"types\":\"index.d.ts\",\"version\":\"16.43.2\"}");
9+
module.exports = JSON.parse("{\"_args\":[[\"@octokit/[email protected]\",\"/home/betahuhn/programming/repo-file-sync-action\"]],\"_from\":\"@octokit/[email protected]\",\"_id\":\"@octokit/[email protected]\",\"_inBundle\":false,\"_integrity\":\"sha512-ngDBevLbBTFfrHZeiS7SAMAZ6ssuVmXuya+F/7RaVvlysgGa1JKJkKWY+jV6TCJYcW0OALfJ7nTIGXcBXzycfQ==\",\"_location\":\"/@actions/github/@octokit/rest\",\"_phantomChildren\":{},\"_requested\":{\"type\":\"version\",\"registry\":true,\"raw\":\"@octokit/[email protected]\",\"name\":\"@octokit/rest\",\"escapedName\":\"@octokit%2frest\",\"scope\":\"@octokit\",\"rawSpec\":\"16.43.2\",\"saveSpec\":null,\"fetchSpec\":\"16.43.2\"},\"_requiredBy\":[\"/@actions/github\"],\"_resolved\":\"https://registry.npmjs.org/@octokit/rest/-/rest-16.43.2.tgz\",\"_spec\":\"16.43.2\",\"_where\":\"/home/betahuhn/programming/repo-file-sync-action\",\"author\":{\"name\":\"Gregor Martynus\",\"url\":\"https://github.com/gr2m\"},\"bugs\":{\"url\":\"https://github.com/octokit/rest.js/issues\"},\"bundlesize\":[{\"path\":\"./dist/octokit-rest.min.js.gz\",\"maxSize\":\"33 kB\"}],\"contributors\":[{\"name\":\"Mike de Boer\",\"email\":\"[email protected]\"},{\"name\":\"Fabian Jakobs\",\"email\":\"[email protected]\"},{\"name\":\"Joe Gallo\",\"email\":\"[email protected]\"},{\"name\":\"Gregor Martynus\",\"url\":\"https://github.com/gr2m\"}],\"dependencies\":{\"@octokit/auth-token\":\"^2.4.0\",\"@octokit/plugin-paginate-rest\":\"^1.1.1\",\"@octokit/plugin-request-log\":\"^1.0.0\",\"@octokit/plugin-rest-endpoint-methods\":\"2.4.0\",\"@octokit/request\":\"^5.2.0\",\"@octokit/request-error\":\"^1.0.2\",\"atob-lite\":\"^2.0.0\",\"before-after-hook\":\"^2.0.0\",\"btoa-lite\":\"^1.0.0\",\"deprecation\":\"^2.0.0\",\"lodash.get\":\"^4.4.2\",\"lodash.set\":\"^4.3.2\",\"lodash.uniq\":\"^4.5.0\",\"octokit-pagination-methods\":\"^1.1.0\",\"once\":\"^1.4.0\",\"universal-user-agent\":\"^4.0.0\"},\"description\":\"GitHub REST API client for Node.js\",\"devDependencies\":{\"@gimenete/type-writer\":\"^0.1.3\",\"@octokit/auth\":\"^1.1.1\",\"@octokit/fixtures-server\":\"^5.0.6\",\"@octokit/graphql\":\"^4.2.0\",\"@types/node\":\"^13.1.0\",\"bundlesize\":\"^0.18.0\",\"chai\":\"^4.1.2\",\"compression-webpack-plugin\":\"^3.1.0\",\"cypress\":\"^4.0.0\",\"glob\":\"^7.1.2\",\"http-proxy-agent\":\"^4.0.0\",\"lodash.camelcase\":\"^4.3.0\",\"lodash.merge\":\"^4.6.1\",\"lodash.upperfirst\":\"^4.3.1\",\"lolex\":\"^6.0.0\",\"mkdirp\":\"^1.0.0\",\"mocha\":\"^7.0.1\",\"mustache\":\"^4.0.0\",\"nock\":\"^11.3.3\",\"npm-run-all\":\"^4.1.2\",\"nyc\":\"^15.0.0\",\"prettier\":\"^1.14.2\",\"proxy\":\"^1.0.0\",\"semantic-release\":\"^17.0.0\",\"sinon\":\"^8.0.0\",\"sinon-chai\":\"^3.0.0\",\"sort-keys\":\"^4.0.0\",\"string-to-arraybuffer\":\"^1.0.0\",\"string-to-jsdoc-comment\":\"^1.0.0\",\"typescript\":\"^3.3.1\",\"webpack\":\"^4.0.0\",\"webpack-bundle-analyzer\":\"^3.0.0\",\"webpack-cli\":\"^3.0.0\"},\"files\":[\"index.js\",\"index.d.ts\",\"lib\",\"plugins\"],\"homepage\":\"https://github.com/octokit/rest.js#readme\",\"keywords\":[\"octokit\",\"github\",\"rest\",\"api-client\"],\"license\":\"MIT\",\"name\":\"@octokit/rest\",\"nyc\":{\"ignore\":[\"test\"]},\"publishConfig\":{\"access\":\"public\"},\"release\":{\"publish\":[\"@semantic-release/npm\",{\"path\":\"@semantic-release/github\",\"assets\":[\"dist/*\",\"!dist/*.map.gz\"]}]},\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/octokit/rest.js.git\"},\"scripts\":{\"build\":\"npm-run-all build:*\",\"build:browser\":\"npm-run-all build:browser:*\",\"build:browser:development\":\"webpack --mode development --entry . --output-library=Octokit --output=./dist/octokit-rest.js --profile --json > dist/bundle-stats.json\",\"build:browser:production\":\"webpack --mode production --entry . --plugin=compression-webpack-plugin --output-library=Octokit --output-path=./dist --output-filename=octokit-rest.min.js --devtool source-map\",\"build:ts\":\"npm run -s update-endpoints:typescript\",\"coverage\":\"nyc report --reporter=html && open coverage/index.html\",\"generate-bundle-report\":\"webpack-bundle-analyzer dist/bundle-stats.json --mode=static --no-open --report dist/bundle-report.html\",\"lint\":\"prettier --check '{lib,plugins,scripts,test}/**/*.{js,json,ts}' 'docs/*.{js,json}' 'docs/src/**/*' index.js README.md package.json\",\"lint:fix\":\"prettier --write '{lib,plugins,scripts,test}/**/*.{js,json,ts}' 'docs/*.{js,json}' 'docs/src/**/*' index.js README.md package.json\",\"postvalidate:ts\":\"tsc --noEmit --target es6 test/typescript-validate.ts\",\"prebuild:browser\":\"mkdirp dist/\",\"pretest\":\"npm run -s lint\",\"prevalidate:ts\":\"npm run -s build:ts\",\"start-fixtures-server\":\"octokit-fixtures-server\",\"test\":\"nyc mocha test/mocha-node-setup.js \\\"test/*/**/*-test.js\\\"\",\"test:browser\":\"cypress run --browser chrome\",\"update-endpoints\":\"npm-run-all update-endpoints:*\",\"update-endpoints:fetch-json\":\"node scripts/update-endpoints/fetch-json\",\"update-endpoints:typescript\":\"node scripts/update-endpoints/typescript\",\"validate:ts\":\"tsc --target es6 --noImplicitAny index.d.ts\"},\"types\":\"index.d.ts\",\"version\":\"16.43.2\"}");
1010

1111
/***/ }),
1212

@@ -30249,6 +30249,11 @@ const context = {
3024930249
GITHUB_REPOSITORY: getVar({
3025030250
key: 'GITHUB_REPOSITORY',
3025130251
required: true
30252+
}),
30253+
SKIP_PR: getVar({
30254+
key: 'SKIP_PR',
30255+
type: 'boolean',
30256+
default: false
3025230257
})
3025330258
}
3025430259

@@ -30677,7 +30682,8 @@ const {
3067730682
DRY_RUN,
3067830683
TMP_DIR,
3067930684
SKIP_CLEANUP,
30680-
OVERWRITE_EXISTING_PR
30685+
OVERWRITE_EXISTING_PR,
30686+
SKIP_PR
3068130687
} = __nccwpck_require__(4570)
3068230688

3068330689
const run = async () => {
@@ -30699,13 +30705,17 @@ const run = async () => {
3069930705
await git.clone()
3070030706
await git.setIdentity(client)
3070130707
await git.getBaseBranch()
30702-
await git.createPrBranch()
3070330708

30704-
// Check for existing PR and add warning message that the PR maybe about to change
30705-
const existingPr = OVERWRITE_EXISTING_PR ? await git.findExistingPr() : undefined
30706-
if (existingPr && DRY_RUN === false) {
30707-
core.info(`Found existing PR ${ existingPr.number }`)
30708-
await git.setPrWarning()
30709+
let existingPr
30710+
if (SKIP_PR === false) {
30711+
await git.createPrBranch()
30712+
30713+
// Check for existing PR and add warning message that the PR maybe about to change
30714+
existingPr = OVERWRITE_EXISTING_PR ? await git.findExistingPr() : undefined
30715+
if (existingPr && DRY_RUN === false) {
30716+
core.info(`Found existing PR ${ existingPr.number }`)
30717+
await git.setPrWarning()
30718+
}
3070930719
}
3071030720

3071130721
core.info(`Locally syncing file(s) between source and target repository`)
@@ -30731,7 +30741,7 @@ const run = async () => {
3073130741

3073230742
await git.add(file.dest)
3073330743

30734-
// Commit each file seperately, if option is set to false, commit all files at once later
30744+
// Commit each file separately, if option is set to false, commit all files at once later
3073530745
if (COMMIT_EACH_FILE === true) {
3073630746
const hasChanges = await git.hasChanges()
3073730747

@@ -30784,7 +30794,7 @@ const run = async () => {
3078430794
return
3078530795
}
3078630796

30787-
// If there are still local changes left (i.e. not committed each file seperately), commit them before pushing
30797+
// If there are still local changes left (i.e. not committed each file separately), commit them before pushing
3078830798
if (hasChanges === true) {
3078930799
core.debug(`Creating commit for remaining files`)
3079030800

@@ -30797,41 +30807,43 @@ const run = async () => {
3079730807
core.info(`Pushing changes to target repository`)
3079830808
await git.push()
3079930809

30800-
// If each file was committed seperately, list them in the PR description
30801-
const changedFiles = dedent(`
30802-
<details>
30803-
<summary>Changed files</summary>
30804-
<ul>
30805-
${ modified.map((file) => `<li>${ file.message }</li>`).join('') }
30806-
</ul>
30807-
</details>
30808-
`)
30809-
30810-
const pullRequest = await git.createOrUpdatePr(COMMIT_EACH_FILE ? changedFiles : '')
30811-
30812-
core.info(`Pull Request #${ pullRequest.number } created/updated: ${ pullRequest.html_url }`)
30813-
30814-
core.setOutput('pull_request_number', pullRequest.number)
30815-
core.setOutput('pull_request_url', pullRequest.html_url)
30816-
30817-
if (PR_LABELS !== undefined && PR_LABELS.length > 0) {
30818-
core.info(`Adding label(s) "${ PR_LABELS.join(', ') }" to PR`)
30819-
await client.issues.addLabels({
30820-
owner: item.repo.user,
30821-
repo: item.repo.name,
30822-
issue_number: pullRequest.number,
30823-
labels: PR_LABELS
30824-
})
30825-
}
30810+
if (SKIP_PR === false) {
30811+
// If each file was committed separately, list them in the PR description
30812+
const changedFiles = dedent(`
30813+
<details>
30814+
<summary>Changed files</summary>
30815+
<ul>
30816+
${ modified.map((file) => `<li>${ file.message }</li>`).join('') }
30817+
</ul>
30818+
</details>
30819+
`)
30820+
30821+
const pullRequest = await git.createOrUpdatePr(COMMIT_EACH_FILE ? changedFiles : '')
30822+
30823+
core.info(`Pull Request #${ pullRequest.number } created/updated: ${ pullRequest.html_url }`)
30824+
30825+
core.setOutput('pull_request_number', pullRequest.number)
30826+
core.setOutput('pull_request_url', pullRequest.html_url)
30827+
30828+
if (PR_LABELS !== undefined && PR_LABELS.length > 0) {
30829+
core.info(`Adding label(s) "${ PR_LABELS.join(', ') }" to PR`)
30830+
await client.issues.addLabels({
30831+
owner: item.repo.user,
30832+
repo: item.repo.name,
30833+
issue_number: pullRequest.number,
30834+
labels: PR_LABELS
30835+
})
30836+
}
3082630837

30827-
if (ASSIGNEES !== undefined && ASSIGNEES.length > 0) {
30828-
core.info(`Adding assignee(s) "${ ASSIGNEES.join(', ') }" to PR`)
30829-
await client.issues.addAssignees({
30830-
owner: item.repo.user,
30831-
repo: item.repo.name,
30832-
issue_number: pullRequest.number,
30833-
assignees: ASSIGNEES
30834-
})
30838+
if (ASSIGNEES !== undefined && ASSIGNEES.length > 0) {
30839+
core.info(`Adding assignee(s) "${ ASSIGNEES.join(', ') }" to PR`)
30840+
await client.issues.addAssignees({
30841+
owner: item.repo.user,
30842+
repo: item.repo.name,
30843+
issue_number: pullRequest.number,
30844+
assignees: ASSIGNEES
30845+
})
30846+
}
3083530847
}
3083630848

3083730849
core.info(' ')

0 commit comments

Comments
 (0)