I get so many casual mentions of ticket numbers in our discussions and I keep hacking old URLs for tickets to look them up, or clicking through JIRA boards and views to navigate to the proper ticket, only to have them pull up in a sidebar in JIRA requiring more clicks to get to a useful view.
So, I wrote a quick script in JIRA called gojira
to launch a browser window (macOS from the terminal):
open https://jira.example.com/browse/$1
With the above script, I can just invoke gojira PROJECT-1234
to bring up the ticket.
Ok, so that’s great but 90% of the ticket numbers are referencing the same project. So what if I want to only specify a ticket number some times? That’s when I finally looked up if you can test
(alias [ ]
) a regex in zsh
. Turns out that you can.
If regex
The fairly common =~
operator is available for test
/[]
in zsh
. You do have to double the square brackets for it to work (and single quote your regex):
if [[ "$1" =~ '[[:alpha:]]+-[[:digit:]]+' ]]
then
open https://jira.sdlc.appriss.com/browse/$1
else
# default to PROJECT if only a number is specified.
open https://jira.sdlc.appriss.com/browse/PROJECT-$1
fi
Why not a function?
Of course, this can also be handled in a zsh
function and added to your .zshrc
or .zlogin
:
function jira() {
if [[ "$1" =~ [[:alpha:]] ]]
then
open https://jira.sdlc.appriss.com/browse/$1
else
open https://jira.sdlc.appriss.com/browse/PROJECT-$1
fi
}