/auto-gofmt

Auto format golang code

Primary LanguageShell

auto-gofmt

CodeFactor

A GitHub action for auto formatting your golang code using gofumpt

Usage

Parameters

Parameter Required Default Description
commit_message "Formatting go code" Custom git commit message, will be ignored if used with same_commit
same_commit false Update the current commit instead of creating a new one, created by Joren Broekema, this command works only with the checkout action set to fetch depth '0' (see example 1)
commit_options - Custom git commit options
push_options - Custom git push options
formatter_options -l -w . gofumpt options (by default it applies to the whole repository)
file_pattern * Custom git add file pattern, can't be used with only_changed!
dry false Runs the action in dry mode. Files wont get changed and the action fails if there are unformatted files.
only_changed false Only format changed files, can't be used with file_pattern! This command works only with the checkout action set to fetch depth '0' (see example 1)
github_token ${{ github.token }} The default GITHUB_TOKEN or a Personal Access Token

Note: using the same_commit option may lead to problems if other actions are relying on the commit being the same before and after the prettier action has ran. Keep this in mind.

Example Config

Example 1 (using the only_changed or same_commit option on PR)

name: Continuous Integration

on:
  pull_request:
    branches: [master]

jobs:
  prettier:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout
      uses: actions/checkout@v2
      with:
        # Make sure the actual branch is checked out when running on pull requests
        ref: ${{ github.head_ref }}
        # This is important to fetch the changes to the previous commit
        fetch-depth: 0

    - name: Format code
      uses: iamnotaturtle/auto-gofmt@v1.0
      with:
        # This part is also where you can pass other options, for example:
        only_changed: True

More documentation for writing a workflow can be found here.

References

Thanks to these great projects for helping me out: