gh.fish -- Quickly visit a repo's forge
Posted on 2019-10-20 13:15 +0100 in Coding • 2 min read
These days fish is my shell of choice. I started out with bash back in the 1990s, went through a bit of a zsh/oh-my-zsh phase, but earlier this year finally settled on fish.
At some point I might write a post about my fish config, and why fish works well for me. But that's an idea for another time.
In this post I thought I'd share a little snippet of code that can come in handy now and again.
Sometimes I find myself inside a git repo, in the shell, and I want to get
to the "forge" for
that repo. This is most often either on GitHub, or in
a company-local installation of GitLab.
To get there quickly I wrote
gh.fish
:
##############################################################################
# Attempt go visit the origin hub for the current repo.
function gh -d "Visit the repo in its origin hub"
# Check that there is some sort of origin.
set origin (git config --get remote.origin.url)
# If we didn't get anything...
if not test "$origin"
# ...complain and exit.
echo "This doesn't appear to be a git repo with an origin"
return 1
end
# Open in the browser.
open "https://"(string replace ":" "/" (string replace -r '\.git$' "" (string split "@" $origin)[ 2 ]))
end
### gh.fish ends here
The idea is pretty simple: I see if the repo has an origin of some
description and, if it has, I slice and dice
it into something
that looks like the URL you'd expect to find for a GitHub or GitLab repo.
Finally I use
open
to open the
URL in the environment's browser of choice.