Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: lint

on:
pull_request:
branches_ignore: []

jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
go: ['1.20']

name: Documentation and Linting
steps:

- uses: actions/checkout@v2
with:
path: go/src/github.com/vbatts/git-validation

# commit for v1 release
- uses: actions/setup-go@0caeaed6fd66a828038c2da3c0f662a42862658f
with:
go-version: ${{ matrix.go }}

- name: lint
env:
GOPATH: /home/runner/work/git-validation/git-validation/go
run: |
set -x
export PATH=$GOPATH/bin:$PATH
cd go/src/github.com/vbatts/git-validation
go run mage.go -v lint
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ using the `GIT_CHECK_EXCLUDE` environment variable. Multiple paths should be sep
When making a change, verify it with:

```shell
go run mage.go vet build test
go run mage.go lint vet build test
```

## Rules
Expand Down
4 changes: 4 additions & 0 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ var (
flTravisPROnly = flag.Bool("travis-pr-only", true, "when on travis, only run validations if the CI-Build is checking pull-request build")
)

func init() {
logrus.SetOutput(os.Stderr)
}

func main() {
flag.Parse()

Expand Down
5 changes: 2 additions & 3 deletions validate/rules.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,15 +75,14 @@ func SanitizeFilters(filtStr string) (filters []string) {
//
// Some `includes` rules have values assigned to them.
// i.e. -run "dco,message_regexp='^JIRA-[0-9]+ [A-Z].*$'"
//
func FilterRules(rules []Rule, includes []string) []Rule {
ret := []Rule{}

for _, r := range rules {
for i := range includes {
if strings.Contains(includes[i], "=") {
chunks := strings.SplitN(includes[i], "=", 2)
if strings.ToLower(r.Name) == strings.ToLower(chunks[0]) {
if strings.EqualFold(r.Name, chunks[0]) {
// for these rules, the Name won't be unique per se. There may be
// multiple "regexp=" with different values. We'll need to set the
// .Value = chunk[1] and ensure r is dup'ed so they don't clobber
Expand All @@ -93,7 +92,7 @@ func FilterRules(rules []Rule, includes []string) []Rule {
ret = append(ret, newR)
}
} else {
if strings.ToLower(r.Name) == strings.ToLower(includes[i]) {
if strings.EqualFold(r.Name, includes[i]) {
ret = append(ret, r)
}
}
Expand Down
13 changes: 11 additions & 2 deletions validate/runner.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"os"
"path/filepath"

"github.com/sirupsen/logrus"
"github.com/vbatts/git-validation/git"
)

Expand All @@ -29,7 +30,11 @@ func NewRunner(root string, rules []Rule, commitrange string, verbose bool) (*Ru
if err != nil {
return nil, err
}
defer os.Chdir(cwd)
defer func() {
if err := os.Chdir(cwd); err != nil {
logrus.Warnf("changing working directory to %q failed: %s", cwd, err)
}
}()

if err := os.Chdir(newroot); err != nil {
return nil, err
Expand All @@ -56,7 +61,11 @@ func (r *Runner) Run() error {
if err != nil {
return err
}
defer os.Chdir(cwd)
defer func() {
if err := os.Chdir(cwd); err != nil {
logrus.Warnf("changing working directory to %q failed: %s", cwd, err)
}
}()

if err := os.Chdir(r.Root); err != nil {
return err
Expand Down