2019-09-19 22:21:08 +02:00
2019-09-19 22:09:51 +02:00
2019-09-17 18:50:21 +02:00
2019-09-19 22:15:41 +02:00
2019-09-17 18:53:53 +02:00
2019-09-19 22:21:08 +02:00

Add & Commit

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...

This is heavily inspired by git-auto-commit-action (by Stefan Zweifel): 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.

Usage

Add a step like this to your workflow:

- name: Commit changes # This is the step name that will be displayed in your runs
  uses: EndBug/add-and-commit@v2.1.0 # You can change this to use a specific version
  with: # See more info about inputs below
    author_name: Your Name
    author_email: mail@example.com
    message: "Your commit message"
    path: "."
    pattern: "*.js"
    force: false
  env:
    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:

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.
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.

Example:

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:

name: Lint source code
on: push

jobs: 
  run:
    name: Lint with ESLint
    runs-on: ubuntu-latest
    steps: 
    - name: Checkout repo
      uses: actions/checkout@master

    - name: Set up Node.js
      uses: actions/setup-node@master
      with:
        node-version: 10.0.0
    
    - name: Install dependencies
      run: npm install

    - name: Update source code
      run: eslint "src/**" --fix

    - name: Commit changes
      uses: EndBug/add-and-commit@v2.1.0 
      with:
        author_name: Your Name
        author_email: mail@example.com
        message: "Your commit message"
        path: "."
        pattern: "*.js"
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

License

This action is distributed under the MIT license, check the license for more info.

Description
No description provided
Readme MIT 15 MiB
Languages
TypeScript 100%