Documentation ΒΆ
Index ΒΆ
- func CleanPath(path, workdir string) string
- func RunFromResult(ctx context.Context, c CommentService, results []*CheckResult, ...) error
- type BulkCommentService
- type CheckResult
- type CheckStyleError
- type CheckStyleFile
- type CheckStyleParser
- type CheckStyleResult
- type Comment
- type CommentService
- type DiffCmd
- type DiffService
- type DiffString
- type EmptyDiff
- type ErrorformatParser
- type FilteredCheck
- type FilteredResult
- type FilteredResultMap
- type Parser
- type ParserOpt
- type RawCommentWriter
- type Result
- type ResultMap
- type Reviewdog
- type UnifiedCommentWriter
Examples ΒΆ
Constants ΒΆ
This section is empty.
Variables ΒΆ
This section is empty.
Functions ΒΆ
func CleanPath ΒΆ
CleanPath clean up given path. If workdir is not empty, it returns relative path to the given workdir.
func RunFromResult ΒΆ
func RunFromResult(ctx context.Context, c CommentService, results []*CheckResult, filediffs []*diff.FileDiff, strip int, toolname string, filterMode difffilter.Mode, failOnError bool) error
RunFromResult creates a new Reviewdog and runs it with check results.
Types ΒΆ
type BulkCommentService ΒΆ
type BulkCommentService interface { CommentService Flush(context.Context) error }
BulkCommentService posts comments all at once when Flush() is called. Flush() will be called at the end of reviewdog run.
type CheckResult ΒΆ
type CheckResult struct { Path string // relative file path Lnum int // line number Col int // column number (1 <tab> == 1 character column) Message string // error message Lines []string // Original error lines (often one line) }
CheckResult represents a checked result of static analysis tools. :h error-file-format
type CheckStyleError ΒΆ
type CheckStyleError struct { Column int `xml:"column,attr,omitempty"` Line int `xml:"line,attr"` Message string `xml:"message,attr"` Severity string `xml:"severity,attr,omitempty"` Source string `xml:"source,attr,omitempty"` }
CheckStyleError represents <error line="1" column="10" severity="error" message="msg" source="src" />
type CheckStyleFile ΒΆ
type CheckStyleFile struct { Name string `xml:"name,attr"` Errors []*CheckStyleError `xml:"error"` }
CheckStyleFile represents <file name="fname"><error ... />...</file>
type CheckStyleParser ΒΆ
type CheckStyleParser struct{}
CheckStyleParser is checkstyle parser.
func (*CheckStyleParser) Parse ΒΆ
func (p *CheckStyleParser) Parse(r io.Reader) ([]*CheckResult, error)
type CheckStyleResult ΒΆ
type CheckStyleResult struct { XMLName xml.Name `xml:"checkstyle"` Version string `xml:"version,attr"` Files []*CheckStyleFile `xml:"file,omitempty"` }
CheckStyleResult represents checkstyle XML result. <?xml version="1.0" encoding="utf-8"?><checkstyle version="4.3"><file ...></file>...</checkstyle>
References:
type Comment ΒΆ
type Comment struct { Result *FilteredCheck ToolName string Body string }
Comment represents a reported result as a comment.
type CommentService ΒΆ
CommentService is an interface which posts Comment.
func MultiCommentService ΒΆ
func MultiCommentService(services ...CommentService) CommentService
MultiCommentService creates a comment service that duplicates its post to all the provided comment services.
type DiffCmd ΒΆ
type DiffCmd struct {
// contains filtered or unexported fields
}
type DiffService ΒΆ
DiffService is an interface which get diff.
func NewDiffString ΒΆ
func NewDiffString(diff string, strip int) DiffService
type DiffString ΒΆ
type DiffString struct {
// contains filtered or unexported fields
}
func (*DiffString) Strip ΒΆ
func (d *DiffString) Strip() int
type ErrorformatParser ΒΆ
type ErrorformatParser struct {
// contains filtered or unexported fields
}
ErrorformatParser is errorformat parser.
func NewErrorformatParser ΒΆ
func NewErrorformatParser(efm *errorformat.Errorformat) *ErrorformatParser
NewErrorformatParser returns a new ErrorformatParser.
func NewErrorformatParserString ΒΆ
func NewErrorformatParserString(efms []string) (*ErrorformatParser, error)
NewErrorformatParserString returns a new ErrorformatParser from errorformat in string representation.
func (*ErrorformatParser) Parse ΒΆ
func (p *ErrorformatParser) Parse(r io.Reader) ([]*CheckResult, error)
type FilteredCheck ΒΆ
type FilteredCheck struct { *CheckResult ShouldReport bool LnumDiff int // 0 if the result is outside diff. InDiffFile bool // false if the result is outside diff files. OldPath string OldLine int }
FilteredCheck represents CheckResult with filtering info.
func FilterCheck ΒΆ
func FilterCheck(results []*CheckResult, diff []*diff.FileDiff, strip int, cwd string, mode difffilter.Mode) []*FilteredCheck
FilterCheck filters check results by diff. It doesn't drop check which is not in diff but set FilteredCheck.ShouldReport field false.
type FilteredResult ΒΆ
type FilteredResult struct { Level string FilteredCheck []*FilteredCheck }
type FilteredResultMap ΒΆ
type FilteredResultMap struct {
// contains filtered or unexported fields
}
FilteredResultMap represents a concurrent-safe map to store CheckResults generated by concurrent jobs.
func (*FilteredResultMap) Len ΒΆ
func (rm *FilteredResultMap) Len() int
Len returns the length of FilteredResultMap count. Len() is not yet officially not supported by Go. (ref: https://github.com/golang/go/issues/20680)
func (*FilteredResultMap) Load ΒΆ
func (rm *FilteredResultMap) Load(key string) (*FilteredResult, error)
Load fetches FilteredResult from FilteredResultMap
func (*FilteredResultMap) Range ΒΆ
func (rm *FilteredResultMap) Range(f func(key string, val *FilteredResult))
Range retrieves `key` and `values` from FilteredResultMap iteratively.
func (*FilteredResultMap) Store ΒΆ
func (rm *FilteredResultMap) Store(key string, r *FilteredResult)
Store saves a new []*FilteredCheckFilteredResult into FilteredResultMap.
type Parser ΒΆ
type Parser interface {
Parse(r io.Reader) ([]*CheckResult, error)
}
Parser is an interface which parses compilers, linters, or any tools results.
func NewCheckStyleParser ΒΆ
func NewCheckStyleParser() Parser
NewCheckStyleParser returns a new CheckStyleParser.
type ParserOpt ΒΆ
ParserOpt represents option to create Parser. Either FormatName or Errorformat should be specified.
type RawCommentWriter ΒΆ
type RawCommentWriter struct {
// contains filtered or unexported fields
}
RawCommentWriter is comment writer which writes results to given writer without any formatting.
func NewRawCommentWriter ΒΆ
func NewRawCommentWriter(w io.Writer) *RawCommentWriter
type Result ΒΆ
type Result struct { Level string CheckResults []*CheckResult // Optional. Report an error of the command execution. CmdErr error }
type ResultMap ΒΆ
type ResultMap struct {
// contains filtered or unexported fields
}
ResultMap represents a concurrent-safe map to store CheckResults generated by concurrent jobs.
func (*ResultMap) Len ΒΆ
Len returns the length of ResultMap count. Len() is not yet officially not supported by Go. (ref: https://github.com/golang/go/issues/20680)
type Reviewdog ΒΆ
type Reviewdog struct {
// contains filtered or unexported fields
}
Reviewdog represents review dog application which parses result of compiler or linter, get diff and filter the results by diff, and report filtered results.
Example ΒΆ
difftext := `diff --git a/golint.old.go b/golint.new.go index 34cacb9..a727dd3 100644 --- a/golint.old.go +++ b/golint.new.go @@ -2,6 +2,12 @@ package test var V int +var NewError1 int + // invalid func comment func F() { } + +// invalid func comment2 +func F2() { +} ` lintresult := `golint.new.go:3:5: exported var V should have comment or be unexported golint.new.go:5:5: exported var NewError1 should have comment or be unexported golint.new.go:7:1: comment on exported function F should be of the form "F ..." golint.new.go:11:1: comment on exported function F2 should be of the form "F2 ..." ` efm, _ := errorformat.NewErrorformat([]string{`%f:%l:%c: %m`}) p := NewErrorformatParser(efm) c := NewRawCommentWriter(os.Stdout) d := NewDiffString(difftext, 1) app := NewReviewdog("tool name", p, c, d, difffilter.ModeAdded, false) app.Run(context.Background(), strings.NewReader(lintresult))
Output: golint.new.go:5:5: exported var NewError1 should have comment or be unexported golint.new.go:11:1: comment on exported function F2 should be of the form "F2 ..."
func NewReviewdog ΒΆ
func NewReviewdog(toolname string, p Parser, c CommentService, d DiffService, filterMode difffilter.Mode, failOnError bool) *Reviewdog
NewReviewdog returns a new Reviewdog.
type UnifiedCommentWriter ΒΆ
type UnifiedCommentWriter struct {
// contains filtered or unexported fields
}
UnifiedCommentWriter is comment writer which writes results to given writer in one of following unified formats.
Format:
- <file>: [<tool name>] <message>
- <file>:<lnum>: [<tool name>] <message>
- <file>:<lnum>:<col>: [<tool name>] <message>
where <message> can be multiple lines.
func NewUnifiedCommentWriter ΒΆ
func NewUnifiedCommentWriter(w io.Writer) *UnifiedCommentWriter
Source Files ΒΆ
Directories ΒΆ
Path | Synopsis |
---|---|
Package cienv provides utility for environment variable in CI services.
|
Package cienv provides utility for environment variable in CI services. |
cmd
|
|
Package diff provides a utility to parse unified diff.
|
Package diff provides a utility to parse unified diff. |
appengine/statik
Package statik contains static assets.
|
Package statik contains static assets. |
Package project provides utility for reviewdog execution based on project config.
|
Package project provides utility for reviewdog execution based on project config. |
service
|
|