mirror of
https://github.com/Smaug123/gitea-repo-config
synced 2025-10-05 07:28:40 +00:00
44 lines
2.0 KiB
Markdown
44 lines
2.0 KiB
Markdown
# gitea-repo-config
|
|
|
|
This is a small project to allow you to specify a [Gitea](https://github.com/go-gitea/) configuration in a declarative manner, and to resolve differences between intended and actual config.
|
|
|
|
## Supported features
|
|
|
|
* 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
|
|
* Deletion of repositories, guarded by the `"deleted": true` configuration
|
|
|
|
# Arguments
|
|
|
|
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](./Gitea.Declarative.Lib/GiteaConfig.schema.json); there is [an example](./Gitea.Declarative.Test/GiteaConfig.json) 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.)
|
|
|
|
# How to build and run
|
|
|
|
* With Nix: `nix run github:Smaug123/gitea-repo-config -- reconcile --help`.
|
|
* From source: clone the repository, and `dotnet run`.
|
|
|
|
# Demos
|
|
|
|
See the [Demos file](./docs/demos.md).
|
|
|
|
# Development
|
|
|
|
To upgrade the NuGet dependencies in the flake, run `nix build .#fetchDeps` and copy the resulting file into `nix/deps.nix`.
|
|
|
|
## Formatting
|
|
|
|
There are pull request checks on this repo, enforcing [Fantomas](https://github.com/fsprojects/fantomas/)-compliant formatting.
|
|
Consider performing the following command to set the pre-commit hook in the repo which checks formatting:
|
|
```bash
|
|
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.
|