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": [
"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,

View File

@@ -14,3 +14,13 @@ updates:
include: 'scope'
labels:
- '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
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:
- name: Checkout repository
uses: actions/checkout@v2
- name: Checkout repository
uses: actions/checkout@v3
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# 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
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
# Override language selection by uncommenting this and choosing your languages
# with:
# languages: go, javascript, csharp, python, cpp, 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)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
# 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).
- name: Autobuild
uses: github/codeql-action/autobuild@v2
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# Command-line programs to run using the OS shell.
# 📚 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
# and modify them (or add more) to build your code if your project
# uses a compiled language
# ✏️ If the Autobuild fails above, remove it and uncomment the following
# three lines and modify them (or add more) to build your code if your
# project uses a compiled language
#- run: |
# make bootstrap
# make release
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2

View File

@@ -2,7 +2,7 @@ name: Sync labels
on:
push:
branches:
- master
- main
paths:
- '.github/labels.yml'
workflow_dispatch:
@@ -12,8 +12,7 @@ jobs:
name: Run EndBug/label-sync
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: EndBug/label-sync@v1
- uses: actions/checkout@v3
- uses: EndBug/label-sync@v2
with:
token: ${{ secrets.GITHUB_TOKEN }}
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:
build:
name: Test build
name: Build
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- run: npm i
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
cache: npm
- run: npm ci
- run: npm run build
lint:
name: Check linting
name: Lint
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- run: npm i
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
cache: npm
- run: npm ci
- run: npm run lint

View File

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

View File

@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [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
### Fixed:
- 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
[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
@@ -364,3 +368,4 @@ First release
[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.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_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.
# Default: 'Commit from GitHub Actions (name of the workflow)'
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)
### 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
### Different author/committer configurations
@@ -371,6 +384,8 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
</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://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>
</table>

View File

@@ -29,6 +29,10 @@ inputs:
description: How the action should fill missing author name or email.
required: false
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:
description: The message for the commit
required: false
@@ -55,7 +59,10 @@ inputs:
tag_push:
description: Arguments for the git push --tags command (any additional argument will be added after --tags)
required: false
worktree:
description: Arguments for the git worktree commands, see the README for usage
required: false
# Input not required from the user
github_token:
description: The token used to make requests to the GitHub API. It's NOT used to make commits and should not be changed.

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

View File

@@ -10,6 +10,7 @@ interface InputTypes {
committer_email: string
cwd: string
default_author: 'github_actor' | 'user_info' | 'github_actions'
fetch: string
message: string
new_branch: string | undefined
pathspec_error_handling: 'ignore' | 'exitImmediately' | 'exitAtEnd'
@@ -18,6 +19,7 @@ interface InputTypes {
remove: string | undefined
tag: string | undefined
tag_push: string | undefined
worktree: string | undefined
github_token: string | undefined
}
@@ -124,6 +126,20 @@ export async function checkInputs() {
)
// #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
let name, email
switch (getInput('default_author')) {
@@ -228,6 +244,29 @@ export async function checkInputs() {
}
// #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
if (!getInput('github_token'))
core.warning(

View File

@@ -14,6 +14,27 @@ core.info(`Running in ${baseDir}`)
await checkInputs()
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...')
const ignoreErrors =
@@ -55,10 +76,29 @@ core.info(`Running in ${baseDir}`)
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')
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
.checkout(targetBranch)
.then(() => {
@@ -110,6 +150,12 @@ core.info(`Running in ${baseDir}`)
if (getInput('tag')) {
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
.tag(matchGitArgs(getInput('tag') || ''), (err, data?) => {
if (data) setOutput('tagged', 'true')
@@ -162,6 +208,7 @@ core.info(`Running in ${baseDir}`)
if (getInput('tag')) {
core.info('> Pushing tags to repo...')
await git
.pushTags('origin', matchGitArgs(getInput('tag_push') || ''))
.then((data) => {
@@ -172,6 +219,17 @@ core.info(`Running in ${baseDir}`)
} else core.info('> No tags to push.')
} 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.info('> Task completed.')
} else {