eclipse-egit / egit

EGit, the git integration of Eclipse IDE
https://www.eclipse.org/egit/
Eclipse Public License 2.0
17 stars 7 forks source link

[releng] Create an EGit Genie #13

Open tomaswolf opened 8 months ago

tomaswolf commented 8 months ago

Description

The Eclipse Foundation used to have the "Eclipse Genie" that helped maintaining traceability between Bugzilla issues and Gerrit.

We should have something similar for our GerritHub setup.

This would need a Jenkins credential for a Github token that could be used to authenticate to the Github API. Operations could then be done via curl in Jenkins jobs triggered on appropriate conditions (change pushed, merged, ...)

Motivation

Reporting Gerrit changes in issues improves traceability. Adding fixed issues to milestones gives us a way to list all issues resolved in a release.

Alternatives considered

Currently, all these operation have to be done manually, which is easy to forget.

Additional context

No response

tomaswolf commented 8 months ago

One potential stumbling stone: what are the API limits (rate limits) that our Jenkins would be subject to?

msohn commented 8 months ago

Another option would be to implement a Gerrit plugin based on its-base [1] similar to the its-jira plugin [2]. There is already an empty its-github repo [3] where this could be implemented.

tomaswolf commented 8 months ago

Yes, that's another possibility. Don't know what would be better or easier to implement or maintain.

A Gerrit plug-in would also need an API token, which probably would have to come from the Eclipse Foundation since they own the repo/the organization? The load of doing these Github API calls would be on Gerrit, and that plug-in would need to be installed in Gerrit. It might also be subject to rate limits on the Github API. The solution would be specific to Gerrit. OTOH, it might provide an easy solution for other interested parties.

Doing it with Jenkins jobs would mean the Eclipse Foundation can set up the Jenkins credential, we could define our jobs, and the actual API calls would be off-loaded from Gerrit to some Jenkins agent (which would have to be fired up first, so overall there might be more work, but it wouldn't contribute to the load on the Gerrit server). The solution would be independent of Gerrit; only prerequisite would be that there is something in Jenkins that triggers build on Gerrit events, and that already is there.