Compare commits

..

18 Commits

Author SHA1 Message Date
Federico Grandi
ba88a0e80a feat: add worktree input 2022-09-02 16:08:26 +00:00
Federico Grandi
e5287e06b1 ci: update stale workflow 2022-08-31 11:57:18 +02:00
Federico Grandi
7f650514d7 ci: fix workflow path 2022-08-29 22:59:48 +00:00
Federico Grandi
cba6741f01 ci: use reusable workflow 2022-08-29 22:58:04 +00:00
Federico Grandi
30237071ab ci: add close issue reason to stale workflow 2022-08-29 19:32:19 +00:00
Federico Grandi
ff395b9380 ci: replace probot with actions workflow
Probot is basically discontinued, even though it's not 100% clear...
2022-08-29 19:24:29 +00:00
dependabot[bot]
29f94b7cce chore(deps-dev): bump typescript from 4.7.4 to 4.8.2 (#427)
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.7.4 to 4.8.2.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.7.4...v4.8.2)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-29 17:27:24 +02:00
Federico Grandi
d4d066316a 9.1.0 2022-08-22 17:37:29 +00:00
allcontributors[bot]
780b0df14e docs: add kachkaev as a contributor for bug (#425)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2022-08-22 19:33:35 +02:00
allcontributors[bot]
91b0f62409 docs: add melink14 as a contributor for bug (#424)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2022-08-22 19:32:45 +02:00
Federico Grandi
f7edecabb7 feat: add fetch input (#423)
* chore: add additional log notes

* feat: add `fetch` input

Ref #386

* fix: add warnings about not fetching

* docs: `fetch` input & large repos FAQ

* chore: fix typo
2022-08-22 19:26:22 +02:00
dependabot[bot]
68e252f6d5 chore(deps): bump @actions/core from 1.9.0 to 1.9.1 (#421)
Bumps [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) from 1.9.0 to 1.9.1.
- [Release notes](https://github.com/actions/toolkit/releases)
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/core)

---
updated-dependencies:
- dependency-name: "@actions/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-16 11:52:38 +02:00
dependabot[bot]
22a5148239 chore(deps-dev): bump ts-node from 10.8.2 to 10.9.1 (#418)
Bumps [ts-node](https://github.com/TypeStrong/ts-node) from 10.8.2 to 10.9.1.
- [Release notes](https://github.com/TypeStrong/ts-node/releases)
- [Commits](https://github.com/TypeStrong/ts-node/compare/v10.8.2...v10.9.1)

---
updated-dependencies:
- dependency-name: ts-node
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-19 12:19:32 +02:00
dependabot[bot]
f1e4faf559 chore(deps-dev): bump ts-node from 10.8.1 to 10.8.2 (#417)
Bumps [ts-node](https://github.com/TypeStrong/ts-node) from 10.8.1 to 10.8.2.
- [Release notes](https://github.com/TypeStrong/ts-node/releases)
- [Commits](https://github.com/TypeStrong/ts-node/compare/v10.8.1...v10.8.2)

---
updated-dependencies:
- dependency-name: ts-node
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-04 15:21:02 +02:00
dependabot[bot]
a54a7342a8 chore(deps-dev): bump eslint-plugin-prettier from 4.0.0 to 4.2.1 (#416)
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 4.0.0 to 4.2.1.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v4.0.0...v4.2.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-prettier
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-04 15:20:39 +02:00
dependabot[bot]
6d81b3b072 ci(deps): bump github/codeql-action from 1 to 2 (#414)
* ci(deps): bump github/codeql-action from 1 to 2

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 1 to 2.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* ci: update codeql workflow

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Federico Grandi <fgrandi30@gmail.com>
2022-06-26 22:02:33 +02:00
Federico Grandi
5bf17ab674 chore: use dependabot on GitHub actions too 2022-06-26 19:28:22 +00:00
Federico Grandi
1308272399 ci: update workflows 2022-06-26 19:24:39 +00:00
17 changed files with 260 additions and 141 deletions

View File

@@ -405,6 +405,24 @@
"contributions": [ "contributions": [
"bug" "bug"
] ]
},
{
"login": "melink14",
"name": "Erek Speed",
"avatar_url": "https://avatars.githubusercontent.com/u/1176550?v=4",
"profile": "https://erekspeed.com",
"contributions": [
"bug"
]
},
{
"login": "kachkaev",
"name": "Alexander Kachkaev",
"avatar_url": "https://avatars.githubusercontent.com/u/608862?v=4",
"profile": "https://kachkaev.uk",
"contributions": [
"bug"
]
} }
], ],
"contributorsPerLine": 7, "contributorsPerLine": 7,

View File

@@ -14,3 +14,13 @@ updates:
include: 'scope' include: 'scope'
labels: labels:
- 'type: chore' - 'type: chore'
- package-ecosystem: github-actions
directory: /
schedule:
interval: weekly
open-pull-requests-limit: 10
commit-message:
include: scope
prefix: ci
labels:
- 'type: chore'

19
.github/stale.yml vendored
View File

@@ -1,19 +0,0 @@
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 20
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 5
# Issues with these labels will never be considered stale
exemptLabels:
- pinned
- security
- 'status: pinned'
- 'type: security'
# Label to use when marking an issue as stale
staleLabel: 'status: stale'
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false

View File

@@ -1,31 +0,0 @@
name: Build
on:
push:
branches:
- master
paths:
- src/**
- .github/workflows/build.yml
workflow_dispatch:
jobs:
build:
name: Build compiled JS version
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: 12.x
- run: npm install
- run: npm run build
- uses: EndBug/add-and-commit@v4
with:
message: '[auto] build: update compiled version'
add: lib
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -29,42 +29,32 @@ jobs:
contents: read contents: read
security-events: write security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'javascript' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Learn more about CodeQL language support at https://git.io/codeql-language-support
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v2 uses: actions/checkout@v3
# Initializes the CodeQL tools for scanning. # Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL - name: Initialize CodeQL
uses: github/codeql-action/init@v1 uses: github/codeql-action/init@v2
with: # Override language selection by uncommenting this and choosing your languages
languages: ${{ matrix.language }} # with:
# If you wish to specify custom queries, you can do so here or in a config file. # languages: go, javascript, csharp, python, cpp, java
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below) # If this step fails, then you should remove it and run the build manually (see below).
- name: Autobuild - name: Autobuild
uses: github/codeql-action/autobuild@v1 uses: github/codeql-action/autobuild@v2
# Command-line programs to run using the OS shell. # Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines # ✏️ If the Autobuild fails above, remove it and uncomment the following
# and modify them (or add more) to build your code if your project # three lines and modify them (or add more) to build your code if your
# uses a compiled language # project uses a compiled language
#- run: | #- run: |
# make bootstrap # make bootstrap
# make release # make release
- name: Perform CodeQL Analysis - name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1 uses: github/codeql-action/analyze@v2

View File

@@ -2,7 +2,7 @@ name: Sync labels
on: on:
push: push:
branches: branches:
- master - main
paths: paths:
- '.github/labels.yml' - '.github/labels.yml'
workflow_dispatch: workflow_dispatch:
@@ -12,8 +12,7 @@ jobs:
name: Run EndBug/label-sync name: Run EndBug/label-sync
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v3
- uses: EndBug/label-sync@v1 - uses: EndBug/label-sync@v2
with: with:
token: ${{ secrets.GITHUB_TOKEN }}
config-file: '.github/labels.yml' config-file: '.github/labels.yml'

9
.github/workflows/stale.yml vendored Normal file
View File

@@ -0,0 +1,9 @@
name: 'Handle stale issues and PR'
on:
schedule:
- cron: '00 5,17 * * *'
workflow_dispatch:
jobs:
stale:
uses: EndBug/workflows/.github/workflows/stale.yml@main

View File

@@ -6,17 +6,23 @@ on:
jobs: jobs:
build: build:
name: Test build name: Build
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v3
- run: npm i - uses: actions/setup-node@v3
with:
cache: npm
- run: npm ci
- run: npm run build - run: npm run build
lint: lint:
name: Check linting name: Lint
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v3
- run: npm i - uses: actions/setup-node@v3
with:
cache: npm
- run: npm ci
- run: npm run lint - run: npm run lint

View File

@@ -1,4 +1,4 @@
name: Keep the versions up-to-date name: Update tags
on: on:
release: release:
@@ -6,10 +6,8 @@ on:
jobs: jobs:
actions-tagger: actions-tagger:
runs-on: windows-latest runs-on: windows-2022
steps: steps:
- uses: Actions-R-Us/actions-tagger@v1 - uses: Actions-R-Us/actions-tagger@v2
with: with:
publish_latest: true publish_latest_tag: true
env:
GITHUB_TOKEN: "${{secrets.GITHUB_TOKEN}}"

View File

@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## [9.1.0] - 2022-08-22
### Added:
- The `fetch` input allows you to customize the `git fetch` command, or to prevent the action from fetching at all.
## [9.0.1] - 2022-06-26 ## [9.0.1] - 2022-06-26
### Fixed: ### Fixed:
- Now files are re-staged after pulling, so that the action works as intended when using options such as `pull: --rebase --autostash` - Now files are re-staged after pulling, so that the action works as intended when using options such as `pull: --rebase --autostash`
@@ -321,7 +325,7 @@ First release
# #
[unreleased]: https://github.com/EndBug/add-and-commit/compare/v9.0.1...HEAD [unreleased]: https://github.com/EndBug/add-and-commit/compare/v9.1.0...HEAD
[1.0.0]: https://github.com/EndBug/add-and-commit/tree/v1.0.0 [1.0.0]: https://github.com/EndBug/add-and-commit/tree/v1.0.0
[2.0.0]: https://github.com/EndBug/add-and-commit/compare/v1.0.0...v2.0.0 [2.0.0]: https://github.com/EndBug/add-and-commit/compare/v1.0.0...v2.0.0
[2.1.0]: https://github.com/EndBug/add-and-commit/compare/v2.0.0...v2.1.0 [2.1.0]: https://github.com/EndBug/add-and-commit/compare/v2.0.0...v2.1.0
@@ -364,3 +368,4 @@ First release
[8.0.2]: https://github.com/EndBug/add-and-commit/compare/v8.0.1...v8.0.2 [8.0.2]: https://github.com/EndBug/add-and-commit/compare/v8.0.1...v8.0.2
[9.0.0]: https://github.com/EndBug/add-and-commit/compare/v8.0.2...v9.0.0 [9.0.0]: https://github.com/EndBug/add-and-commit/compare/v8.0.2...v9.0.0
[9.0.1]: https://github.com/EndBug/add-and-commit/compare/v9.0.0...v9.0.1 [9.0.1]: https://github.com/EndBug/add-and-commit/compare/v9.0.0...v9.0.1
[9.1.0]: https://github.com/EndBug/add-and-commit/compare/v9.0.1...v9.1.0

View File

@@ -54,6 +54,11 @@ Add a step like this to your workflow:
# Default: github_actor # Default: github_actor
default_author: github_actor default_author: github_actor
# Arguments for the git fetch command. If set to false, the action won't fetch the repo.
# For more info as to why fetching is usually recommended, please see the "Performance on large repos" FAQ.
# Default: --tags --force
fetch: false
# The message for the commit. # The message for the commit.
# Default: 'Commit from GitHub Actions (name of the workflow)' # Default: 'Commit from GitHub Actions (name of the workflow)'
message: 'Your commit message' message: 'Your commit message'
@@ -200,6 +205,14 @@ Some users reported that they were getting an error:
If you're getting this error and you're using `actions/checkout@v1`, try upgrading to `actions/checkout@v2`. If you're still having problems after upgrading, feel free to open an issue. Issue ref: [#146](https://github.com/EndBug/add-and-commit/issues/146) If you're getting this error and you're using `actions/checkout@v1`, try upgrading to `actions/checkout@v2`. If you're still having problems after upgrading, feel free to open an issue. Issue ref: [#146](https://github.com/EndBug/add-and-commit/issues/146)
### Performance on large repos
By default, the action will fetch the repository before starting to work on it: this ensures that it can see the already existing refs.
When working with a repository that has a lot of branches and tags, fetching it can take a long time. If the fetch step is taking too much time, you can decide to skip it by setting the `fetch` input to `false`: this will prevent the action from running `git fetch` altogether.
Please note that you have to set up your workflow accordingly: not fetching the repo can impact branch and tag creation within the action, and for this reason it's recommended to disable it only if necessary. Issue ref: [#386](https://github.com/EndBug/add-and-commit/issues/386)
## Examples ## Examples
### Different author/committer configurations ### Different author/committer configurations
@@ -371,6 +384,8 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
</tr> </tr>
<tr> <tr>
<td align="center"><a href="https://github.com/onedr0p"><img src="https://avatars.githubusercontent.com/u/213795?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Devin Buhl</b></sub></a><br /><a href="https://github.com/EndBug/add-and-commit/issues?q=author%3Aonedr0p" title="Bug reports">🐛</a></td> <td align="center"><a href="https://github.com/onedr0p"><img src="https://avatars.githubusercontent.com/u/213795?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Devin Buhl</b></sub></a><br /><a href="https://github.com/EndBug/add-and-commit/issues?q=author%3Aonedr0p" title="Bug reports">🐛</a></td>
<td align="center"><a href="https://erekspeed.com"><img src="https://avatars.githubusercontent.com/u/1176550?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Erek Speed</b></sub></a><br /><a href="https://github.com/EndBug/add-and-commit/issues?q=author%3Amelink14" title="Bug reports">🐛</a></td>
<td align="center"><a href="https://kachkaev.uk"><img src="https://avatars.githubusercontent.com/u/608862?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Alexander Kachkaev</b></sub></a><br /><a href="https://github.com/EndBug/add-and-commit/issues?q=author%3Akachkaev" title="Bug reports">🐛</a></td>
</tr> </tr>
</table> </table>

View File

@@ -29,6 +29,10 @@ inputs:
description: How the action should fill missing author name or email. description: How the action should fill missing author name or email.
required: false required: false
default: 'github_actor' default: 'github_actor'
fetch:
description: Arguments for the git fetch command (if 'false', the action won't fetch the repo)
required: false
default: --tags --force
message: message:
description: The message for the commit description: The message for the commit
required: false required: false
@@ -55,6 +59,9 @@ inputs:
tag_push: tag_push:
description: Arguments for the git push --tags command (any additional argument will be added after --tags) description: Arguments for the git push --tags command (any additional argument will be added after --tags)
required: false required: false
worktree:
description: Arguments for the git worktree commands, see the README for usage
required: false
# Input not required from the user # Input not required from the user
github_token: github_token:

4
lib/index.js generated

File diff suppressed because one or more lines are too long

81
package-lock.json generated
View File

@@ -1,15 +1,15 @@
{ {
"name": "add-and-commit", "name": "add-and-commit",
"version": "9.0.1", "version": "9.1.0",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "add-and-commit", "name": "add-and-commit",
"version": "9.0.1", "version": "9.1.0",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@actions/core": "^1.9.0", "@actions/core": "^1.9.1",
"actions-toolkit": "github:EndBug/actions-toolkit#core-actions", "actions-toolkit": "github:EndBug/actions-toolkit#core-actions",
"js-yaml": "^4.1.0", "js-yaml": "^4.1.0",
"simple-git": "^3.7.1", "simple-git": "^3.7.1",
@@ -24,20 +24,21 @@
"all-contributors-cli": "^6.20.0", "all-contributors-cli": "^6.20.0",
"eslint": "^7.32.0", "eslint": "^7.32.0",
"eslint-config-prettier": "^8.5.0", "eslint-config-prettier": "^8.5.0",
"eslint-plugin-prettier": "^4.0.0", "eslint-plugin-prettier": "^4.2.1",
"husky": "^8.0.1", "husky": "^8.0.1",
"prettier": "^2.7.1", "prettier": "^2.7.1",
"ts-node": "^10.8.1", "ts-node": "^10.9.1",
"typescript": "^4.7.4", "typescript": "^4.8.2",
"yamljs": "^0.3.0" "yamljs": "^0.3.0"
} }
}, },
"node_modules/@actions/core": { "node_modules/@actions/core": {
"version": "1.9.0", "version": "1.9.1",
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.9.0.tgz", "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.9.1.tgz",
"integrity": "sha512-5pbM693Ih59ZdUhgk+fts+bUWTnIdHV3kwOSr+QIoFHMLg7Gzhwm0cifDY/AG68ekEJAkHnQVpcy4f6GjmzBCA==", "integrity": "sha512-5ad+U2YGrmmiw6du20AQW5XuWo7UKN2052FjSV7MX+Wfjf8sCqcsZe62NfgHys4QI4/Y+vQvLKYL8jWtA1ZBTA==",
"dependencies": { "dependencies": {
"@actions/http-client": "^2.0.1" "@actions/http-client": "^2.0.1",
"uuid": "^8.3.2"
} }
}, },
"node_modules/@actions/exec": { "node_modules/@actions/exec": {
@@ -1247,15 +1248,15 @@
} }
}, },
"node_modules/eslint-plugin-prettier": { "node_modules/eslint-plugin-prettier": {
"version": "4.0.0", "version": "4.2.1",
"resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz", "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz",
"integrity": "sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==", "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"prettier-linter-helpers": "^1.0.0" "prettier-linter-helpers": "^1.0.0"
}, },
"engines": { "engines": {
"node": ">=6.0.0" "node": ">=12.0.0"
}, },
"peerDependencies": { "peerDependencies": {
"eslint": ">=7.28.0", "eslint": ">=7.28.0",
@@ -3107,9 +3108,9 @@
"integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
}, },
"node_modules/ts-node": { "node_modules/ts-node": {
"version": "10.8.1", "version": "10.9.1",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.1.tgz", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz",
"integrity": "sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g==", "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@cspotcode/source-map-support": "^0.8.0", "@cspotcode/source-map-support": "^0.8.0",
@@ -3215,9 +3216,9 @@
} }
}, },
"node_modules/typescript": { "node_modules/typescript": {
"version": "4.7.4", "version": "4.8.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz",
"integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", "integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==",
"dev": true, "dev": true,
"bin": { "bin": {
"tsc": "bin/tsc", "tsc": "bin/tsc",
@@ -3241,6 +3242,14 @@
"punycode": "^2.1.0" "punycode": "^2.1.0"
} }
}, },
"node_modules/uuid": {
"version": "8.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
"bin": {
"uuid": "dist/bin/uuid"
}
},
"node_modules/v8-compile-cache": { "node_modules/v8-compile-cache": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz",
@@ -3403,11 +3412,12 @@
}, },
"dependencies": { "dependencies": {
"@actions/core": { "@actions/core": {
"version": "1.9.0", "version": "1.9.1",
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.9.0.tgz", "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.9.1.tgz",
"integrity": "sha512-5pbM693Ih59ZdUhgk+fts+bUWTnIdHV3kwOSr+QIoFHMLg7Gzhwm0cifDY/AG68ekEJAkHnQVpcy4f6GjmzBCA==", "integrity": "sha512-5ad+U2YGrmmiw6du20AQW5XuWo7UKN2052FjSV7MX+Wfjf8sCqcsZe62NfgHys4QI4/Y+vQvLKYL8jWtA1ZBTA==",
"requires": { "requires": {
"@actions/http-client": "^2.0.1" "@actions/http-client": "^2.0.1",
"uuid": "^8.3.2"
} }
}, },
"@actions/exec": { "@actions/exec": {
@@ -4405,9 +4415,9 @@
"requires": {} "requires": {}
}, },
"eslint-plugin-prettier": { "eslint-plugin-prettier": {
"version": "4.0.0", "version": "4.2.1",
"resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz", "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz",
"integrity": "sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==", "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"prettier-linter-helpers": "^1.0.0" "prettier-linter-helpers": "^1.0.0"
@@ -5757,9 +5767,9 @@
"integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
}, },
"ts-node": { "ts-node": {
"version": "10.8.1", "version": "10.9.1",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.1.tgz", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz",
"integrity": "sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g==", "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
"dev": true, "dev": true,
"requires": { "requires": {
"@cspotcode/source-map-support": "^0.8.0", "@cspotcode/source-map-support": "^0.8.0",
@@ -5821,9 +5831,9 @@
"dev": true "dev": true
}, },
"typescript": { "typescript": {
"version": "4.7.4", "version": "4.8.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz",
"integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", "integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==",
"dev": true "dev": true
}, },
"universal-user-agent": { "universal-user-agent": {
@@ -5840,6 +5850,11 @@
"punycode": "^2.1.0" "punycode": "^2.1.0"
} }
}, },
"uuid": {
"version": "8.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
},
"v8-compile-cache": { "v8-compile-cache": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz",

View File

@@ -1,6 +1,6 @@
{ {
"name": "add-and-commit", "name": "add-and-commit",
"version": "9.0.1", "version": "9.1.0",
"private": true, "private": true,
"description": "Add & commit files from a path directly from GitHub Actions", "description": "Add & commit files from a path directly from GitHub Actions",
"main": "lib/index.js", "main": "lib/index.js",
@@ -31,7 +31,7 @@
}, },
"homepage": "https://github.com/EndBug/add-and-commit#readme", "homepage": "https://github.com/EndBug/add-and-commit#readme",
"dependencies": { "dependencies": {
"@actions/core": "^1.9.0", "@actions/core": "^1.9.1",
"actions-toolkit": "github:EndBug/actions-toolkit#core-actions", "actions-toolkit": "github:EndBug/actions-toolkit#core-actions",
"js-yaml": "^4.1.0", "js-yaml": "^4.1.0",
"simple-git": "^3.7.1", "simple-git": "^3.7.1",
@@ -46,11 +46,11 @@
"all-contributors-cli": "^6.20.0", "all-contributors-cli": "^6.20.0",
"eslint": "^7.32.0", "eslint": "^7.32.0",
"eslint-config-prettier": "^8.5.0", "eslint-config-prettier": "^8.5.0",
"eslint-plugin-prettier": "^4.0.0", "eslint-plugin-prettier": "^4.2.1",
"husky": "^8.0.1", "husky": "^8.0.1",
"prettier": "^2.7.1", "prettier": "^2.7.1",
"ts-node": "^10.8.1", "ts-node": "^10.9.1",
"typescript": "^4.7.4", "typescript": "^4.8.2",
"yamljs": "^0.3.0" "yamljs": "^0.3.0"
} }
} }

View File

@@ -10,6 +10,7 @@ interface InputTypes {
committer_email: string committer_email: string
cwd: string cwd: string
default_author: 'github_actor' | 'user_info' | 'github_actions' default_author: 'github_actor' | 'user_info' | 'github_actions'
fetch: string
message: string message: string
new_branch: string | undefined new_branch: string | undefined
pathspec_error_handling: 'ignore' | 'exitImmediately' | 'exitAtEnd' pathspec_error_handling: 'ignore' | 'exitImmediately' | 'exitAtEnd'
@@ -18,6 +19,7 @@ interface InputTypes {
remove: string | undefined remove: string | undefined
tag: string | undefined tag: string | undefined
tag_push: string | undefined tag_push: string | undefined
worktree: string | undefined
github_token: string | undefined github_token: string | undefined
} }
@@ -124,6 +126,20 @@ export async function checkInputs() {
) )
// #endregion // #endregion
// #region fetch
if (getInput('fetch')) {
let value: string | boolean
try {
value = getInput('fetch', true)
} catch {
value = getInput('fetch')
}
core.debug(`Currrent fetch option: '${value}' (parsed as ${typeof value})`)
}
// #endregion
// #region author_name, author_email // #region author_name, author_email
let name, email let name, email
switch (getInput('default_author')) { switch (getInput('default_author')) {
@@ -228,6 +244,29 @@ export async function checkInputs() {
} }
// #endregion // #endregion
// #region worktree
if (getInput('worktree')) {
const parsed = parseInputArray(getInput('worktree') || '')
if (parsed.length == 1)
core.info(
"Worktree input parsed as single string, it will be used as if it's the path to the worktree."
)
else if (parsed.length == 2 || parsed.length == 3)
core.info(
'Worktree input parsed as [string, string, string], it will be used as follows:\n' +
'0: path to the worktree directory\n' +
'1: arguments for the git worktree add command (including the directory), defaults to the directory\n' +
'2: arguments for the git worktree remove command (including the directory), defaults to the directory'
)
else
core.setFailed(
`Worktree input parsed as an array of length ${parsed.length}, correct lenghts are 1, 2, and 3.`
)
}
// #endregion
// #region github_token // #region github_token
if (!getInput('github_token')) if (!getInput('github_token'))
core.warning( core.warning(

View File

@@ -14,6 +14,27 @@ core.info(`Running in ${baseDir}`)
await checkInputs() await checkInputs()
core.startGroup('Internal logs') core.startGroup('Internal logs')
let worktreeDir: string,
worktreeAdd: string,
worktreeRemove: string | undefined
if (getInput('worktree')) {
core.info('> Creating worktree...')
;[worktreeDir, worktreeAdd, worktreeRemove] = parseInputArray(
getInput('worktree') || ''
)
worktreeAdd = worktreeAdd || worktreeDir
worktreeRemove = worktreeRemove || worktreeDir
core.debug(`Running: git worktree add ${worktreeAdd}`)
await git
.raw('worktree', 'add', ...worktreeAdd.split(' '))
.then((data) => log(undefined, data))
core.info('> Changing working directory...')
await git.cwd(worktreeDir)
} else core.info('> Not creating a worktree.')
core.info('> Staging files...') core.info('> Staging files...')
const ignoreErrors = const ignoreErrors =
@@ -55,10 +76,29 @@ core.info(`Running in ${baseDir}`)
JSON.stringify((await git.listConfig()).all, null, 2) JSON.stringify((await git.listConfig()).all, null, 2)
) )
await git.fetch(['--tags', '--force'], log) let fetchOption: string | boolean
try {
fetchOption = getInput('fetch', true)
} catch {
fetchOption = getInput('fetch')
}
if (fetchOption) {
core.info('> Fetching repo...')
await git.fetch(
matchGitArgs(fetchOption === true ? '' : fetchOption),
log
)
} else core.info('> Not fetching repo.')
const targetBranch = getInput('new_branch') const targetBranch = getInput('new_branch')
if (targetBranch) { if (targetBranch) {
core.info('> Checking-out branch...')
if (!fetchOption)
core.warning(
'Creating a new branch without fetching the repo first could result in an error when pushing to GitHub. Refer to the action README for more info about this topic.'
)
await git await git
.checkout(targetBranch) .checkout(targetBranch)
.then(() => { .then(() => {
@@ -110,6 +150,12 @@ core.info(`Running in ${baseDir}`)
if (getInput('tag')) { if (getInput('tag')) {
core.info('> Tagging commit...') core.info('> Tagging commit...')
if (!fetchOption)
core.warning(
'Creating a tag without fetching the repo first could result in an error when pushing to GitHub. Refer to the action README for more info about this topic.'
)
await git await git
.tag(matchGitArgs(getInput('tag') || ''), (err, data?) => { .tag(matchGitArgs(getInput('tag') || ''), (err, data?) => {
if (data) setOutput('tagged', 'true') if (data) setOutput('tagged', 'true')
@@ -162,6 +208,7 @@ core.info(`Running in ${baseDir}`)
if (getInput('tag')) { if (getInput('tag')) {
core.info('> Pushing tags to repo...') core.info('> Pushing tags to repo...')
await git await git
.pushTags('origin', matchGitArgs(getInput('tag_push') || '')) .pushTags('origin', matchGitArgs(getInput('tag_push') || ''))
.then((data) => { .then((data) => {
@@ -172,6 +219,17 @@ core.info(`Running in ${baseDir}`)
} else core.info('> No tags to push.') } else core.info('> No tags to push.')
} else core.info('> Not pushing anything.') } else core.info('> Not pushing anything.')
if (worktreeRemove) {
core.info('> Switching back to previous working directory...')
await git.cwd(baseDir)
core.info('> Removing worktree...')
core.debug(`Running: git worktree remove ${worktreeRemove}`)
await git
.raw('worktree', 'remove', worktreeRemove.split(' '))
.then((data) => log(undefined, data))
} else core.info('> No worktree to remove.')
core.endGroup() core.endGroup()
core.info('> Task completed.') core.info('> Task completed.')
} else { } else {