Skip to main content

Logo PyPI - Python Version Black GitHub Workflow Status Hatch project PyPI PyPI - License GitHub Repo stars


✨ 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

Usage GIF

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

Metadata

Release files for giphon 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for giphon 0.2.0
File Size Uploaded
giphon-0.2.0.tar.gz 16.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for giphon 0.2.0
File Interpreter ABI Platform
giphon-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 29.9 kB

Release files / giphon-0.2.0.tar.gz

Download URL giphon-0.2.0.tar.gz
Size 16.5 kB
Tags Source
SHA-256 checksum
How to use checksums
31ece60f89734d5aef0e557d707d65030d08e56dedc705196a01e91cb095424b
BLAKE2b-256 checksum
How to use checksums
2b7fc1bf5ce5beafdb254330f7b8802feb2606dfd84542125bc6068322fd874d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-httpx/0.27.0

Release files / giphon-0.2.0-py3-none-any.whl

Download URL giphon-0.2.0-py3-none-any.whl
Size 13.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f968ed4ada2c883ad9ac007c83dab6b66c96aae85ed90bc2881d0db8e5568a73
BLAKE2b-256 checksum
How to use checksums
99a08f766a3c8181a07db31ba82a7f4d93c2681538f06d56cbaad430be4b1adc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-httpx/0.27.0

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

3 release files

0.1.3

2 release files

0.1.2

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page