Viktoras 69a4e811d7
Update pkg/printers/github.go
Co-Authored-By: Bot from GolangCI <42910462+golangcibot@users.noreply.github.com>
2020-04-11 00:12:29 +03:00

41 lines
1.0 KiB
Go

package printers
import (
"context"
"fmt"
"github.com/golangci/golangci-lint/pkg/logutils"
"github.com/golangci/golangci-lint/pkg/result"
)
type github struct {
}
// Github output format outputs issues according to Github actions format:
// https://help.github.com/en/actions/reference/workflow-commands-for-github-actions#setting-an-error-message
func NewGithub() Printer {
return &github{}
}
// print each line as: ::error file=app.js,line=10,col=15::Something went wrong
func formatIssueAsGithub(issue *result.Issue) string {
ret := fmt.Sprintf("::error file=%s,line=%d", issue.FilePath(), issue.Line())
if issue.Pos.Column != 0 {
ret += fmt.Sprintf(",col=%d", issue.Pos.Column)
}
ret += fmt.Sprintf("::%s (%s)", issue.Text, issue.FromLinter)
return ret
}
func (g *github) Print(ctx context.Context, issues []result.Issue) error {
for ind := range issues {
issue := &issues[ind]
_, err := fmt.Fprintln(logutils.StdOut, formatIssueAsGithub(issue))
if err != nil {
return err
}
}
return nil
}