Skip to main content

A CLI tool and also a Python library can print the url of a local file in a git repo so you can one-click to open it in web browser.

Project description

Documentation Status https://github.com/MacHu-GWU/git_web_url-project/actions/workflows/main.yml/badge.svg https://codecov.io/gh/MacHu-GWU/git_web_url-project/branch/main/graph/badge.svg https://img.shields.io/pypi/v/git-web-url.svg https://img.shields.io/pypi/l/git-web-url.svg https://img.shields.io/pypi/pyversions/git-web-url.svg https://img.shields.io/badge/✍️_Release_History!--None.svg?style=social&logo=github https://img.shields.io/badge/⭐_Star_me_on_GitHub!--None.svg?style=social&logo=github
https://img.shields.io/badge/Link-API-blue.svg https://img.shields.io/badge/Link-Install-blue.svg https://img.shields.io/badge/Link-GitHub-blue.svg https://img.shields.io/badge/Link-Submit_Issue-blue.svg https://img.shields.io/badge/Link-Request_Feature-blue.svg https://img.shields.io/badge/Link-Download-blue.svg

Welcome to git_web_url Documentation

https://git-web-url.readthedocs.io/en/latest/_static/git_web_url-logo.png

git_web_url is a CLI tool and also a Python library that prints the URL of a local file in a git repo so you can one-click to open it in web browser.

Currently it supports:

Git Hosting Services:

  • GitHub

  • GitHub Enterprise

  • GitLab

  • GitLab Enterprise

  • BitBucket

  • BitBucket Enterprise

  • AWS CodeCommit

Git Clone Protocols:

Claude Code Skill

A ready-to-use Claude Code skill is bundled at .claude/skills/git-web-url/. Copy it into your own project’s .claude/skills/ directory and Claude will automatically know how to invoke gwu (or via uvx) when you ask it to get the web URL of a file in your repo.

CLI Usage

General Syntax

gwu <subcommand> [options]

Available Subcommands

  • url: Print the web URL for a file or folder in the git repository.

  • relpath: Print the relative path from the git repository root.

The url Subcommand

Print the web URL you can one-click to open in a web browser.

Basic Usage

cd into your git repo directory, or any folder inside, then run gwu url (or gitweburl url). It prints the URL for the current branch and current directory:

$ gwu url
https://github.com/your_account/your_repo/tree/your_branch/path/to/current_directory

Specify a File or Folder

Provide the absolute path of the file or folder in your local git repo:

$ gwu url /path/to/your_repo/path/to/your_file.py
https://github.com/your_account/your_repo/blob/your_branch/path/to/your_file.py

Branch Options

Use the --branch (or -b) flag to control which branch appears in the URL:

# Use current branch (default behavior)
$ gwu url
https://github.com/your_account/your_repo/tree/feature-branch/

# Use default branch (main/master) - URL without explicit branch
$ gwu url --branch=default
https://github.com/your_account/your_repo

# Use a specific branch
$ gwu url --branch=main
https://github.com/your_account/your_repo/tree/main/

# Short form
$ gwu url -b develop
https://github.com/your_account/your_repo/tree/develop/

The relpath Subcommand

Print the relative path from the git repository root to the given file or folder.

Basic Usage

# At repository root, prints "."
$ cd /path/to/your_repo
$ gwu relpath
.

# In a subdirectory, prints relative path
$ cd /path/to/your_repo/src/module
$ gwu relpath
src/module

Specify a File or Folder

$ gwu relpath /path/to/your_repo/src/module/file.py
src/module/file.py

Python API Usage

You can also use git_web_url as a Python library:

from pathlib import Path
import git_web_url.api as gwu

# Get URL for a file using current branch
url = gwu.get_web_url(Path("/path/to/your_repo/file.py"))

# Get URL using default branch (main/master)
url = gwu.get_web_url(
    Path("/path/to/your_repo/file.py"),
    branch=gwu.DEFAULT_BRANCH,
)

# Get URL using a specific branch
url = gwu.get_web_url(
    Path("/path/to/your_repo/file.py"),
    branch="feature-branch",
)

Install

git_web_url is released on PyPI, so all you need is to:

$ pip install git-web-url

To upgrade to latest version:

$ pip install --upgrade git-web-url

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_web_url-1.0.2.tar.gz (17.0 kB view details)

Uploaded Source

Built Distribution

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

git_web_url-1.0.2-py3-none-any.whl (16.2 kB view details)

Uploaded Python 3

File details

Details for the file git_web_url-1.0.2.tar.gz.

File metadata

  • Download URL: git_web_url-1.0.2.tar.gz
  • Upload date:
  • Size: 17.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for git_web_url-1.0.2.tar.gz
Algorithm Hash digest
SHA256 098f20ee6244f4a76d42ae2263548e1055e3c552e74cb02dc8c5919e2c205a50
MD5 e4d7cf1519b41a5a47f79deee9e440fb
BLAKE2b-256 9418f03f450a7e8ad95c3e792708dd21bc169abc87e4a8f8dabab3dd8b63de18

See more details on using hashes here.

File details

Details for the file git_web_url-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: git_web_url-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 16.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for git_web_url-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 578767b96ff3114a170e9c4f9c62cf21d06d7da34dd851bfad21a54f13146e12
MD5 5abc61a58b6ba46c9e3effbb2fd6480f
BLAKE2b-256 fd67011acdd3fb113bf666c592d59a7c0ed7897d8e68443f771b6f169cae46f6

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