GopherCI was a project to help you maintain high-quality Go projects, by checking each GitHub Pull Request, for backward incompatible changes, and a suite of other third party static analysis tools.
Some tools can raise issues on lines that haven't been changed, but a change elsewhere has caused them to error.
unused (and similar tools) detect when an identifier is no longer used, a change that removes the last reference to the identifier would appear to be removed in the diff, but the unused identifier would not be. This will be excluded from revgrep.
apicompat has similar behaviour in #63.
For such cases, it may be better to run the tool on the old commit, as well as the new commit and the complement will be the list of issues found.
GopherCI would then need handle commenting on lines of code that haven't changed, so an inline comment may not be possible. It may be just a matter of still failing the build, and having the analysis page show the issue but not on the patch, just the summary of issues per tool.
It may be possible then assign a tool as requiring complement filter (instead of revgrep filter), which would run those tools in a different way (checking out old ref, running tool, checking out new ref, returning the complement).
Some tools can raise issues on lines that haven't been changed, but a change elsewhere has caused them to error.
unused
(and similar tools) detect when an identifier is no longer used, a change that removes the last reference to the identifier would appear to be removed in the diff, but the unused identifier would not be. This will be excluded from revgrep.apicompat
has similar behaviour in #63.For such cases, it may be better to run the tool on the old commit, as well as the new commit and the complement will be the list of issues found.
GopherCI would then need handle commenting on lines of code that haven't changed, so an inline comment may not be possible. It may be just a matter of still failing the build, and having the analysis page show the issue but not on the patch, just the summary of issues per tool.
It may be possible then assign a tool as requiring complement filter (instead of revgrep filter), which would run those tools in a different way (checking out old ref, running tool, checking out new ref, returning the complement).