.. | ||
auto_mapper.py | ||
Dockerfile | ||
README.md | ||
requirements.txt |
Gitea Teams auto mapping
Description
This script will copy / update all teams (excluding Owners
) from a specified source organization to all other organizations (except for excluded ones). It can be used to achieve a more controllable permissions hierarchy within Gitea, similar to sub-groups as being available in Gitlab.
Author(s)
License
MIT License. For more details, refer to the LICENSE file.
Usage
pip install -r requirements.txt
python3 auto_mapper.py [options]
Available script arguments
Argument | Type | Description | Valid values |
---|---|---|---|
--host |
Key-Value | Specify the Gitea instance host | An IP address or hostname |
--port |
Key-Value | Specify the Gitea instance port | A valid port from 1 to 65535 |
--token |
Key-Value | Specify the Gitea instance token | A valid Gitea user token string |
--ssl |
Switch | Specify if the Gitea instance uses SSL | Enable SSL support (https) |
--debug |
Switch | Enable debug logging | Enable debug output |
--source-orga |
Key-Value | Specify the source organization | The name of the source organization |
--dry-run |
Switch | Enable dry-run mode, no changes will be made | Enable dry-run mode to prevent changes |
--exclude |
Multi Key-Value | Specify organizations to exclude | Can be used multiple times to exclude specific organizations |
--update |
Switch | Updates existing teams in target organizations | Enable to update already existing teams at target organizations |
--override |
Switch | Override existing teams in target organizations | Enable to override already existing teams at target organizations |
Using environment variables
Note: Instead of using environment variables you can also make use of an .env
file, which contains the respective environment variables.
Argument | Type | Description | Valid values |
---|---|---|---|
GITEA_INSTANCE |
Key-Value | Specify the Gitea instance host | An IP address or hostname |
GITEA_PORT |
Key-Value | Specify the Gitea instance port | A valid port from 1 to 65535 |
GITEA_TOKEN |
Key-Value | Specify the Gitea instance token | A valid Gitea user token string |
GITEA_SSL |
Switch | Specify if the Gitea instance uses SSL | Enable SSL support (https) |
DEBUG |
Switch | Enable debug logging | Enable debug output |
SOURCE_ORGA |
Key-Value | Specify the source organization | The name of the source organization |
DRY_RUN |
Switch | Enable dry-run mode, no changes will be made | Enable dry-run mode to prevent changes |
EXCLUDE_ORGAS |
Multi Key-Value | Specify organizations to exclude | Can be used multiple times to exclude specific organizations |
UPDATE_TEAMS |
Switch | Updates existing teams in target organizations | Enable to update already existing teams at target organizations |
OVERRIDE_TEAMS |
Switch | Override existing teams in target organizations | Enable to override already existing teams at target organizations |
Using Dockerfile
With .env file
docker run --rm -it $(docker build -q .)
With environment variables
docker run --rm -it -eGITEA_INSTANCE=localhost -eGITEA_PORT=3000 $(docker build -q .)
Use -e
arguments as shown in the example above for setting environment variables.
Example
python3 auto_mapper.py \
--host "127.0.0.1" \
--port 3000 \
--token "your-secret-user-token" \
--source-orga "MyTemplateOrga"
For any issues, please refer to the contact details provided in the author's contact information section.