-
Notifications
You must be signed in to change notification settings - Fork 124
Pluggable approval algorithm #32
Comments
What approval algorithms would users like to see? I know of the current default algorithm in LGTM, and the "org" approval algorithm from #35. |
Sorry I didn't read #20. Now I understand this feature request. One argument in favor of multiple approval algorithms in the codebase is that it increases developer participation in the LGTM project. It would be reasonable to include multiple implementations and then in the future delete these implementations if they contain bugs and are not maintained by their developers. I can't tell if @benhutchins intended to submit a pull request with the OWNERS implementation? |
@mspiegel while I definitely understand this argument, I did not necessarily post the source code with the intention of growing a community around this repository. This is somewhat addressed in the README
I understand this might be a bit unconventional since most authors release a repository with the intention of growing a community around it. The difference here is that I have some larger communities (namely drone) that are very demanding of my time and I do not have the time / desire / financial incentive to grow this repository beyond its existing, simple goals. That being said I'm certainly open to making LGTM more extensible via hooks or some other plugin mechanism. |
overall this hasn't been heavily requested, but each time it is requested the algorithm is never the same. Some examples that come to mind are:
|
I see your point and understand your concerns. @jonbodner and I are going to fork this repository and maintain additional features in the fork. GitHub disables some features (most notably searching) from repositories that are forks of another repository. So we're going to create a new GitHub repository and rebrand the project. We'll make sure to include a prominent note in the README file to this repository in order to have proper attribution. The license will remain Apache 2. Does that sound good to you? |
I think pluggable approval makes sense. This would allow GitHub teams support so we don't have to hard code the maintainers in every repo. |
Please read the README and the CHANGELOG for a list of features developed in this fork. Initial discussion of the fork can be found at lgtmco/lgtm#32. New features have been developed by: @mspiegel, @jonbodner, @jonathana
Please read the README and the CHANGELOG for a list of features developed in this fork. Initial discussion of the fork can be found at lgtmco/lgtm#32. New features have been developed by: @mspiegel, @jonbodner, @jonathana
Please read the README and the CHANGELOG for a list of features developed in this fork. Initial discussion of the fork can be found at lgtmco/lgtm#32. New features have been developed by: @mspiegel, @jonbodner, @jonathana
Please read the README and the CHANGELOG for a list of features developed in this fork. Initial discussion of the fork can be found at lgtmco/lgtm#32. New features have been developed by: @mspiegel, @jonbodner, @jonathana
I've required a few requests to make alterations to the approval process and include multiple algorithms. I recognize there is not a one-size-fits all approval process. That being said, I am not interested in hosting / supporting / maintaining multiple algorithms in the codebase that would, in all likelihood, only be used by the team that contributed them.
I do believe we can provide some sort of middle ground. I propose the option to delegate approvals to a third party service (ie webhooks). This could be configured at a global level in LGTM using an environment variable:
This would post a JSON payload with the github hook, comments, maintainer file (parsed and raw) and .lgtm configuration details (parsed and raw) to the webhook url. The server would block and wait for the reply, which would include the approval status and relevant metadata.
This would enable pluggable algorithms so that LGTM can be extended without having to host multiple algorithms in the main codebase.
The text was updated successfully, but these errors were encountered: