Skip to main content

pip install githost

githost -h

Post the local ssh public key at ~/.ssh/id_rsa.pub to github.

githost github key-post

Each service also has a two-letter alias: gh (github), gl (gitlab) and bb (bitbucket), e.g. githost gh key-post, and its own command with the service already selected: ggh, ggl and gbb, e.g. ggl ls-mr.

Use github's API to list the existing repositories in JSON format:

githost github repo-list

[
    ...
    {
        "id": 149032817,
        "name": "emacs-buttons",
        "full_name": "erjoalgo/emacs-buttons",
        "private": false,
        "owner": {
            "login": "erjoalgo",
            "id": 5349288,
            "node_id": "MDQ6VXNlcjUzNDkyODg=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5349288?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/erjoalgo",
            ...
    },
    ...
]

Publish the local git repo at the current directory to github:

githost github repo-create

If required authentication is missing or invalid at any time, the tool will prompt and walk the user through how to obtain the appropriate github, gitlab or bitbucket API tokens, and provide the option to cache those tokens locally.

GitLab

The same commands work with gitlab in place of github, using a personal access token with the api scope:

githost gitlab key-post

githost gitlab repo-list

githost gitlab repo-create

For a self-hosted GitLab instance, pass its API base url:

githost gitlab -b https://gitlab.example.com/api/v4 repo-list

githost gitlab ls-mr lists your open and merged merge requests across all projects, then the branches you pushed to that have neither, with null in the first column. Default branches and deleted branches are skipped. Columns: MR, state, last modified date, url, branch, title.

Inside a clone of a GitLab project (the gitlab remote is used if present, otherwise origin; override with -R REMOTE):

githost gitlab create-mr opens a merge request from the current branch, which must already be pushed, into the default branch. The last commit message is opened in $EDITOR to become the title (first line) and description, unless --title is given.

Metadata

Release files for githost 2026.11.9.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 githost 2026.11.9.0
File Size Uploaded Provenance Actions
githost-2026.11.9.0.tar.gz 16.2 kB Without provenance Details for githost-2026.11.9.0.tar.gz

Built distribution (wheel)

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

Total release size: 26.7 kB

Release files / githost-2026.11.9.0.tar.gz

Download URL githost-2026.11.9.0.tar.gz
Size 16.2 kB
Tags Source
SHA-256 checksum
How to use checksums
10e04c7ecb88eef922dc2126337a87ee5c5020cf80018c613a837d2830b2e610
BLAKE2b-256 checksum
How to use checksums
c89437f30669a87db5f492bb24e1c9b83074d5d3f87e5faf2ebc9ed978f1d053
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release files / githost-2026.11.9.0-py3-none-any.whl

Download URL githost-2026.11.9.0-py3-none-any.whl
Size 10.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c92c48d8ba3ce274a69f26015201eaf70d32941040b8848c4289e6320357323b
BLAKE2b-256 checksum
How to use checksums
8b656c386c88109cbe6e0995188df8adb7dba65e357307dbd24c88b7e9f2d5d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Security for githost 2026.11.9.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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