Mirror your git repositories and make them cgit-ready
Project description
cgitize
Mirror your git repositories and make them cgit-ready. Supports cloning all of your repositories from major hosting providers:
- GitHub,
- Bitbucket,
- GitLab.
Example output can be found at https://egort.name/git/.
Installation
pip install cgitize
Usage
Pass the path to the config to cgitize
(/etc/cgitize/cgitize.toml by
default):
cgitize --config path/to/cgitize.toml
See an example config file at examples/cgitize.toml.
cgitize uses the git
executable, which might use ssh
internally.
Make sure the required keys are loaded to a ssh-agent (or use access
tokens/application passwords).
Docker
The image is egortensin/cgitize. The container reads the config from /etc/cgitize/cgitize.toml and writes the repositories to /var/tmp/cgitize. If SSH is required, map the socket to /var/run/cgitize/ssh-agent.sock.
docker run -it --rm \
-v "/path/to/config:/etc/cgitize:ro" \
-v "$SSH_AUTH_SOCK:/var/run/cgitize/ssh-agent.sock" \
-v "/path/to/output:/var/tmp/cgitize" \
egortensin/cgitize:2
The container executes cgitize inside a cron job.
The SCHEDULE
environment variable controls the period between cgitize runs.
By default, it's set to once
, which makes the container exit after the first
run.
You can also set it to 15min
, hourly
, daily
, weekly
, monthly
or a
custom 5-part cron schedule like */5 * * * *
.
Mirror maintenance
Update the URL of an existing repository mirror:
git remote set-url origin git@examples.com/username/name.git
Development
Packaging
The packaging tutorial (as it was in April 2021) on python.org was used to
make a PyPI package.
Basically, it looks to me like the Python ecosystem is currently moving from
the older setup.py to the newer setup.cfg/pyproject.toml.
It's still a bit clunky: you have to install the build
package, placeholder
setup.py is required for pip install -e
to work, etc.
Linting
Requires Pylint.
pylint cgitize
License
Distributed under the MIT License. See LICENSE.txt for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.