Skip to main content

Prints the forge url for a given file of a Git repository checkout

Project description

git-uff

Prints the forge URL for a given file of a Git repository checkout.

Intro

Have you ever been discussing with colleagues over IRC/Slack/Matrix/whatever about source code and found yourself needing to point them to a particular file in a git repository?

This is tedious to do.

One solution is to tell them the path in their checkout, hoping they are on the same branch as you.

Another solution is to point your browser to the forge hosting your git repository, select the right branch, navigate the file hierarchy, find your file and copy the file URL.

A better (in my opinion 😉) solution is to use git-uff. This tool adds an uff (short for "URL for file") git sub-command, which takes the path to a file in your repository checkout and prints the matching forge URL.

For example to print the URL of the src/linux/nanonote.desktop file from my Nanonote project:

$ git uff src/linux/nanonote.desktop
https://github.com/agateau/nanonote/blob/master/src/linux/nanonote.desktop

You can also point them to a specific line with the -l argument:

$ git uff src/linux/nanonote.desktop -l 10
https://github.com/agateau/nanonote/blob/master/src/linux/nanonote.desktop#L10

git-uff has a few other available options. Here is its --help output:

usage: git-uff [-h] [-b BRANCH] [-p] [-c] [-l LINE] path

Prints the forge URL for a given file or path of a Git repository checkout.

positional arguments:
  path                  File for which we want the URL

optional arguments:
  -h, --help            show this help message and exit
  -b BRANCH, --branch BRANCH
                        Use branch BRANCH instead of the current one
  -p, --permalink       Replace the branch in the URL with the commit it
                        points to
  -c, --copy            Copy the result to the clipboard
  -l LINE, --line LINE  Line to point to

New forges can be declared in git configuration. You can do so using
`git config`, like this:

    git config --global uff.<forge_base_url>.forge <forge>

Where <forge> must be one of: cgit, github, gitlab, sourcehut.

For example to declare that example.com uses GitLab:

    git config --global uff.example.com.forge gitlab

What if my code is not on GitHub?

git-uff is not tied to GitHub. It supports GitLab, SourceHut and CGit forges.

To declare a new forge, add it to your git configuration with:

git config --global uff.<forge_base_url>.forge <forge>

For example to declare that example.com uses GitLab:

git config --global uff.example.com.forge gitlab

See the output of git uff --help for the valid <forge> values.

Installation

The recommended method to install git-uff is to use pipx:

pipx install git-uff

But you can also install it with pip:

pip install --user git-uff

License

Apache 2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

git_uff-0.4.0.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

git_uff-0.4.0-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

Details for the file git_uff-0.4.0.tar.gz.

File metadata

  • Download URL: git_uff-0.4.0.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.0.1 CPython/3.10.12 Linux/6.8.0-50-generic

File hashes

Hashes for git_uff-0.4.0.tar.gz
Algorithm Hash digest
SHA256 fefda71114c77a77e20c0da4040a28f92ae53f482f415c559a94609893b7ace3
MD5 0e16abca70e6e0cb02f34329933848e3
BLAKE2b-256 cd602801acc4286c2b9e96959d081630720a5521296cf8cf8da1d4779bf6d306

See more details on using hashes here.

File details

Details for the file git_uff-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: git_uff-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 10.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.0.1 CPython/3.10.12 Linux/6.8.0-50-generic

File hashes

Hashes for git_uff-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ea996149a76bbb2333312d06b23593b2c3f948fdbe85ea814dddca9b58426d29
MD5 c98c692e6b0bcb80890191b3e8e3e3a7
BLAKE2b-256 b4dc5ed3425434f29efda9934ec000c6309007d0b060d7609373a41fde64edef

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page