Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[releng] Create an EGit Genie #13

Open
tomaswolf opened this issue Jan 10, 2024 · 3 comments
Open

[releng] Create an EGit Genie #13

tomaswolf opened this issue Jan 10, 2024 · 3 comments
Labels
enhancement New feature or request

Comments

@tomaswolf
Copy link
Contributor

tomaswolf commented Jan 10, 2024

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.

  • When an initial change (PS 1) appears in Gerrit and the commit message has a "Bug: egit-xx" footer, add a comment to issue xx here in Github with the GerritHub change URL.
  • Perhaps: whenever a Gerrit change is submitted and the commit message has a "Fixes: egit-xx" footer, auto-close Github issue xx.
  • Perhaps even: when a release is done, go through all commits since the last release tag, look for "Fixes: egit-nn" footers, and if so, add all these Github issues to a milestone for the release. Or perhaps do that individually whenever such a change is merged.

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 tomaswolf added the enhancement New feature or request label Jan 10, 2024
@tomaswolf
Copy link
Contributor Author

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

@msohn
Copy link
Member

msohn commented Jan 10, 2024

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
Copy link
Contributor Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants