Documentation ΒΆ
Index ΒΆ
Examples ΒΆ
Constants ΒΆ
This section is empty.
Variables ΒΆ
This section is empty.
Functions ΒΆ
This section is empty.
Types ΒΆ
type AddedLine ΒΆ
type AddedLine struct { Path string // path to new file Lnum int // the line number in the new file LnumDiff int // the line number of the diff (Same as Lnumdiff of diff.Line) Content string // line content }
AddedLine represents added line in diff.
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 { *CheckResult Body string LnumDiff int ToolName string }
Comment represents a reported result as a comment.
type CommentService ΒΆ
CommentService is an interface which posts Comment.
type CommentWriter ΒΆ
type CommentWriter struct {
// contains filtered or unexported fields
}
func NewCommentWriter ΒΆ
func NewCommentWriter(w io.Writer) *CommentWriter
func (*CommentWriter) Post ΒΆ
func (s *CommentWriter) Post(c *Comment) error
type DiffService ΒΆ
DiffService is an interface which get diff.
func NewDiffCmd ΒΆ
func NewDiffCmd(cmd *exec.Cmd, strip int) DiffService
func NewDiffString ΒΆ
func NewDiffString(diff string, strip int) DiffService
type DiffString ΒΆ
type DiffString struct {
// contains filtered or unexported fields
}
func (*DiffString) Diff ΒΆ
func (d *DiffString) Diff() ([]byte, error)
func (*DiffString) Strip ΒΆ
func (d *DiffString) Strip() int
type ErrorformatParser ΒΆ
type ErrorformatParser struct {
// contains filtered or unexported fields
}
ErrorformatParser is errorformat parser.
func (*ErrorformatParser) Parse ΒΆ
func (p *ErrorformatParser) Parse(r io.Reader) ([]*CheckResult, error)
type GitHubPullRequest ΒΆ
type GitHubPullRequest struct {
// contains filtered or unexported fields
}
GitHubPullRequest is a comment and diff service for GitHub PullRequest.
API:
https://developer.github.com/v3/pulls/comments/#create-a-comment POST /repos/:owner/:repo/pulls/:number/comments
func NewGitHubPullReqest ΒΆ
func NewGitHubPullReqest(cli *github.Client, owner, repo string, pr int, sha string) *GitHubPullRequest
NewGitHubPullReqest returns a new GitHubPullRequest service.
func (*GitHubPullRequest) Diff ΒΆ
func (g *GitHubPullRequest) Diff() ([]byte, error)
Diff returns a diff of PullRequest. It runs `git diff` locally instead of diff_url of GitHub Pull Request because diff of diff_url is not suited for comment API in a sense that diff of diff_url is equivalent to `git diff --no-renames`, we want diff which is equivalent to `git diff --find-renames`.
func (*GitHubPullRequest) Flash ΒΆ
func (g *GitHubPullRequest) Flash() error
Flash posts comments which has not been posted yet.
func (*GitHubPullRequest) ListPostComments ΒΆ
func (g *GitHubPullRequest) ListPostComments() []*Comment
ListPostComments lists comments to post.
func (*GitHubPullRequest) Post ΒΆ
func (g *GitHubPullRequest) Post(c *Comment) error
Post accepts a comment and holds it. Flash method actually posts comments to GitHub in parallel.
func (*GitHubPullRequest) Strip ΒΆ
func (g *GitHubPullRequest) Strip() int
Strip returns 1 as a strip of git diff.
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.
func NewErrorformatParser ΒΆ
func NewErrorformatParser(efm *errorformat.Errorformat) Parser
NewErrorformatParser returns a new ErrorformatParser.
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 filterd 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 := NewCommentWriter(os.Stdout) d := NewDiffString(difftext, 1) app := NewReviewdog("tool name", p, c, d) app.Run(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) *Reviewdog
NewReviewdog returns a new Reviewdog.