giphon 0.2.0

Creator: rpa-with-ash

Last updated:

Add to Cart

Description:

giphon 0.2.0

✨ Giphon is the contraction of 🦊 Gitlab and 🫗 siphon. This CLI tools allows users
to recursively clone all projects in a given Gitlab group or instance.
Motivation
This project aims to provide a tool capable of replicating a Gitlab group's
structure into a directory structure.
Locally cloned projects enable users to use familiar CLI tools such as grep
and sed directly into the projects' tree structure.
Demo

Installation
To install giphon, simply run:
pip install --user giphon

And if you wish to use giphon by simply calling giphon, you can set-up an
alias in your .bashrc (or other, if you have another shell):
echo 'alias giphon="/usr/bin/env python3 -m giphon"' >> ~/.bashrc

Parameters
The giphon tool allows for the following parameters:

namespace (CLI: --namespace): The Gitlab namespace to be cloned. /
defaults to the whole instance.
output (CLI: --output): The target path to clone the repositories to.
gitlab_token: (CLI: --gitlab-token, env: GITLAB_TOKEN): The Personal
Access Token authenticating the user.
gitlab_url: (CLI: --gitlab-url, env: GITLAB_URL): The URL of the Gitlab
instance to clone the repositories from. Defaults to "https://gitlab.com"
fetch_repositories: (CLI: --fetch-repositories/--no-fetch-repositories):
Whether to fetch remotes on repositories that already exist.
save_ci_variables: (CLI: --save-ci-variables/--no-save-ci-variables):
Whether to download CI/CD variables to a .env directory.
clone_archived (CLI: --clone-archived/--no-clone-archived): Whether
to also clone archived repository.
clone_through_ssh: (CLI: --clone-through-ssh/--no-clone-through-ssh):
Whether to use the SSH protocol or the HTTPS protocol to clone the git
repositories
gitlab_username (CLI: --gitlab-username, env: GITLAB_USERNAME): The
username to use, when cloning through HTTPS.
verbose: (CLI: --verbose/-v): The level of verbosity

Running programmatically
You can import the main function from giphon as such:
from pathlib import Path

from giphon.siphon import siphon

siphon(
namespace=Path("my-namespace"),
output=Path("~/Projects"),
gitlab_token="",
gitlab_url="https://gitlab.com",
fetch_repositories=True,
save_ci_variables=False,
clone_archived=False,
verbose=False,
)

The function takes as inputs the same parameters from the CLI tool.

Logo is © from Midjourney

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.