This is a small project to allow you to specify a Gitea configuration in a declarative manner, and to resolve differences between intended and actual config.
- Creation of users
- Creation of repositories as pull mirrors from GitHub
- Creation of repositories
- Optional push mirroring to GitHub
- Optional branch protection rules
- Pull request configuration (e.g. whether rebase-merges are allowed, etc)
- Collaborators
- Reconciliation of differences between configuration and reality in the above
- Note that deleting a line of configuration will generally simply take that property out of declarative management. It does not return the configured property to its default value. Explicit is better than implicit.
- Deletion of repositories, guarded by the
"deleted": true
configuration
Run with the --help
argument for a full listing.
The main argument you provide is a JSON configuration file, which should conform to the schema; there is an example in the tests.
(You can call gitea-repo-config verify $CONFIG_PATH
to verify against the schema, or gitea-repo-config output-schema
to output the schema for local tooling to consume.)
- With Nix:
nix run github:Smaug123/gitea-repo-config -- reconcile --help
. - From source: clone the repository, and
dotnet run
.
See the Demos file.
To upgrade the NuGet dependencies in the flake, run nix build .#default.passthru.fetch-deps && ./result
and copy the resulting file into nix/deps.nix
.
There are pull request checks on this repo, enforcing Fantomas-compliant formatting. Consider performing the following command to set the pre-commit hook in the repo which checks formatting:
git config core.hooksPath hooks/
You will need to ensure that Fantomas is installed when you run this hook, either by running from a nix develop
shell, or by executing dotnet tool restore
from the root of the repository first.