Bot for automating the process of adding new users to Codeberg's Hosted Woodpecker CI offering. https://codeberg.org/Codeberg-e.V./requests
  • Go 98.3%
  • Shell 0.9%
  • Dockerfile 0.8%
Find a file
Image Thorben Günther bb6e1f2275
Image
Process webhook in goroutine
And no longer depend on the request's context for the processing.
Otherwise, requests with lots of projects to scan can fail, because
the webhook's context timed out.
2026-04-01 12:02:10 +02: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 update: Add actual license header 2026-03-31 17:34:38 +02:00
.gitignore Add update script for licenses file 2026-03-31 15:00:27 +02: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 2026-03-31 15:02:12 +02:00
go.sum Upgrade dependencies 2026-03-31 15:02:12 +02:00
main.go Process webhook in goroutine 2026-04-01 12:02:10 +02: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.