woodpecker-ci / woodpecker

Woodpecker is a simple, yet powerful CI/CD engine with great extensibility.
https://woodpecker-ci.org
Apache License 2.0
4.19k stars 363 forks source link

Gerrit Forge #4232

Open pelme opened 3 hours ago

pelme commented 3 hours ago

Clear and concise description of the problem

As a user of Gerrit Code Review, I would like to use Woodpecker for CI. Opening this issue to see if there would be any interest in having this in core Woodpecker as a supported forge or if it would be a better approach to add it as an addon forge.

Guidelines for adding new forges

As documented (https://woodpecker-ci.org/docs/development/core-ideas#guidelines), a to add a new forge to Woodpecker, it must support webhooks and oauth2:

Webhooks

Gerrit supports webooks via the builtin core plugin webhooks: https://gerrit-review.googlesource.com/Documentation/config-plugins.html#webhooks.

OAuth2

Gerrit is not an OAuth2 provider itself, does that disqualify it from being added as a core?There is a popular Gerrit plugin to make Gerrit use OAuth: https://gerrit.googlesource.com/plugins/oauth/ In our setup, we use Google SSO OAuth to authenticate with Gerrit. So we would use Google SSO with Woodpecker too.

Would it be possible to reconsider the OAuth2 requirement? Or make it possible to have another OAuth2 provider while still having Gerrit support in core Woodpecker?

Suggested solution

Add Gerrit as a builtin forge.

Alternative

Build a Gerrit integration as an addon forge.

Additional context

My company would potentially be happy to open source/contribute code and/or money towards getting Woodpecker/Gerrit working somehow. Of course we could start building it as an addon forge.

Gerrit is a great tool for git+code review and a lot of people like that flow as an alternative to the typical PR workflow Github/Gitlab/Gitea etc. Gerrit is open source and has been around for a long time and is actively developed. Using Gerrit and Woodpecker together seems like it would be an amazing combination for a lot of people! 🔥

Both Gerrit and Woodpecker uses birds as their logos/mascots! 🐦‍⬛

Validations

pelme commented 3 hours ago

Just found this PR. A long time ago Gerrit was a placeholder in the supported features docs: https://github.com/woodpecker-ci/woodpecker/pull/372 😆