git-repo-detection

Git Repository Detection

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "git-repo-detection" with this command: npx skills add laurigates/claude-plugins/laurigates-claude-plugins-git-repo-detection

Git Repository Detection

Expert knowledge for detecting and extracting GitHub repository information from git remotes, including repository name, owner, and full identifiers.

Core Expertise

Repository Identification

  • Extract owner and repository name from git remotes

  • Parse GitHub URLs (HTTPS and SSH)

  • Handle GitHub Enterprise URLs

  • Format as owner/repo for CLI/API usage

URL Parsing

Essential Commands

Get Remote URLs

List all remotes

git remote -v

Get origin URL

git remote get-url origin

Get specific remote

git remote get-url upstream

Show remote details

git remote show origin

Extract Repository Name

From HTTPS URL

git remote get-url origin | sed 's/./([^/]).git/\1/'

From SSH URL

git remote get-url origin | sed 's/.:([^/]/[^/]*).git/\1/' | cut -d'/' -f2

From any URL (owner/repo format)

git remote get-url origin | sed 's/.[:/]([^/]/[^/]*).git/\1/'

Just repository name (no owner)

basename $(git remote get-url origin) .git

Extract Owner

From any URL

git remote get-url origin | sed 's/.[:/]([^/])/[^/]*.git/\1/'

Alternative with awk

git remote get-url origin | awk -F '[:/]' '{print $(NF-1)}'

Get Full Identifier (owner/repo)

Standard format for GitHub CLI/API

git remote get-url origin | sed 's/.[:/]([^/]/[^/]*).git/\1/'

With validation

REPO=$(git remote get-url origin 2>/dev/null | sed 's/.[:/]([^/]/[^/]*).git/\1/') echo "${REPO:-Unknown}"

Store in variable

REPO_FULL=$(git remote get-url origin | sed 's/.[:/]([^/]/[^/]*).git/\1/') echo "Repository: $REPO_FULL"

URL Format Examples

HTTPS URLs

Standard GitHub

https://github.com/owner/repo.git

Extract: owner/repo

Without .git suffix

https://github.com/owner/repo

Extract: owner/repo

GitHub Enterprise

https://github.company.com/owner/repo.git

Extract: owner/repo

SSH URLs

Standard SSH

git@github.com:owner/repo.git

Extract: owner/repo

Custom SSH port

ssh://git@github.com:443/owner/repo.git

Extract: owner/repo

Enterprise SSH

git@github.company.com:owner/repo.git

Extract: owner/repo

Parsing Patterns

Universal Parser (HTTPS or SSH)

Works for both HTTPS and SSH

parse_repo() { local url="$1"

Remove .git suffix

url="${url%.git}"

Extract owner/repo

if [[ "$url" =~ github.com:/ ]]; then echo "${BASH_REMATCH[1]}" elif [[ "$url" =~ :([^/]+/[^/]+)$ ]]; then echo "${BASH_REMATCH[1]}" fi }

REPO=$(parse_repo "$(git remote get-url origin)") echo "$REPO"

Robust Extraction with sed

Handle both HTTPS and SSH, with or without .git

git remote get-url origin
| sed -E 's#.*github.com[:/]##; s#.git$##'

Using awk

Split by : or / and get last two components

git remote get-url origin
| awk -F'[/:]' '{print $(NF-1)"/"$NF}'
| sed 's/.git$//'

Real-World Usage

With GitHub CLI

Get repo identifier for gh commands

REPO=$(git remote get-url origin | sed 's/.[:/]([^/]/[^/]*).git/\1/')

Use with gh

gh repo view "$REPO" gh issue list --repo "$REPO" gh pr list --repo "$REPO"

Or use current directory (gh auto-detects)

gh repo view

For API usage, multiple remotes, scripts, aliases, and integration examples, see REFERENCE.md.

Edge Cases

Case Check

No remote git remote get-url origin &>/dev/null

Non-GitHub git remote get-url origin | grep -q github.com

Multiple remotes Use git remote get-url upstream for fork source

Submodule git -C "$(git rev-parse --show-toplevel)" remote get-url origin

Quick Reference

Purpose Command

Full identifier (owner/repo) git remote get-url origin | sed 's/.[:/]([^/]/[^/]*).git/\1/'

Owner only git remote get-url origin | sed 's/.[:/]([^/])/[^/]*.git/\1/'

Name only basename $(git remote get-url origin) .git

Is GitHub? git remote get-url origin | grep -q github.com

Validate in git repo git rev-parse --git-dir &>/dev/null

List remotes git remote -v

Set origin git remote set-url origin git@github.com:owner/repo.git

Troubleshooting

Problem Fix

Remote not found git remote add origin git@github.com:owner/repo.git

Wrong remote git remote set-url origin <correct-url>

Parse failure Check raw URL: git remote get-url origin

Related Skills

  • github MCP - Use extracted repo name with GitHub API

  • github-actions-inspection - Pass repo to gh CLI commands

  • git-workflow - Identify repo for workflow operations

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

ruff linting

No summary provided by upstream source.

Repository SourceNeeds Review
General

imagemagick-conversion

No summary provided by upstream source.

Repository SourceNeeds Review
General

jq json processing

No summary provided by upstream source.

Repository SourceNeeds Review
General

api-testing

No summary provided by upstream source.

Repository SourceNeeds Review