Bot for automating the process of adding new users to Codeberg's Hosted Woodpecker CI offering. https://codeberg.org/Codeberg-e.V./requests
Thorben Günther 23e6e95e67
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Upgrade dependencies
2025-11-28 14:40:55 +01:00
config Support requiring a minimum amount of commits for auto-approval 2025-10-28 12:39:53 +01:00
docker dockerfile: Make casing consistent 2025-05-11 23:25:20 +02:00
LICENSES Read approved licenses from spdx list 2025-09-19 19:51:48 +02:00
vendored Read approved licenses from spdx list 2025-09-19 19:51:48 +02:00
.gitignore Add gitignore 2023-11-10 14:48:53 +01:00
.woodpecker.yaml ci: Try semver 2025-09-19 01:01:05 +02:00
codeberg_usage.md codeberg_usage: Add rescan keyword 2025-09-19 13:53:59 +02:00
config.scfg Support requiring a minimum amount of commits for auto-approval 2025-10-28 12:39:53 +01:00
go.mod Upgrade dependencies 2025-11-28 14:40:55 +01:00
go.sum Upgrade dependencies 2025-11-28 14:40:55 +01:00
main.go Fix link project link detection 2025-11-27 23:56:28 +01:00
README.md ensure REUSE complience 2024-09-25 18:30:46 +02:00
REUSE.toml Read approved licenses from spdx list 2025-09-19 19:51:48 +02:00

cibot

This bot can be used to automate access to Codeberg's Woodpecker CI. In more general terms users can create issues to request access to a Forgejo team and authorized users can approve those requests or later revoke the access with a comment.

To facilitate this users can create an issue on this repository.

This bot will receive webhooks from the repository and if an authorized user comments with a keyword, the collected usernames will be added to the CI team or removed from it.

Deployment

By default the bot will read a configuration file of the scfg format from /etc/cibot/config.scfg. With the --config flag a different location can be specified. The different settings are explained in the example file.

The repository containing the issues has to POST Forgejo webhooks to the cibot with the "application/json" content type. "Secret" and "Authorization Header" are supported to validate the webhook and protect the endpoint.