Compare commits
165 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
55e3676294 | ||
|
|
cbeb36fdb1 | ||
|
|
15954de18f | ||
|
|
1d34a38003 | ||
|
|
8693022acf | ||
|
|
c7b685622a | ||
|
|
56800c1fe2 | ||
|
|
d7ef3f3a99 | ||
|
|
e9dd7a4420 | ||
|
|
f5a3783aa2 | ||
|
|
208182ae37 | ||
|
|
f7d13fceb9 | ||
|
|
360b5ee4b9 | ||
|
|
6f5455c37d | ||
|
|
4e2f1656df | ||
|
|
5348e90423 | ||
|
|
a740f7e935 | ||
|
|
590bebf249 | ||
|
|
9650af1f95 | ||
|
|
ced56a7226 | ||
|
|
a988073222 | ||
|
|
88408e5833 | ||
|
|
27a89ad786 | ||
|
|
d5f44e7aeb | ||
|
|
52f10712cb | ||
|
|
51fc21c221 | ||
|
|
46b61e173e | ||
|
|
06d54462fa | ||
|
|
21a36873cf | ||
|
|
4d2a782ca7 | ||
|
|
feb7bba5df | ||
|
|
30fd5a24e7 | ||
|
|
4f4dea335c | ||
|
|
caecee358e | ||
|
|
79fc4adbf9 | ||
|
|
4fe29d7392 | ||
|
|
2b94f96e3e | ||
|
|
ab8370c244 | ||
|
|
61eda586c3 | ||
|
|
b34850c645 | ||
|
|
f0718670ec | ||
|
|
ce9997b52f | ||
|
|
8cb387e3de | ||
|
|
4d0876f6b0 | ||
|
|
34cf82b848 | ||
|
|
8cc88cd3ac | ||
|
|
c94b5af098 | ||
|
|
d992c49843 | ||
|
|
8a80768baa | ||
|
|
8b941d4dfd | ||
|
|
d5de9f3f0d | ||
|
|
2d9c41ae6b | ||
|
|
5560eecdc1 | ||
|
|
58530b3799 | ||
|
|
026e98aa42 | ||
|
|
c2e2293f44 | ||
|
|
08fe1b6e43 | ||
|
|
46d77cfa2d | ||
|
|
8feda109a1 | ||
|
|
7e9ca065e6 | ||
|
|
7acf8aea7c | ||
|
|
30fab2fa31 | ||
|
|
cbdf3e43f1 | ||
|
|
507713a63b | ||
|
|
c512c446c5 | ||
|
|
3067c9e15c | ||
|
|
85ed07244a | ||
|
|
13550b50b0 | ||
|
|
bf3210f533 | ||
|
|
6411f389b7 | ||
|
|
dec54c038c | ||
|
|
e109cd1639 | ||
|
|
ac2b74d9d0 | ||
|
|
d82f4d33b7 | ||
|
|
d926d1c554 | ||
|
|
8b797ba126 | ||
|
|
1b11953688 | ||
|
|
36bc3f778b | ||
|
|
c61b317dea | ||
|
|
22cdfa345a | ||
|
|
d4aeb9335d | ||
|
|
46569f991f | ||
|
|
83761c7e8e | ||
|
|
f0a1d2598a | ||
|
|
c902408157 | ||
|
|
6b705fa3a4 | ||
|
|
0e98be578d | ||
|
|
c07603c1c4 | ||
|
|
9cd6e9c0ea | ||
|
|
5bf921b386 | ||
|
|
beedcea439 | ||
|
|
6cb111a771 | ||
|
|
6a4387c9c9 | ||
|
|
132aa0f637 | ||
|
|
7dbb54bce3 | ||
|
|
7f1289bf4a | ||
|
|
88d475f304 | ||
|
|
98f4b8018b | ||
|
|
2f6a78549b | ||
|
|
9cd727829f | ||
|
|
f0fcdb07a3 | ||
|
|
5ead79aef9 | ||
|
|
72da43cf1b | ||
|
|
9eb0d21b0d | ||
|
|
2db75722ce | ||
|
|
68d0f64f6f | ||
|
|
d1cfc165c7 | ||
|
|
5f12f937cb | ||
|
|
2d77fa2c79 | ||
|
|
f6b13bc7e9 | ||
|
|
116c918fd3 | ||
|
|
fbbcae9aa5 | ||
|
|
7bd2b1ca10 | ||
|
|
61d14d1bee | ||
|
|
6a75638ec3 | ||
|
|
ff38b6c4a6 | ||
|
|
e67ce7f439 | ||
|
|
a83118880c | ||
|
|
a28158a63f | ||
|
|
30030e85c0 | ||
|
|
79fa1f9f98 | ||
|
|
06fd39b8b7 | ||
|
|
f278ec6d47 | ||
|
|
5a3f4c1c24 | ||
|
|
602bf4ea71 | ||
|
|
5148cf0f38 | ||
|
|
12febc42d8 | ||
|
|
de8a121ebd | ||
|
|
a2b49385e8 | ||
|
|
ea7cddff4f | ||
|
|
9acdb7d7f4 | ||
|
|
6d08b4f153 | ||
|
|
925751a406 | ||
|
|
d3ccc660f4 | ||
|
|
4d5fbad9c9 | ||
|
|
aa1a8cef82 | ||
|
|
df80e1746f | ||
|
|
e6702dc457 | ||
|
|
08a333fd51 | ||
|
|
570c13708e | ||
|
|
6354828f7b | ||
|
|
5f0bbb3e99 | ||
|
|
a32c180667 | ||
|
|
5ba43bd1de | ||
|
|
514b397571 | ||
|
|
0a723093dc | ||
|
|
f85bf9b85e | ||
|
|
2096009ef6 | ||
|
|
8063b07a5a | ||
|
|
dd4d657304 | ||
|
|
983180c6c6 | ||
|
|
aecfd6262a | ||
|
|
b5a17167bf | ||
|
|
c3549913c6 | ||
|
|
b4fc1efdd2 | ||
|
|
01b3042145 | ||
|
|
e5272e4c09 | ||
|
|
f118062594 | ||
|
|
d81e04e96c | ||
|
|
33d0a0858a | ||
|
|
5277b29cf2 | ||
|
|
463ebc38cb | ||
|
|
b99985e9be | ||
|
|
bfb772f923 | ||
|
|
b1b499b985 |
144
.all-contributorsrc
Normal file
144
.all-contributorsrc
Normal file
@@ -0,0 +1,144 @@
|
|||||||
|
{
|
||||||
|
"projectName": "add-and-commit",
|
||||||
|
"projectOwner": "EndBug",
|
||||||
|
"repoType": "github",
|
||||||
|
"repoHost": "https://github.com",
|
||||||
|
"files": [
|
||||||
|
"README.md"
|
||||||
|
],
|
||||||
|
"imageSize": 100,
|
||||||
|
"commit": true,
|
||||||
|
"commitConvention": "angular",
|
||||||
|
"contributors": [
|
||||||
|
{
|
||||||
|
"login": "EndBug",
|
||||||
|
"name": "Federico Grandi",
|
||||||
|
"avatar_url": "https://avatars1.githubusercontent.com/u/26386270?v=4",
|
||||||
|
"profile": "https://github.com/EndBug",
|
||||||
|
"contributions": [
|
||||||
|
"code",
|
||||||
|
"doc"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"login": "jactor-rises",
|
||||||
|
"name": "Tor Egil Jacobsen",
|
||||||
|
"avatar_url": "https://avatars3.githubusercontent.com/u/14565088?v=4",
|
||||||
|
"profile": "https://github.com/jactor-rises",
|
||||||
|
"contributions": [
|
||||||
|
"code"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"login": "yelizariev",
|
||||||
|
"name": "Ivan Yelizariev",
|
||||||
|
"avatar_url": "https://avatars0.githubusercontent.com/u/186131?v=4",
|
||||||
|
"profile": "https://twitter.com/yelizariev",
|
||||||
|
"contributions": [
|
||||||
|
"ideas"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"login": "jhhughes",
|
||||||
|
"name": "jhhughes",
|
||||||
|
"avatar_url": "https://avatars2.githubusercontent.com/u/13724293?v=4",
|
||||||
|
"profile": "https://github.com/jhhughes",
|
||||||
|
"contributions": [
|
||||||
|
"bug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"login": "DmitrijOkeanij",
|
||||||
|
"name": "Дмитрий Океаний",
|
||||||
|
"avatar_url": "https://avatars3.githubusercontent.com/u/10674646?v=4",
|
||||||
|
"profile": "https://sunengine.site",
|
||||||
|
"contributions": [
|
||||||
|
"ideas"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"login": "brahma-dev",
|
||||||
|
"name": "Brahma Dev",
|
||||||
|
"avatar_url": "https://avatars3.githubusercontent.com/u/1793295?v=4",
|
||||||
|
"profile": "https://github.com/brahma-dev",
|
||||||
|
"contributions": [
|
||||||
|
"bug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"login": "felixlapalma",
|
||||||
|
"name": "Felix Rojo Lapalma",
|
||||||
|
"avatar_url": "https://avatars2.githubusercontent.com/u/38389683?v=4",
|
||||||
|
"profile": "https://github.com/felixlapalma",
|
||||||
|
"contributions": [
|
||||||
|
"bug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"login": "RobinWijnant",
|
||||||
|
"name": "Robin Wijnant",
|
||||||
|
"avatar_url": "https://avatars3.githubusercontent.com/u/33033209?v=4",
|
||||||
|
"profile": "http://robinwijnant.me",
|
||||||
|
"contributions": [
|
||||||
|
"bug",
|
||||||
|
"code"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"login": "onilton",
|
||||||
|
"name": "Onilton Maciel",
|
||||||
|
"avatar_url": "https://avatars2.githubusercontent.com/u/725676?v=4",
|
||||||
|
"profile": "https://github.com/onilton",
|
||||||
|
"contributions": [
|
||||||
|
"ideas"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"login": "jsoref",
|
||||||
|
"name": "Josh Soref",
|
||||||
|
"avatar_url": "https://avatars0.githubusercontent.com/u/2119212?v=4",
|
||||||
|
"profile": "https://github.com/jsoref",
|
||||||
|
"contributions": [
|
||||||
|
"doc"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"login": "ToMe25",
|
||||||
|
"name": "ToMe25",
|
||||||
|
"avatar_url": "https://avatars1.githubusercontent.com/u/38815969?v=4",
|
||||||
|
"profile": "https://github.com/ToMe25",
|
||||||
|
"contributions": [
|
||||||
|
"code",
|
||||||
|
"ideas"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"login": "JonasJacobsUserspace",
|
||||||
|
"name": "JonasJacobsUserspace",
|
||||||
|
"avatar_url": "https://avatars0.githubusercontent.com/u/59708720?v=4",
|
||||||
|
"profile": "https://github.com/JonasJacobsUserspace",
|
||||||
|
"contributions": [
|
||||||
|
"bug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"login": "pvogt09",
|
||||||
|
"name": "pvogt09",
|
||||||
|
"avatar_url": "https://avatars3.githubusercontent.com/u/50047961?v=4",
|
||||||
|
"profile": "https://github.com/pvogt09",
|
||||||
|
"contributions": [
|
||||||
|
"code"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"login": "connorjclark",
|
||||||
|
"name": "Connor Clark",
|
||||||
|
"avatar_url": "https://avatars1.githubusercontent.com/u/4071474?v=4",
|
||||||
|
"profile": "http://hoten.cc",
|
||||||
|
"contributions": [
|
||||||
|
"ideas"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"contributorsPerLine": 7
|
||||||
|
}
|
||||||
64
.eslintrc
Normal file
64
.eslintrc
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
{
|
||||||
|
"env": {
|
||||||
|
"node": true,
|
||||||
|
"browser": true,
|
||||||
|
"amd": true,
|
||||||
|
"es6": true
|
||||||
|
},
|
||||||
|
"root": true,
|
||||||
|
"extends": [
|
||||||
|
"eslint:recommended"
|
||||||
|
],
|
||||||
|
"plugins": [
|
||||||
|
"@typescript-eslint"
|
||||||
|
],
|
||||||
|
"parser": "@typescript-eslint/parser",
|
||||||
|
"parserOptions": {
|
||||||
|
"ecmaVersion": 6,
|
||||||
|
"sourceType": "module",
|
||||||
|
"ecmaFeatures": {
|
||||||
|
"jsx": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rules": {
|
||||||
|
"no-cond-assign": [
|
||||||
|
2,
|
||||||
|
"except-parens"
|
||||||
|
],
|
||||||
|
"no-use-before-define": [
|
||||||
|
2,
|
||||||
|
{
|
||||||
|
"functions": false,
|
||||||
|
"classes": false,
|
||||||
|
"variables": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"new-cap": 0,
|
||||||
|
"no-caller": 2,
|
||||||
|
"no-undef": 2,
|
||||||
|
"no-unused-vars": 0,
|
||||||
|
"@typescript-eslint/no-unused-vars": "warn",
|
||||||
|
"no-empty": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
"allowEmptyCatch": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"no-console": "off",
|
||||||
|
"prefer-const": [
|
||||||
|
"warn",
|
||||||
|
{
|
||||||
|
"destructuring": "all"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"quotes": [
|
||||||
|
"warn",
|
||||||
|
"single"
|
||||||
|
],
|
||||||
|
"semi": [
|
||||||
|
"warn",
|
||||||
|
"never"
|
||||||
|
],
|
||||||
|
"spaced-comment": "warn"
|
||||||
|
}
|
||||||
|
}
|
||||||
37
.github/workflows/build.yml
vendored
Normal file
37
.github/workflows/build.yml
vendored
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
name: Build
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
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
|
||||||
|
force: true
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- uses: EndBug/add-and-commit@v4
|
||||||
|
with:
|
||||||
|
message: '[auto] build: update input typings'
|
||||||
|
add: src/inputs.ts
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
29
.github/workflows/docs.yml
vendored
Normal file
29
.github/workflows/docs.yml
vendored
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
name: Docs
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- .all-contributorsrc
|
||||||
|
- .github/workflows/docs.yml
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
contributors:
|
||||||
|
name: Update contributors badge
|
||||||
|
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 all-contributors-badge
|
||||||
|
|
||||||
|
- uses: EndBug/add-and-commit@v4.0.0
|
||||||
|
with:
|
||||||
|
message: "[auto] docs: update contributors badge"
|
||||||
|
add: README.md
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
18
.github/workflows/latest.yml
vendored
18
.github/workflows/latest.yml
vendored
@@ -1,18 +0,0 @@
|
|||||||
name: Add latest tag to new release
|
|
||||||
on:
|
|
||||||
release:
|
|
||||||
types: [published]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
run:
|
|
||||||
name: Add/update tag to new release
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@master
|
|
||||||
|
|
||||||
- name: Run latest-tag
|
|
||||||
uses: EndBug/latest-tag@latest
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
21
.github/workflows/stale.yml
vendored
Normal file
21
.github/workflows/stale.yml
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
name: 'Handle stale issues and PRs'
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: '0 0 * * *'
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
stale:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/stale@v3
|
||||||
|
with:
|
||||||
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
stale-issue-message: 'This issue is being marked as "stale" because it has been open 20 days with no activity. Remove the "stale" label or comment, otherwise this will be closed in 5 days.'
|
||||||
|
stale-issue-label: stale
|
||||||
|
exempt-issue-labels: pinned
|
||||||
|
stale-pr-message: 'This PR is being marked as "stale" because it has been open 20 days with no activity. Remove the "stale" label or comment, otherwise this will be closed in 5 days.'
|
||||||
|
stale-pr-label: stale
|
||||||
|
exempt-pr-labels: pinned
|
||||||
|
days-before-stale: 20
|
||||||
|
days-before-close: 5
|
||||||
15
.github/workflows/versioning.yml
vendored
Normal file
15
.github/workflows/versioning.yml
vendored
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
name: Keep the versions up-to-date
|
||||||
|
|
||||||
|
on:
|
||||||
|
release:
|
||||||
|
types: [published, edited]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
actions-tagger:
|
||||||
|
runs-on: windows-latest
|
||||||
|
steps:
|
||||||
|
- uses: Actions-R-Us/actions-tagger@v1
|
||||||
|
with:
|
||||||
|
publish_latest: true
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: "${{secrets.GITHUB_TOKEN}}"
|
||||||
5
.gitignore
vendored
5
.gitignore
vendored
@@ -1,2 +1,3 @@
|
|||||||
.idea
|
node_modules
|
||||||
*.iml
|
build
|
||||||
|
lib
|
||||||
|
|||||||
131
CHANGELOG.md
Normal file
131
CHANGELOG.md
Normal file
@@ -0,0 +1,131 @@
|
|||||||
|
# Changelog
|
||||||
|
All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||||
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [5.0.0] - 2020-09-27
|
||||||
|
### Changed:
|
||||||
|
- **[BREAKING]** Action parameters: multiple action parameters have been changed, refer to the docs for better info
|
||||||
|
- The code is now entirely in TypeScript (PR #57)
|
||||||
|
|
||||||
|
### Fixed:
|
||||||
|
- Improved input checks
|
||||||
|
- Logs are now displayed on Windows too
|
||||||
|
- Remove unnecessary steps
|
||||||
|
- Remove unused dependencies
|
||||||
|
|
||||||
|
## [4.4.0] - 2020-07-31
|
||||||
|
### Added:
|
||||||
|
- Pull requests: the action can now work in runs triggered by pull request events (issue #48)
|
||||||
|
|
||||||
|
## [4.3.0] - 2020-07-29
|
||||||
|
### Addded:
|
||||||
|
- `signoff` parameter: lets you use the `--signoff` argument for the `git commit` command (PR #46)
|
||||||
|
|
||||||
|
## [4.2.1] - 2020-07-10
|
||||||
|
### Fixed:
|
||||||
|
- OS-support: the action now properly works on Windows instances (issue #33)
|
||||||
|
|
||||||
|
## [4.2.0] - 2020-05-17
|
||||||
|
### Added:
|
||||||
|
- Tagging: you can now create and update lightweight tags (PR #30)
|
||||||
|
|
||||||
|
## [4.1.0] - 2020-05-01
|
||||||
|
### Added:
|
||||||
|
- `ref` parameter: lets you choose the branch to run the action on, the default is the one that triggered the workflow (issue #29)
|
||||||
|
|
||||||
|
## [4.0.3] - 2020-05-01
|
||||||
|
### Fixed:
|
||||||
|
- Logs: `git diff` won't display logs anymore, to avoid buffer problems (issue #27)
|
||||||
|
- Logs: additional info will be logged along with the command outputs
|
||||||
|
- Logs: added groups to improve readability
|
||||||
|
|
||||||
|
## [4.0.2] - 2020-04-19
|
||||||
|
### Fixed:
|
||||||
|
- Error handling: failures are now easier to read (issue #25)
|
||||||
|
|
||||||
|
## [4.0.1] - 2020-03-20
|
||||||
|
### Fixed:
|
||||||
|
- Scheduled events: the action can be used in action runs triggered by a scheduled events
|
||||||
|
- Warnings: there won't be warnings when both `author_name` and `author_email` are set
|
||||||
|
|
||||||
|
## [4.0.0] - 2020-03-03
|
||||||
|
### Removed:
|
||||||
|
- **[BREAKING]** `path` parameter: see 'Changed' section for more info
|
||||||
|
- **[BREAKING]** `pattern` parameter: see 'Changed' section for more info
|
||||||
|
|
||||||
|
### Changed:
|
||||||
|
- The action now uses `git add` and `git rm` commands, you can choose their arguemnts directly by using the `add` and `remove` parameters
|
||||||
|
- **[BREAKING]** Error handling: the action won't stop if one of your git commands fails (e.g. if one of your pathspecs doesn't match any file)
|
||||||
|
|
||||||
|
## [3.1.0] - 2020-02-21
|
||||||
|
### Added:
|
||||||
|
- `remove` parameter: lets you delete files directly from the action
|
||||||
|
|
||||||
|
## [3.0.0] - 2020-01-24
|
||||||
|
### Added:
|
||||||
|
- The action can now run in multiple subsequent jobs in the same workflow
|
||||||
|
|
||||||
|
### Removed:
|
||||||
|
- **[BREAKING]** [`actions/checkout@v1`](https://github.com/actions/checkout/tree/v1) support is being dropped in favor of [`actions/checkout@v2`](https://github.com/actions/checkout/releases/tag/v2)
|
||||||
|
|
||||||
|
## [2.3.2] - 2019-12-29
|
||||||
|
### Added:
|
||||||
|
- `cwd` parameter: lets you set the Current Working Directory
|
||||||
|
|
||||||
|
## [2.3.1] - 2019-12-20
|
||||||
|
### Added:
|
||||||
|
- Short tags: from now on, there will be short major tags available (`v2`, `v3`, ...)
|
||||||
|
|
||||||
|
## [2.3.0] - 2019-12-14
|
||||||
|
### Changed:
|
||||||
|
- TypeScript rewrite: the action will run faster because, unlike with Docker, no build process is needed
|
||||||
|
|
||||||
|
### Added:
|
||||||
|
- OS support: the action can now run in non-Linux environments too
|
||||||
|
|
||||||
|
## [2.2.0] - 2019-12-14
|
||||||
|
### Added:
|
||||||
|
- The action can automatically fetch the commit author to use
|
||||||
|
- You can manually provide the author using the `author_name` and `author_email` parameters
|
||||||
|
|
||||||
|
## [2.1.1] - 2019-12-07
|
||||||
|
### Fixed:
|
||||||
|
- The action can now be used multiple times in the same workflow
|
||||||
|
|
||||||
|
## [2.1.0] - 2019-09-19
|
||||||
|
### Added:
|
||||||
|
- `force` parameter: uses `--force` when running `git add`
|
||||||
|
|
||||||
|
## [2.0.0] - 2019-09-18
|
||||||
|
### Changed:
|
||||||
|
- **[BREAKING]** The action now uses a `find` command
|
||||||
|
|
||||||
|
## [1.0.0] - 2019-09-17
|
||||||
|
First release
|
||||||
|
|
||||||
|
#
|
||||||
|
[Unreleased]: https://github.com/EndBug/add-and-commit/compare/v5.0.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
|
||||||
|
[2.1.1]: https://github.com/EndBug/add-and-commit/compare/v2.1.0...v2.1.1
|
||||||
|
[2.2.0]: https://github.com/EndBug/add-and-commit/compare/v2.1.1...v2.2.0
|
||||||
|
[2.3.0]: https://github.com/EndBug/add-and-commit/compare/v2.2.0...v2.3.0
|
||||||
|
[2.3.1]: https://github.com/EndBug/add-and-commit/compare/v2.3.0...v2.3.1
|
||||||
|
[2.3.2]: https://github.com/EndBug/add-and-commit/compare/v2.3.1...v2.3.2
|
||||||
|
[3.0.0]: https://github.com/EndBug/add-and-commit/compare/v2.3.2...v3.0.0
|
||||||
|
[3.1.0]: https://github.com/EndBug/add-and-commit/compare/v3.0.0...v3.1.0
|
||||||
|
[4.0.0]: https://github.com/EndBug/add-and-commit/compare/v3.1.0...v4.0.0
|
||||||
|
[4.0.1]: https://github.com/EndBug/add-and-commit/compare/v4.0.0...v4.0.1
|
||||||
|
[4.0.2]: https://github.com/EndBug/add-and-commit/compare/v4.0.1...v4.0.2
|
||||||
|
[4.0.3]: https://github.com/EndBug/add-and-commit/compare/v4.0.2...v4.0.3
|
||||||
|
[4.1.0]: https://github.com/EndBug/add-and-commit/compare/v4.0.3...v4.1.0
|
||||||
|
[4.2.0]: https://github.com/EndBug/add-and-commit/compare/v4.1.0...v4.2.0
|
||||||
|
[4.2.1]: https://github.com/EndBug/add-and-commit/compare/v4.2.0...v4.2.1
|
||||||
|
[4.3.0]: https://github.com/EndBug/add-and-commit/compare/v4.2.1...v4.3.0
|
||||||
|
[4.4.0]: https://github.com/EndBug/add-and-commit/compare/v4.3.0...v4.4.0
|
||||||
|
[5.0.0]: https://github.com/EndBug/add-and-commit/compare/v4.4.0...v5.0.0
|
||||||
16
Dockerfile
16
Dockerfile
@@ -1,16 +0,0 @@
|
|||||||
FROM alpine/git:1.0.7
|
|
||||||
|
|
||||||
LABEL "com.github.actions.name"="Add & Commit"
|
|
||||||
LABEL "com.github.actions.description"="Add & commit files from a path directly from GitHub Actions"
|
|
||||||
LABEL "com.github.actions.icon"="git-commit"
|
|
||||||
LABEL "com.github.actions.color"="black"
|
|
||||||
|
|
||||||
LABEL "repository"="https://github.com/EndBug/add-and-commit"
|
|
||||||
LABEL "homepage"="https://github.com/EndBug/add-and-commit"
|
|
||||||
LABEL "maintainer"="Federico Grandi <fgrandi30@gmail.com>"
|
|
||||||
|
|
||||||
RUN apk add jq
|
|
||||||
|
|
||||||
COPY entrypoint.sh /entrypoint.sh
|
|
||||||
|
|
||||||
ENTRYPOINT ["sh", "/entrypoint.sh"]
|
|
||||||
163
README.md
163
README.md
@@ -1,64 +1,82 @@
|
|||||||
# Add & Commit
|
# Add & Commit
|
||||||
|
<a href="https://github.com/search?o=desc&q=EndBug%2Fadd-and-commit+path%3A.github%2Fworkflows+language%3AYAML&s=&type=Code" target="_blank" title="Public workflows that use this action."><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Fapi-git-master.endbug.vercel.app%2Fapi%2Fgithub-actions%2Fused-by%3Faction%3DEndBug%2Fadd-and-commit%26badge%3Dtrue" alt="Public workflows that use this action."></a>
|
||||||
|
[](#contributors-)
|
||||||
|
|
||||||
You can use this GitHub Action to commit changes made in your workflow run directly to your repo: for example, you use it to lint your code, update documentation, commit updated builds and so on...
|
You can use this GitHub Action to commit changes made in your workflow run directly to your repo: for example, you use it to lint your code, update documentation, commit updated builds, etc....
|
||||||
|
|
||||||
This is **heavily** inspired by [git-auto-commit-action](https://github.com/stefanzweifel/git-auto-commit-action) (by [Stefan Zweifel](https://github.com/stefanzweifel)): that action automatically detects changed files and commits them. While this is useful for most situations, this doesn't commit untracked files and can sometimes commit unintended changes (such as `package-lock.json` or similar, that may have happened during previous steps).
|
This is **heavily** inspired by [git-auto-commit-action](https://github.com/stefanzweifel/git-auto-commit-action) (by [Stefan Zweifel](https://github.com/stefanzweifel)): that action automatically detects changed files and commits them. While this is useful for most situations, this doesn't commit untracked files and can sometimes commit unintended changes (such as `package-lock.json` or similar, that may have happened during previous steps).
|
||||||
This action lets you choose the path that you want to use when adding & committing changes, so that it works as you would normally do using `git` on your machine.
|
This action lets you choose the path that you want to use when adding & committing changes so that it works as you would normally do using `git` on your machine.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
Add a step like this to your workflow:
|
Add a step like this to your workflow:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- name: Commit changes # This is the step name that will be displayed in your runs
|
- uses: EndBug/add-and-commit@v5 # You can change this to use a specific version
|
||||||
uses: EndBug/add-and-commit@v2.1.1 # You can change this to use a specific version
|
with:
|
||||||
with: # See more info about inputs below
|
# The arguments for the `git add` command (see the paragraph below for more info)
|
||||||
|
# Default: '.'
|
||||||
|
add: 'src'
|
||||||
|
|
||||||
|
# The name of the user that will be displayed as the author of the commit
|
||||||
|
# Default: author of the commit that triggered the run
|
||||||
author_name: Your Name
|
author_name: Your Name
|
||||||
|
|
||||||
|
# The email of the user that will be displayed as the author of the commit
|
||||||
|
# Default: author of the commit that triggered the run
|
||||||
author_email: mail@example.com
|
author_email: mail@example.com
|
||||||
message: "Your commit message"
|
|
||||||
path: "."
|
# Name of the branch to use, if different from the one that triggered the workflow
|
||||||
pattern: "*.js"
|
# Default: the branch that triggered the run
|
||||||
force: false
|
branch: some-branch
|
||||||
|
|
||||||
|
# The local path to the directory where your repository is located. You should use actions/checkout first to set it up
|
||||||
|
# Default: '.'
|
||||||
|
cwd: './path/to/the/repo'
|
||||||
|
|
||||||
|
# The message for the commit
|
||||||
|
# Default: 'Commit from GitHub Actions'
|
||||||
|
message: 'Your commit message'
|
||||||
|
|
||||||
|
# The arguments for the `git rm` command (see the paragraph below for more info)
|
||||||
|
# Default: ''
|
||||||
|
remove: "./dir/old_file.js"
|
||||||
|
|
||||||
|
# Whether to use the --signoff option on `git commit` (only `true` and `false` are accepted)
|
||||||
|
# Default: false
|
||||||
|
signoff: true
|
||||||
|
|
||||||
|
# Arguments for the git tag command (the tag name always needs to be the first word not preceded by an hyphen)
|
||||||
|
# Default: ''
|
||||||
|
tag: "v1.0.0 --force"
|
||||||
|
|
||||||
env:
|
env:
|
||||||
|
# This is necessary in order to push a commit to the repo
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Leave this line unchanged
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Leave this line unchanged
|
||||||
```
|
```
|
||||||
|
|
||||||
### Inputs:
|
|
||||||
|
|
||||||
- `author_name` : the name of the user that will be displayed as the author of the commit
|
|
||||||
- `author_email` : the email of the user that will be displayed as the author of the commit
|
|
||||||
- `message` : the message for the commit
|
|
||||||
- `path` : the path(s) to stage files from
|
|
||||||
- `pattern` : the pattern that matches file names
|
|
||||||
- `force` : whether to use the force option on git add, in order to bypass eventual gitignores
|
|
||||||
|
|
||||||
### Environment variables:
|
### Environment variables:
|
||||||
|
|
||||||
The only `env` variable required is the token for the action to run: GitHub generates one automatically, but you need to pass it through `env` to make it available to actions. You can find more about `GITHUB_TOKEN` [here](https://help.github.com/en/articles/virtual-environments-for-github-actions#github_token-secret).
|
The only `env` variable required is the token for the action to run: GitHub generates one automatically, but you need to pass it through `env` to make it available to actions. You can find more about `GITHUB_TOKEN` [here](https://help.github.com/en/articles/virtual-environments-for-github-actions#github_token-secret).
|
||||||
With that said, you can just copy the example line and don't worry about it. If you do want to use a different token you can pass that in, but I wouldn't see any possible advantage in doing so.
|
That said, you can just copy the example line and not worry about it. If you do want to use a different token you can pass that in, but I wouldn't see any possible advantage in doing so.
|
||||||
|
|
||||||
|
### Adding files:
|
||||||
|
|
||||||
|
The action adds files using a regular `git add` command, so you can put every kind of argument in the `add` option. For example, if you want to force-add a file: `./path/to/file.txt --force`.
|
||||||
|
The script will not stop if one of the git commands fails. E.g.: if your command shows a "fatal: pathspec 'yourFile' did not match any files" error the action will go on.
|
||||||
|
|
||||||
### Deleting files:
|
### Deleting files:
|
||||||
|
|
||||||
This action only **adds** files so in order to commit a file deletion you need to stage that separately: for that, you can run `git rm` in a previous step. Here's a quick example:
|
You can delete files with the `remove` option: that runs a `git rm` command that will stage the files in the given path for removal. As with the `add` argument, you can use every option `git rm` allows (e.g. add `--force` to ignore `.gitignore` rules).
|
||||||
|
The script will not stop if one of the git commands fails. E.g.: if your command shows a "fatal: pathspec 'yourFile' did not match any files" error the action will go on.
|
||||||
|
|
||||||
```yaml
|
### Tagging:
|
||||||
- run: git rm delete_me.txt
|
|
||||||
|
|
||||||
- uses: EndBug/add-and-commit@v2.1.1
|
You can use the `tag` option to enter the arguments for a `git add` command. In order for the action to isolate the tag name from the rest of the arguments, it should be the first word not preceded by an hyphen (e.g. `-a tag-name -m "some other stuff"` is ok).
|
||||||
with:
|
|
||||||
author_name: Your Name
|
|
||||||
author_email: mail@example.com
|
|
||||||
message: "Remove file"
|
|
||||||
path: "."
|
|
||||||
pattern: "*.js" # The path is not important, the file will get removed anyway: that means you can still use the action as usual
|
|
||||||
force: true
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
```
|
|
||||||
|
|
||||||
### Example:
|
### Examples:
|
||||||
|
|
||||||
You want to lint your JavaScript files, located in the `src` folder, with ESLint so that fixable changes are done without your intervention. You can use a workflow like this:
|
Do you want to lint your JavaScript files, located in the `src` folder, with ESLint, so that fixable changes are done without your intervention? You can use a workflow like this:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
name: Lint source code
|
name: Lint source code
|
||||||
@@ -70,12 +88,12 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repo
|
- name: Checkout repo
|
||||||
uses: actions/checkout@master
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
- name: Set up Node.js
|
- name: Set up Node.js
|
||||||
uses: actions/setup-node@master
|
uses: actions/setup-node@v1
|
||||||
with:
|
with:
|
||||||
node-version: 10.0.0
|
node-version: 12.x
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: npm install
|
run: npm install
|
||||||
@@ -84,17 +102,80 @@ jobs:
|
|||||||
run: eslint "src/**" --fix
|
run: eslint "src/**" --fix
|
||||||
|
|
||||||
- name: Commit changes
|
- name: Commit changes
|
||||||
uses: EndBug/add-and-commit@v2.1.1
|
uses: EndBug/add-and-commit@v5
|
||||||
with:
|
with:
|
||||||
author_name: Your Name
|
author_name: Your Name
|
||||||
author_email: mail@example.com
|
author_email: mail@example.com
|
||||||
message: "Your commit message"
|
message: "Your commit message"
|
||||||
path: "."
|
add: "*.js"
|
||||||
pattern: "*.js"
|
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
If you need to run the action on a repository that is not located in [`$GITHUB_WORKSPACE`](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/using-environment-variables#default-environment-variables), you can use the `cwd` option: the action uses a `cd` normal command, so the path should follow bash standards.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
name: Use a different repository directory
|
||||||
|
on: push
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
run:
|
||||||
|
name: Add a text file
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
# If you need to, you can check out your repo to a different location
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
path: "./pathToRepo/"
|
||||||
|
|
||||||
|
# You can make whatever type of change to the repo...
|
||||||
|
- run: echo "123" > ./pathToRepo/file.txt
|
||||||
|
|
||||||
|
# ...and then use the action as you would normally do, but providing the path to the repo
|
||||||
|
- uses: EndBug/add-and-commit@v5
|
||||||
|
with:
|
||||||
|
message: "Add the very useful text file"
|
||||||
|
add: "*.txt --force"
|
||||||
|
cwd: "./pathToRepo/"
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Contributors ✨
|
||||||
|
|
||||||
|
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
|
||||||
|
|
||||||
|
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
||||||
|
<!-- prettier-ignore-start -->
|
||||||
|
<!-- markdownlint-disable -->
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td align="center"><a href="https://github.com/EndBug"><img src="https://avatars1.githubusercontent.com/u/26386270?v=4" width="100px;" alt=""/><br /><sub><b>Federico Grandi</b></sub></a><br /><a href="https://github.com/EndBug/add-and-commit/commits?author=EndBug" title="Code">💻</a> <a href="https://github.com/EndBug/add-and-commit/commits?author=EndBug" title="Documentation">📖</a></td>
|
||||||
|
<td align="center"><a href="https://github.com/jactor-rises"><img src="https://avatars3.githubusercontent.com/u/14565088?v=4" width="100px;" alt=""/><br /><sub><b>Tor Egil Jacobsen</b></sub></a><br /><a href="https://github.com/EndBug/add-and-commit/commits?author=jactor-rises" title="Code">💻</a></td>
|
||||||
|
<td align="center"><a href="https://twitter.com/yelizariev"><img src="https://avatars0.githubusercontent.com/u/186131?v=4" width="100px;" alt=""/><br /><sub><b>Ivan Yelizariev</b></sub></a><br /><a href="#ideas-yelizariev" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||||
|
<td align="center"><a href="https://github.com/jhhughes"><img src="https://avatars2.githubusercontent.com/u/13724293?v=4" width="100px;" alt=""/><br /><sub><b>jhhughes</b></sub></a><br /><a href="https://github.com/EndBug/add-and-commit/issues?q=author%3Ajhhughes" title="Bug reports">🐛</a></td>
|
||||||
|
<td align="center"><a href="https://sunengine.site"><img src="https://avatars3.githubusercontent.com/u/10674646?v=4" width="100px;" alt=""/><br /><sub><b>Дмитрий Океаний</b></sub></a><br /><a href="#ideas-DmitrijOkeanij" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||||
|
<td align="center"><a href="https://github.com/brahma-dev"><img src="https://avatars3.githubusercontent.com/u/1793295?v=4" width="100px;" alt=""/><br /><sub><b>Brahma Dev</b></sub></a><br /><a href="https://github.com/EndBug/add-and-commit/issues?q=author%3Abrahma-dev" title="Bug reports">🐛</a></td>
|
||||||
|
<td align="center"><a href="https://github.com/felixlapalma"><img src="https://avatars2.githubusercontent.com/u/38389683?v=4" width="100px;" alt=""/><br /><sub><b>Felix Rojo Lapalma</b></sub></a><br /><a href="https://github.com/EndBug/add-and-commit/issues?q=author%3Afelixlapalma" title="Bug reports">🐛</a></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td align="center"><a href="http://robinwijnant.me"><img src="https://avatars3.githubusercontent.com/u/33033209?v=4" width="100px;" alt=""/><br /><sub><b>Robin Wijnant</b></sub></a><br /><a href="https://github.com/EndBug/add-and-commit/issues?q=author%3ARobinWijnant" title="Bug reports">🐛</a> <a href="https://github.com/EndBug/add-and-commit/commits?author=RobinWijnant" title="Code">💻</a></td>
|
||||||
|
<td align="center"><a href="https://github.com/onilton"><img src="https://avatars2.githubusercontent.com/u/725676?v=4" width="100px;" alt=""/><br /><sub><b>Onilton Maciel</b></sub></a><br /><a href="#ideas-onilton" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||||
|
<td align="center"><a href="https://github.com/jsoref"><img src="https://avatars0.githubusercontent.com/u/2119212?v=4" width="100px;" alt=""/><br /><sub><b>Josh Soref</b></sub></a><br /><a href="https://github.com/EndBug/add-and-commit/commits?author=jsoref" title="Documentation">📖</a></td>
|
||||||
|
<td align="center"><a href="https://github.com/ToMe25"><img src="https://avatars1.githubusercontent.com/u/38815969?v=4" width="100px;" alt=""/><br /><sub><b>ToMe25</b></sub></a><br /><a href="https://github.com/EndBug/add-and-commit/commits?author=ToMe25" title="Code">💻</a> <a href="#ideas-ToMe25" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||||
|
<td align="center"><a href="https://github.com/JonasJacobsUserspace"><img src="https://avatars0.githubusercontent.com/u/59708720?v=4" width="100px;" alt=""/><br /><sub><b>JonasJacobsUserspace</b></sub></a><br /><a href="https://github.com/EndBug/add-and-commit/issues?q=author%3AJonasJacobsUserspace" title="Bug reports">🐛</a></td>
|
||||||
|
<td align="center"><a href="https://github.com/pvogt09"><img src="https://avatars3.githubusercontent.com/u/50047961?v=4" width="100px;" alt=""/><br /><sub><b>pvogt09</b></sub></a><br /><a href="https://github.com/EndBug/add-and-commit/commits?author=pvogt09" title="Code">💻</a></td>
|
||||||
|
<td align="center"><a href="http://hoten.cc"><img src="https://avatars1.githubusercontent.com/u/4071474?v=4" width="100px;" alt=""/><br /><sub><b>Connor Clark</b></sub></a><br /><a href="#ideas-connorjclark" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<!-- markdownlint-enable -->
|
||||||
|
<!-- prettier-ignore-end -->
|
||||||
|
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
||||||
|
|
||||||
|
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
This action is distributed under the MIT license, check the [license](LICENSE) for more info.
|
This action is distributed under the MIT license, check the [license](LICENSE) for more info.
|
||||||
|
|||||||
50
action.yml
50
action.yml
@@ -1,34 +1,42 @@
|
|||||||
name: 'Add & Commit'
|
name: Add & Commit
|
||||||
description: 'Add & commit files from a path directly from GitHub Actions'
|
description: Add & commit files from a path directly from GitHub Actions
|
||||||
|
|
||||||
inputs:
|
inputs:
|
||||||
|
add:
|
||||||
|
description: Arguments for the git add command
|
||||||
|
required: false
|
||||||
|
default: '.'
|
||||||
author_name:
|
author_name:
|
||||||
description: 'The name of the user that will be displayed as the author of the commit, defaults to author name of head commit'
|
description: The name of the user that will be displayed as the author of the commit
|
||||||
required: false
|
required: false
|
||||||
author_email:
|
author_email:
|
||||||
description: 'The email of the user that will be displayed as the author of the commit, defaults to author email of head commit'
|
description: The email of the user that will be displayed as the author of the commit
|
||||||
required: false
|
required: false
|
||||||
force:
|
branch:
|
||||||
description: 'Whether to use the force option on git add, in order to bypass eventual gitignores'
|
description: Name of the branch to use, if different from the one that triggered the workflow
|
||||||
|
required: false
|
||||||
|
cwd:
|
||||||
|
description: The directory where your repository is located. You should use actions/checkout first to set it up
|
||||||
required: false
|
required: false
|
||||||
default: false
|
|
||||||
message:
|
|
||||||
description: 'The message for the commit'
|
|
||||||
required: true
|
|
||||||
default: 'Commit from GitHub Actions'
|
|
||||||
path:
|
|
||||||
description: 'The path to stage files from'
|
|
||||||
required: true
|
|
||||||
default: '.'
|
default: '.'
|
||||||
pattern:
|
message:
|
||||||
description: 'The pattern that mathces file names'
|
description: The message for the commit
|
||||||
|
required: false
|
||||||
|
default: Commit from GitHub Actions
|
||||||
|
remove:
|
||||||
|
description: Arguments for the git rm command
|
||||||
|
required: false
|
||||||
|
signoff:
|
||||||
|
description: Whether to use the --signoff option on git commit
|
||||||
|
required: false
|
||||||
|
tag:
|
||||||
|
description: Arguments for the git tag command (the tag name always needs to be the first word not preceded by a hyphen)
|
||||||
required: false
|
required: false
|
||||||
default: "*.*"
|
|
||||||
|
|
||||||
runs:
|
runs:
|
||||||
using: 'docker'
|
using: node12
|
||||||
image: 'Dockerfile'
|
main: lib/index.js
|
||||||
|
|
||||||
branding:
|
branding:
|
||||||
icon: 'git-commit'
|
icon: git-commit
|
||||||
color: black
|
color: gray-dark
|
||||||
|
|||||||
@@ -1,73 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
if [ -z "$INPUT_AUTHOR_NAME" ] # Check if the variable is empty
|
|
||||||
then AUTHOR_NAME=$(cat "$GITHUB_EVENT_PATH" | jq '.head_commit.author.name' | sed 's/"//g') # If so, fetch the author from the event
|
|
||||||
else AUTHOR_NAME=$INPUT_AUTHOR_NAME # If not, use that value
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$INPUT_AUTHOR_EMAIL" ]
|
|
||||||
then AUTHOR_EMAIL=$(cat "$GITHUB_EVENT_PATH" | jq '.head_commit.author.email' | sed 's/"//g')
|
|
||||||
else AUTHOR_EMAIL=$INPUT_AUTHOR_EMAIL
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Using '$AUTHOR_NAME' and '$AUTHOR_EMAIL' as author information."
|
|
||||||
|
|
||||||
# Set up .netrc file with GitHub credentials
|
|
||||||
git_setup() {
|
|
||||||
cat <<- EOF > $HOME/.netrc
|
|
||||||
machine github.com
|
|
||||||
login $GITHUB_ACTOR
|
|
||||||
password $GITHUB_TOKEN
|
|
||||||
|
|
||||||
machine api.github.com
|
|
||||||
login $GITHUB_ACTOR
|
|
||||||
password $GITHUB_TOKEN
|
|
||||||
EOF
|
|
||||||
chmod 600 $HOME/.netrc
|
|
||||||
|
|
||||||
git config --global user.email "$AUTHOR_EMAIL"
|
|
||||||
git config --global user.name "$AUTHOR_NAME"
|
|
||||||
}
|
|
||||||
|
|
||||||
add() {
|
|
||||||
if $INPUT_FORCE
|
|
||||||
then find $INPUT_PATH -name "$INPUT_PATTERN" | while read x; do git add -f $x; done
|
|
||||||
else find $INPUT_PATH -name "$INPUT_PATTERN" | while read x; do git add $x; done
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# This is needed to make the check work for untracked files
|
|
||||||
echo "Staging files in commit path..."
|
|
||||||
add
|
|
||||||
|
|
||||||
echo "Checking for uncommitted changes in the git working tree..."
|
|
||||||
# This section only runs if there have been file changes
|
|
||||||
if ! git diff --cached --exit-code
|
|
||||||
then
|
|
||||||
git_setup
|
|
||||||
|
|
||||||
git fetch
|
|
||||||
|
|
||||||
# Verify if the branch needs to be created
|
|
||||||
if ! git rev-parse --verify --quiet "${GITHUB_REF:11}"
|
|
||||||
then
|
|
||||||
echo "Creating branch..."
|
|
||||||
git branch "${GITHUB_REF:11}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Switch to branch from current workflow run
|
|
||||||
echo "Switching branch..."
|
|
||||||
git checkout "${GITHUB_REF:11}"
|
|
||||||
|
|
||||||
echo "Adding files..."
|
|
||||||
add
|
|
||||||
|
|
||||||
echo "Creating commit..."
|
|
||||||
git commit -m "$INPUT_MESSAGE" --author="$AUTHOR_NAME <$AUTHOR_EMAIL>"
|
|
||||||
|
|
||||||
echo "Pushing to repo..."
|
|
||||||
git push --set-upstream origin "${GITHUB_REF:11}"
|
|
||||||
else
|
|
||||||
echo "Working tree clean. Nothing to commit."
|
|
||||||
fi
|
|
||||||
1
lib/index.js
Normal file
1
lib/index.js
Normal file
File diff suppressed because one or more lines are too long
1712
package-lock.json
generated
Normal file
1712
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
48
package.json
Normal file
48
package.json
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
{
|
||||||
|
"name": "add-and-commit",
|
||||||
|
"version": "5.0.0",
|
||||||
|
"description": "Add & commit files from a path directly from GitHub Actions",
|
||||||
|
"main": "lib/index.js",
|
||||||
|
"scripts": {
|
||||||
|
"build": "npm run inputs && ncc build src/main.ts --minify --out lib",
|
||||||
|
"watch": "ncc build src/main.ts --watch --out lib",
|
||||||
|
"all-contributors-badge": "ts-node scripts/all-contributors-badge",
|
||||||
|
"changelog": "ts-node scripts/changelog.ts",
|
||||||
|
"inputs": "ts-node scripts/inputs.ts",
|
||||||
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git+https://github.com/EndBug/add-and-commit.git"
|
||||||
|
},
|
||||||
|
"keywords": [
|
||||||
|
"github",
|
||||||
|
"action",
|
||||||
|
"version",
|
||||||
|
"npm",
|
||||||
|
"node"
|
||||||
|
],
|
||||||
|
"author": "Federico Grandi <fgrandi30@gmail.com>",
|
||||||
|
"license": "MIT",
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/EndBug/add-and-commit/issues"
|
||||||
|
},
|
||||||
|
"homepage": "https://github.com/EndBug/add-and-commit#readme",
|
||||||
|
"dependencies": {
|
||||||
|
"@actions/core": "^1.2.4",
|
||||||
|
"axios": "^0.19.2",
|
||||||
|
"simple-git": "^2.19.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/node": "^12.12.54",
|
||||||
|
"@types/yamljs": "^0.2.31",
|
||||||
|
"@typescript-eslint/eslint-plugin": "^2.34.0",
|
||||||
|
"@typescript-eslint/parser": "^2.34.0",
|
||||||
|
"@vercel/ncc": "^0.23.0",
|
||||||
|
"all-contributors-cli": "^6.17.2",
|
||||||
|
"eslint": "^6.8.0",
|
||||||
|
"ts-node": "^8.10.2",
|
||||||
|
"typescript": "^4.0.2",
|
||||||
|
"yamljs": "^0.3.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
20
scripts/all-contributors-badge.ts
Normal file
20
scripts/all-contributors-badge.ts
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
import * as fs from 'fs'
|
||||||
|
import { resolve } from 'path'
|
||||||
|
|
||||||
|
function path(...segments: string[]) {
|
||||||
|
return resolve(__dirname, '..', ...segments)
|
||||||
|
}
|
||||||
|
|
||||||
|
const README = fs.readFileSync(path('README.md'), { encoding: 'utf8' }),
|
||||||
|
{ contributors } = JSON.parse(fs.readFileSync(path('.all-contributorsrc'), { encoding: 'utf8' }))
|
||||||
|
if (!(contributors instanceof Array)) throw new Error('Invalid config file')
|
||||||
|
|
||||||
|
const updatedREADME = README
|
||||||
|
.split('\n')
|
||||||
|
.map(line =>
|
||||||
|
line.startsWith('[
|
||||||
|
? `[](#contributors-)`
|
||||||
|
: line
|
||||||
|
).join('\n')
|
||||||
|
|
||||||
|
fs.writeFileSync(path('README.md'), updatedREADME)
|
||||||
44
scripts/changelog.ts
Normal file
44
scripts/changelog.ts
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
import fs from 'fs'
|
||||||
|
import path from 'path'
|
||||||
|
|
||||||
|
const currentVersion = require('../package.json').version
|
||||||
|
if (!currentVersion) throw new Error('Cant\'t detect library version.')
|
||||||
|
|
||||||
|
const changelogPath = path.resolve(__dirname, '../CHANGELOG.md')
|
||||||
|
const changelog = fs.readFileSync(changelogPath, { encoding: 'utf-8' })
|
||||||
|
if (changelog.includes(`## [${currentVersion}]`))
|
||||||
|
throw new Error('Current version has already been documented.')
|
||||||
|
let futureChangelog = ''
|
||||||
|
|
||||||
|
// Add version section
|
||||||
|
let arr = changelog.split('## [Unreleased]')
|
||||||
|
arr[1] = `
|
||||||
|
|
||||||
|
## [${currentVersion}] - ${new Date().toISOString().slice(0, 10)}
|
||||||
|
### Removed:
|
||||||
|
- **[BREAKING]** ListName: description
|
||||||
|
|
||||||
|
### Added:
|
||||||
|
-
|
||||||
|
|
||||||
|
### Fixed:
|
||||||
|
- ` + arr[1]
|
||||||
|
futureChangelog = arr.join('## [Unreleased]')
|
||||||
|
|
||||||
|
// Update footer
|
||||||
|
arr = futureChangelog
|
||||||
|
.split('\n')
|
||||||
|
.map(line => line.startsWith('[Unreleased]')
|
||||||
|
? `[Unreleased]: https://github.com/EndBug/add-and-commit/compare/v${currentVersion}...HEAD`
|
||||||
|
: line)
|
||||||
|
|
||||||
|
// eslint-disable-next-line no-useless-escape
|
||||||
|
const lastVersion = ([...arr].reverse()[1]?.match(/\[([^\][]*)]/) || [])[0].replace(/[\[\]']+/g, '')
|
||||||
|
if (!lastVersion) throw new Error('Can\'t find last version in changelog.')
|
||||||
|
|
||||||
|
const lastLine = `[${currentVersion}]: https://github.com/EndBug/add-and-commit/compare/v${lastVersion}...v${currentVersion}`
|
||||||
|
if (arr[arr.length - 1] === '') arr[arr.length - 1] = lastLine
|
||||||
|
else arr.push(lastLine)
|
||||||
|
futureChangelog = arr.join('\n')
|
||||||
|
|
||||||
|
fs.writeFileSync(changelogPath, futureChangelog)
|
||||||
11
scripts/inputs.ts
Normal file
11
scripts/inputs.ts
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
import YAML from 'yamljs'
|
||||||
|
import fs from 'fs'
|
||||||
|
|
||||||
|
const actionManifest = YAML.load('action.yml'),
|
||||||
|
inputs = Object.keys(actionManifest?.inputs || {})
|
||||||
|
|
||||||
|
fs.writeFileSync('src/inputs.ts', `
|
||||||
|
// WARNING: this file is auto-generated by scripts/inputs.ts (npm run inputs), any manual edit will be overwritten.
|
||||||
|
|
||||||
|
export type Input = ${inputs.map(s => `'${s}'`).join(' | ')}
|
||||||
|
`.trimLeft())
|
||||||
3
src/inputs.ts
Normal file
3
src/inputs.ts
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
// WARNING: this file is auto-generated by scripts/inputs.ts (npm run inputs), any manual edit will be overwritten.
|
||||||
|
|
||||||
|
export type Input = 'add' | 'author_name' | 'author_email' | 'branch' | 'cwd' | 'message' | 'remove' | 'signoff' | 'tag'
|
||||||
209
src/main.ts
Normal file
209
src/main.ts
Normal file
@@ -0,0 +1,209 @@
|
|||||||
|
import { info, setFailed, getInput as getInputCore, warning, debug, startGroup, endGroup, error } from '@actions/core'
|
||||||
|
import axios from 'axios'
|
||||||
|
import path from 'path'
|
||||||
|
import simpleGit, { Response } from 'simple-git'
|
||||||
|
|
||||||
|
import { Input } from './inputs'
|
||||||
|
|
||||||
|
const baseDir = path.join(process.cwd(), getInput('cwd') || '')
|
||||||
|
const git = simpleGit({ baseDir })
|
||||||
|
console.log(`Running in ${baseDir}`);
|
||||||
|
|
||||||
|
(async () => {
|
||||||
|
await checkInputs().catch(setFailed)
|
||||||
|
|
||||||
|
startGroup('Internal logs')
|
||||||
|
info('> Staging files...')
|
||||||
|
|
||||||
|
if (getInput('add')) {
|
||||||
|
info('> Adding files...')
|
||||||
|
await add()
|
||||||
|
} else info('> No files to add.')
|
||||||
|
|
||||||
|
if (getInput('remove')) {
|
||||||
|
info('> Removing files...')
|
||||||
|
await remove()
|
||||||
|
} else info('> No files to remove.')
|
||||||
|
|
||||||
|
info('> Checking for uncommitted changes in the git working tree...')
|
||||||
|
const changedFiles = (await git.diffSummary(['--cached'])).files.length
|
||||||
|
if (changedFiles > 0) {
|
||||||
|
info(`> Found ${changedFiles} changed files.`)
|
||||||
|
|
||||||
|
await git
|
||||||
|
.addConfig('user.email', getInput('author_email'), undefined, log)
|
||||||
|
.addConfig('user.name', getInput('author_name'), undefined, log)
|
||||||
|
debug('> Current git config\n' + JSON.stringify((await git.listConfig()).all, null, 2))
|
||||||
|
|
||||||
|
await git.fetch(['--tags', '--force'], log)
|
||||||
|
|
||||||
|
info('> Switching/creating branch...')
|
||||||
|
await git
|
||||||
|
.checkout(getInput('branch'), undefined, log)
|
||||||
|
.catch(() => git.checkoutLocalBranch(getInput('branch'), log))
|
||||||
|
|
||||||
|
info('> Pulling from remote...')
|
||||||
|
await git
|
||||||
|
.fetch(undefined, log)
|
||||||
|
.pull(undefined, undefined, undefined, log)
|
||||||
|
|
||||||
|
info('> Re-staging files...')
|
||||||
|
if (getInput('add')) await add({ ignoreErrors: true })
|
||||||
|
if (getInput('remove')) await remove({ ignoreErrors: true })
|
||||||
|
|
||||||
|
info('> Creating commit...')
|
||||||
|
await git.commit(getInput('message'), undefined, {
|
||||||
|
'--author': `"${getInput('author_name')} <${getInput('author_email')}>"`,
|
||||||
|
...(getInput('signoff') ? {
|
||||||
|
'--signoff': null
|
||||||
|
} : {})
|
||||||
|
}, log)
|
||||||
|
|
||||||
|
if (getInput('tag')) {
|
||||||
|
info('> Tagging commit...')
|
||||||
|
await git.tag(getInput('tag').split(' '), log)
|
||||||
|
} else info('> No tag info provided.')
|
||||||
|
|
||||||
|
info('> Pushing commit to repo...')
|
||||||
|
await git.push('origin', getInput('branch'), { '--set-upstream': null }, log)
|
||||||
|
|
||||||
|
if (getInput('tag')) {
|
||||||
|
info('> Pushing tags to repo...')
|
||||||
|
await git.pushTags('origin', (e, d?) => log(undefined, e || d)).catch(() => {
|
||||||
|
info('> Tag push failed: deleting remote tag and re-pushing...')
|
||||||
|
return git.push(undefined, undefined, {
|
||||||
|
'--delete': null,
|
||||||
|
'origin': null,
|
||||||
|
[getInput('tag').split(' ').filter(w => !w.startsWith('-'))[0]]: null
|
||||||
|
}, log)
|
||||||
|
.pushTags('origin', log)
|
||||||
|
})
|
||||||
|
} else info('> No tags to push.')
|
||||||
|
|
||||||
|
endGroup()
|
||||||
|
info('> Task completed.')
|
||||||
|
} else {
|
||||||
|
endGroup()
|
||||||
|
info('> Working tree clean. Nothing to commit.')
|
||||||
|
}
|
||||||
|
})().catch(e => {
|
||||||
|
endGroup()
|
||||||
|
setFailed(e)
|
||||||
|
})
|
||||||
|
|
||||||
|
async function checkInputs() {
|
||||||
|
function setInput(input: Input, value: string | undefined) {
|
||||||
|
if (value) return process.env[`INPUT_${input.toUpperCase()}`] = value
|
||||||
|
else return delete process.env[`INPUT_${input.toUpperCase()}`]
|
||||||
|
}
|
||||||
|
function setDefault(input: Input, value: string) {
|
||||||
|
if (!getInput(input)) setInput(input, value)
|
||||||
|
return getInput(input)
|
||||||
|
}
|
||||||
|
|
||||||
|
const eventPath = process.env.GITHUB_EVENT_PATH,
|
||||||
|
event = eventPath && require(eventPath),
|
||||||
|
token = process.env.GITHUB_TOKEN,
|
||||||
|
isPR = process.env.GITHUB_EVENT_NAME?.includes('pull_request'),
|
||||||
|
sha = (event?.pull_request?.head?.sha || process.env.GITHUB_SHA) as string,
|
||||||
|
defaultBranch = isPR
|
||||||
|
? event?.pull_request?.head?.ref as string
|
||||||
|
: process.env.GITHUB_REF?.substring(11)
|
||||||
|
|
||||||
|
// #region GITHUB_TOKEN
|
||||||
|
if (!token) warning('The GITHUB_TOKEN env variable is missing: the action may not work as expected.')
|
||||||
|
// #endregion
|
||||||
|
|
||||||
|
// #region add, remove
|
||||||
|
if (!getInput('add') && !getInput('remove'))
|
||||||
|
throw new Error('Both \'add\' and \'remove\' are empty, the action has nothing to do.')
|
||||||
|
// #endregion
|
||||||
|
|
||||||
|
// #region author_name, author_email
|
||||||
|
let author = event?.head_commit?.author
|
||||||
|
if (sha && !author) {
|
||||||
|
info('> Unable to get commit from workflow event: trying with the GitHub API...')
|
||||||
|
|
||||||
|
// https://docs.github.com/en/rest/reference/repos#get-a-commit--code-samples
|
||||||
|
const url = `https://api.github.com/repos/${process.env.GITHUB_REPOSITORY}/commits/${sha}`,
|
||||||
|
headers = token ? {
|
||||||
|
Authorization: `Bearer ${token}`
|
||||||
|
} : undefined,
|
||||||
|
commit = (await axios.get(url, { headers }).catch(err => {
|
||||||
|
startGroup('Request error:')
|
||||||
|
info(`> Request URL: ${url}\b${err}`)
|
||||||
|
endGroup()
|
||||||
|
return undefined
|
||||||
|
}))?.data
|
||||||
|
|
||||||
|
author = commit?.commit?.author
|
||||||
|
}
|
||||||
|
|
||||||
|
if (author) {
|
||||||
|
setDefault('author_name', author.name)
|
||||||
|
setDefault('author_email', author.email)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!getInput('author_name') || !getInput('author_email')) {
|
||||||
|
const reason = !eventPath
|
||||||
|
? 'event path'
|
||||||
|
: isPR
|
||||||
|
? sha
|
||||||
|
? 'fetch commit'
|
||||||
|
: 'find commit sha'
|
||||||
|
: !event?.head_commit
|
||||||
|
? 'find commit'
|
||||||
|
: 'find commit author'
|
||||||
|
warning(`Unable to fetch author info: couldn't ${reason}.`)
|
||||||
|
setDefault('author_name', 'Add & Commit Action')
|
||||||
|
setDefault('author_email', 'actions@github.com')
|
||||||
|
}
|
||||||
|
|
||||||
|
info(`> Using '${getInput('author_name')} <${getInput('author_email')}>' as author.`)
|
||||||
|
// #endregion
|
||||||
|
|
||||||
|
// #region branch
|
||||||
|
const branch = setDefault('branch', defaultBranch || '')
|
||||||
|
if (isPR) info(`> Running for a PR, the action will use '${branch}' as ref.`)
|
||||||
|
// #endregion
|
||||||
|
|
||||||
|
// #region signoff
|
||||||
|
if (getInput('signoff')) try {
|
||||||
|
const parsed = JSON.parse(getInput('signoff'))
|
||||||
|
if (typeof parsed == 'boolean' && !parsed)
|
||||||
|
setInput('signoff', undefined)
|
||||||
|
debug(`Current signoff option: ${getInput('signoff')} (${typeof getInput('signoff')})`)
|
||||||
|
} catch {
|
||||||
|
throw new Error(`"${getInput('signoff')}" is not a valid value for the 'signoff' input: only "true" and "false" are allowed.`)
|
||||||
|
}
|
||||||
|
// #endregion
|
||||||
|
}
|
||||||
|
|
||||||
|
function getInput(name: Input) {
|
||||||
|
return getInputCore(name)
|
||||||
|
}
|
||||||
|
|
||||||
|
function log(err: any | Error, data?: any) {
|
||||||
|
if (data) console.log(data)
|
||||||
|
if (err) error(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
function add({ logWarning = true, ignoreErrors = false } = {}): Promise<void | Response<void>> | void {
|
||||||
|
if (getInput('add'))
|
||||||
|
return git.add(getInput('add').split(' '), (e: any, d?: any) => log(ignoreErrors ? null : e, d)).catch((e: Error) => {
|
||||||
|
if (ignoreErrors) return
|
||||||
|
if (e.message.includes('fatal: pathspec') && e.message.includes('did not match any files'))
|
||||||
|
logWarning && warning('Add command did not match any file.')
|
||||||
|
else throw e
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function remove({ logWarning = true, ignoreErrors = false } = {}): Promise<void | Response<void>> | void {
|
||||||
|
if (getInput('remove'))
|
||||||
|
return git.rm(getInput('remove').split(' '), (e: any, d?: any) => log(ignoreErrors ? null : e, d)).catch((e: Error) => {
|
||||||
|
if (ignoreErrors) return
|
||||||
|
if (e.message.includes('fatal: pathspec') && e.message.includes('did not match any files'))
|
||||||
|
logWarning && warning('Remove command did not match any file.')
|
||||||
|
else throw e
|
||||||
|
})
|
||||||
|
}
|
||||||
62
tsconfig.json
Normal file
62
tsconfig.json
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
/* Basic Options */
|
||||||
|
// "incremental": true, /* Enable incremental compilation */
|
||||||
|
"target": "es6", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */
|
||||||
|
"module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
|
||||||
|
// "allowJs": true, /* Allow javascript files to be compiled. */
|
||||||
|
// "checkJs": true, /* Report errors in .js files. */
|
||||||
|
// "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */
|
||||||
|
// "declaration": true, /* Generates corresponding '.d.ts' file. */
|
||||||
|
// "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */
|
||||||
|
// "sourceMap": true, /* Generates corresponding '.map' file. */
|
||||||
|
// "outFile": "./", /* Concatenate and emit output to single file. */
|
||||||
|
"outDir": "./build", /* Redirect output structure to the directory. */
|
||||||
|
"rootDir": "./src", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
|
||||||
|
// "composite": true, /* Enable project compilation */
|
||||||
|
// "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */
|
||||||
|
// "removeComments": true, /* Do not emit comments to output. */
|
||||||
|
// "noEmit": true, /* Do not emit outputs. */
|
||||||
|
// "importHelpers": true, /* Import emit helpers from 'tslib'. */
|
||||||
|
// "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */
|
||||||
|
// "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */
|
||||||
|
/* Strict Type-Checking Options */
|
||||||
|
"strict": true, /* Enable all strict type-checking options. */
|
||||||
|
"noImplicitAny": false, /* Raise error on expressions and declarations with an implied 'any' type. */
|
||||||
|
// "strictNullChecks": true, /* Enable strict null checks. */
|
||||||
|
// "strictFunctionTypes": true, /* Enable strict checking of function types. */
|
||||||
|
// "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */
|
||||||
|
// "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */
|
||||||
|
// "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */
|
||||||
|
// "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */
|
||||||
|
/* Additional Checks */
|
||||||
|
// "noUnusedLocals": true, /* Report errors on unused locals. */
|
||||||
|
// "noUnusedParameters": true, /* Report errors on unused parameters. */
|
||||||
|
// "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */
|
||||||
|
// "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */
|
||||||
|
/* Module Resolution Options */
|
||||||
|
// "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */
|
||||||
|
// "baseUrl": "./", /* Base directory to resolve non-absolute module names. */
|
||||||
|
// "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */
|
||||||
|
// "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */
|
||||||
|
// "typeRoots": [], /* List of folders to include type definitions from. */
|
||||||
|
// "types": [], /* Type declaration files to be included in compilation. */
|
||||||
|
// "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */
|
||||||
|
"esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
|
||||||
|
// "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */
|
||||||
|
// "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
|
||||||
|
/* Source Map Options */
|
||||||
|
// "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */
|
||||||
|
// "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
|
||||||
|
// "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */
|
||||||
|
// "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */
|
||||||
|
/* Experimental Options */
|
||||||
|
// "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */
|
||||||
|
// "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */
|
||||||
|
},
|
||||||
|
"exclude": [
|
||||||
|
"node_modules",
|
||||||
|
"**/*.test.ts",
|
||||||
|
"scripts"
|
||||||
|
]
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user