Compare commits

...

19 Commits

Author SHA1 Message Date
Stefan Zweifel
c180c695f2 Release v4.2.0 2020-05-10 13:16:25 +02:00
Stefan Zweifel
c1a70c9013 Update Changelog 2020-05-10 13:12:24 +02:00
Stefan Zweifel
02c4f2cf78 Merge pull request #73 from spawnia/restructure-readme
Bundle limitations and gotchas together in the README.md
2020-05-10 13:11:32 +02:00
Stefan Zweifel
3c687aa8ba Replace head_ref with branch name example 2020-05-10 13:09:18 +02:00
spawnia
a69eabaead clarify branch option 2020-05-10 12:55:07 +02:00
spawnia
9f2c45c9eb Remove unneeded hints to re-specify the default branch 2020-05-10 12:51:21 +02:00
spawnia
5bf88dc2fd Merge branch 'master' into restructure-readme 2020-05-10 12:48:11 +02:00
Stefan Zweifel
fd2aab7c5b Merge pull request #75 from stefanzweifel/use-head-ref-as-default-value
Use github.head_ref as branch default value
2020-05-10 12:31:26 +02:00
Stefan Zweifel
f342c95aa2 Use github.head_ref as branch default value 2020-05-09 12:44:07 +02:00
Benedikt Franke
1157d7bbe9 Shorten 2020-05-06 00:22:05 +02:00
Benedikt Franke
58b79711d8 Add example 2020-05-06 00:21:35 +02:00
Benedikt Franke
f5f76eb1f4 Consolidate more 2020-05-06 00:00:33 +02:00
Benedikt Franke
5513d18f64 Bundle limitations and gotchas together in the README.md 2020-05-05 23:54:32 +02:00
Stefan Zweifel
6ef5688e81 Update bug_report.md 2020-05-01 12:56:39 +02:00
Stefan Zweifel
e02ededdeb Update README with instructions and limitations
Closes #69
2020-05-01 12:56:23 +02:00
Stefan Zweifel
2f5e73df85 Release v4.1.6 2020-04-28 13:28:19 +02:00
Stefan Zweifel
cc16347545 Merge pull request #68 from stefanzweifel/fix-67
Inline User Configuration when creating a Tag
2020-04-28 13:27:03 +02:00
Stefan Zweifel
1ee136f439 Inline user config with tag command 2020-04-28 13:12:43 +02:00
Stefan Zweifel
7fdc480651 Update README.md 2020-04-24 10:14:37 +02:00
5 changed files with 87 additions and 85 deletions

View File

@@ -7,8 +7,10 @@ assignees: ''
---
<!-- Before opening an issue, have you tried solving your problem by explicitly setting the `branch`-value in your workflow? -->
**Version of the Action**
`v2.x.x`
`v4.x.x`
**Describe the bug**
A clear and concise description of what the bug is.
@@ -26,5 +28,11 @@ A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Used Workflow**
```yaml
# Paste the Workflow you've used here
```
**Additional context**
Add any other context about the problem here.

View File

@@ -4,10 +4,22 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
## [Unreleased](https://github.com/stefanzweifel/git-auto-commit-action/compare/v4.1.5...HEAD)
## [Unreleased](https://github.com/stefanzweifel/git-auto-commit-action/compare/v4.2.0...HEAD)
> TBD
## [v4.2.0](https://github.com/stefanzweifel/git-auto-commit-action/compare/v4.1.6...v4.2.0) - 2020-05-10
### Changed
- Use `${{ github.head_ref }}` as default branch value. Therefore, the branch name when listening for `pull_request`-events is optional. [#75](https://github.com/stefanzweifel/git-auto-commit-action/pull/75), [#73](https://github.com/stefanzweifel/git-auto-commit-action/pull/73)
## [v4.1.6](https://github.com/stefanzweifel/git-auto-commit-action/compare/v4.1.5...v4.1.6) - 2020-04-28
### Fixes
- Fix issue where tags could not be created correctly [#68](https://github.com/stefanzweifel/git-auto-commit-action/pull/68)
## [v4.1.5](https://github.com/stefanzweifel/git-auto-commit-action/compare/v4.1.4...v4.1.5) - 2020-04-23
### Added

144
README.md
View File

@@ -1,29 +1,25 @@
# git-auto-commit-action
# git-auto-commit Action
This GitHub Action automatically commits files which have been changed during a Workflow run and pushes the commit back to GitHub.
The default committer is "GitHub Actions <actions@github.com>" and the default author of the commit is "Your GitHub Username <github_username@users.noreply.github.com>".
> The GitHub Action for committing files for the 80% use case.
If no changes are detected, the Action does nothing.
This GitHub Action automatically commits files which have been changed during a Workflow run and pushes the commit back to GitHub.
The default committer is "GitHub Actions <actions@github.com>", and the default author of the commit is "Your GitHub Username <github_username@users.noreply.github.com>".
This Action has been inspired and adapted from the [auto-commit](https://github.com/cds-snc/github-actions/tree/master/auto-commit
)-Action of the Canadian Digital Service and this [commit](https://github.com/elstudio/actions-js-build/blob/41d604d6e73d632e22eac40df8cc69b5added04b/commit/entrypoint.sh)-Action by Eric Johnson.
*This Action currently can't be used in conjunction with pull requests of forks. See [issue #25](https://github.com/stefanzweifel/git-auto-commit-action/issues/25) for more information.*
## Usage
**Note:** This Action requires that you use `action/checkout@v2` or above to checkout your repository.
Add the following step at the end of your job.
Add the following step at the end of your job, after other steps that might add or change files.
```yaml
- uses: stefanzweifel/git-auto-commit-action@v4.1.5
- uses: stefanzweifel/git-auto-commit-action@v4.2.0
with:
# Required
commit_message: Apply automatic changes
# Optional name of the branch the commit should be pushed to
# Required if Action is used in Workflow listening to the `pull_request` event
branch: ${{ github.head_ref }}
# Optional branch to push to, defaults to the current branch
branch: feature-123
# Optional git params
commit_options: '--no-verify --signoff'
@@ -39,28 +35,26 @@ Add the following step at the end of your job.
commit_user_email: my-github-actions-bot@example.org
commit_author: Author <actions@github.com>
# Optional tag message. Will create and push a new tag to the remote repository
# Optional tag message
# Action will create and push a new tag to the remote repository and the defined branch
tagging_message: 'v1.0.0'
```
The Action will only commit files back, if changes are available. The resulting commit **will not trigger** another GitHub Actions Workflow run!
## Example
We recommend to use this Action in Workflows, which listen to the `pull_request` event. You can then use the option `branch: ${{ github.head_ref }}` to set up the branch name correctly.
If you don't pass a branch name, the Action will try to push the commit to a branch with the same name, as with which the repo has been checked out.
In this example, we're running `php-cs-fixer` in a PHP project to fix the codestyle automatically, then commit possible changed files back to the repository.
## Example Usage
This Action will only work, if the job in your Workflow changes files.
The most common use case for this, is when you're running a Linter or Code-Style fixer on GitHub Actions.
In this example I'm running `php-cs-fixer` in a PHP project.
### Example on `pull_request` event
Note that we explicitly specify `${{ github.head_ref }}` in the checkout Action.
This is required in order to work with the `pull_request` event (or any other non-`push` event).
```yaml
name: php-cs-fixer
on: pull_request
on:
pull_request:
push:
branches:
- "master"
jobs:
php-cs-fixer:
@@ -74,85 +68,73 @@ jobs:
- name: Run php-cs-fixer
uses: docker://oskarstark/php-cs-fixer-ga
- uses: stefanzweifel/git-auto-commit-action@v4.1.5
- uses: stefanzweifel/git-auto-commit-action@v4.2.0
with:
commit_message: Apply php-cs-fixer changes
branch: ${{ github.head_ref }}
```
### Example on `push` event
## Limitations & Gotchas
### Checkout the correct branch
You must use `action/checkout@v2` or later versions to checkout the repository.
In non-`push` events, such as `pull_request`, make sure to specify the `ref` to checkout:
```yaml
name: php-cs-fixer
on: push
jobs:
php-cs-fixer:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Run php-cs-fixer
uses: docker://oskarstark/php-cs-fixer-ga
- uses: stefanzweifel/git-auto-commit-action@v4.1.5
with:
commit_message: Apply php-cs-fixer changes
- uses: actions/checkout@v2
with:
ref: ${{ github.head_ref }}
```
### Inputs
You have to do this do avoid that the `checkout`-Action clones your repository in a detached state.
### Commits of this Action do not trigger new Workflow runs
The resulting commit **will not trigger** another GitHub Actions Workflow run.
This is due to [limititations set by GitHub](https://help.github.com/en/actions/reference/events-that-trigger-workflows#triggering-new-workflows-using-a-personal-access-token).
> When you use the repository's GITHUB_TOKEN to perform tasks on behalf of the GitHub Actions app, events triggered by the GITHUB_TOKEN will not create a new workflow run. This prevents you from accidentally creating recursive workflow runs.
You can change this by creating a new [Personal Access Token (PAT)](https://github.com/settings/tokens/new),
storing the token as a secret in your repository and then passing the new token to the [`actions/checkout`](https://github.com/actions/checkout#usage) Action.
```yaml
- uses: actions/checkout@v2
with:
token: ${{ secrets.PAT_TOKEN }}
```
### Unable to commit into PRs from forks
GitHub currently prohibits Actions to push commits to forks, even when they created a PR and allow edits.
See [issue #25](https://github.com/stefanzweifel/git-auto-commit-action/issues/25) for more information.
## Inputs
Checkout [`action.yml`](https://github.com/stefanzweifel/git-auto-commit-action/blob/master/action.yml) for a full list of supported inputs.
## Outputs
You can use these outputs to trigger other Actions in your Workflow run based on the result of `git-auto-commit-action`.
- `changes_detected`: Returns either "true" or "false" if the repository was dirty and files have changed.
## Troubleshooting
### Can't push commit to repository
If your Workflow can't push the commit to the repository because of authentication issues, please update your Workflow configuration and usage of [`actions/checkout`](https://github.com/actions/checkout#usage). (Updating the `token` value with a Personal Access Token should fix your issues)
### Action does not push commit to repository
### Commit of this Action does not trigger a new Workflow run
As mentioned in the [Usage](#Usage) section, the commit created by this Action **will not trigger** a new Workflow run automatically.
Make sure to [checkout the correct branch](#checkout-the-correct-branch).
This is due to limitations set up by GitHub:
### Action does not push commit to repository: Authentication Issue
> An action in a workflow run can't trigger a new workflow run. For example, if an action pushes code using the repository's GITHUB_TOKEN, a new workflow will not run even when the repository contains a workflow configured to run when push events occur.
[Source](https://help.github.com/en/actions/reference/events-that-trigger-workflows)
If your Workflow can't push the commit to the repository because of authentication issues,
please update your Workflow configuration and usage of [`actions/checkout`](https://github.com/actions/checkout#usage).
You can change this by creating a new [Personal Access Token (PAT)](https://github.com/settings/tokens/new), storing the token as a secret in your repository and then passing the new token to the [`actions/checkout`](https://github.com/actions/checkout#usage) Action.
Updating the `token` value with a Personal Access Token should fix your issues.
#### Example Workflow
### No new workflows are triggered by the commit of this action
```yaml
name: php-cs-fixer
on: push
jobs:
php-cs-fixer:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
token: ${{ secrets.PAT_TOKEN }}
- name: Run php-cs-fixer
uses: docker://oskarstark/php-cs-fixer-ga
- uses: stefanzweifel/git-auto-commit-action@v4.1.5
with:
commit_message: Apply php-cs-fixer changes
```
## Known Issues
- GitHub currently prohibits Actions like this to push changes from a fork to the upstream repository. See [issue #25](https://github.com/stefanzweifel/git-auto-commit-action/issues/25) for more information.
This is due to limitations set up by GitHub, [commits of this Action do not trigger new Workflow runs](#commits-of-this-action-do-not-trigger-new-workflow-runs).
## Versioning

View File

@@ -10,7 +10,7 @@ inputs:
branch:
description: Git branch name, where changes should be pushed too. Required if Action is used on the `pull_request` event
required: false
default: ''
default: ${{ github.head_ref }}
commit_options:
description: Commit options (eg. --no-verify)
required: false

View File

@@ -66,7 +66,7 @@ _tag_commit() {
if [ -n "$INPUT_TAGGING_MESSAGE" ]
then
echo "::debug::Create tag $INPUT_TAGGING_MESSAGE";
git tag -a "$INPUT_TAGGING_MESSAGE" -m "$INPUT_TAGGING_MESSAGE";
git -c user.name="$INPUT_COMMIT_USER_NAME" -c user.email="$INPUT_COMMIT_USER_EMAIL" tag -a "$INPUT_TAGGING_MESSAGE" -m "$INPUT_TAGGING_MESSAGE";
else
echo " No tagging message supplied. No tag will be added.";
fi