mirror of
https://github.com/nmasur/dotfiles
synced 2024-12-26 04:44:53 +00:00
38 lines
984 B
Plaintext
38 lines
984 B
Plaintext
|
#!/bin/sh
|
||
|
|
||
|
# Adapted from: https://seb.jambor.dev/posts/improving-shell-workflows-with-fzf/
|
||
|
# Requires the following variables to be set:
|
||
|
# - ATLASSIAN_EMAIL
|
||
|
# - ATLASSIAN_API_TOKEN
|
||
|
# - JIRA_HOSTNAME
|
||
|
# - JIRA_PROJECT
|
||
|
|
||
|
choose_issue() {
|
||
|
jq_template='"\(.key): \(.fields.summary)"'
|
||
|
query="project=$JIRA_PROJECT AND status not in (\"Done\") AND assignee=currentUser()"
|
||
|
|
||
|
branch_name=$(
|
||
|
curl \
|
||
|
--data-urlencode "jql=$query" \
|
||
|
--get \
|
||
|
--user "$ATLASSIAN_EMAIL:$ATLASSIAN_API_TOKEN" \
|
||
|
--silent \
|
||
|
--compressed \
|
||
|
"https://$JIRA_HOSTNAME/rest/api/2/search" |
|
||
|
jq ".issues[] | $jq_template" |
|
||
|
sed -e 's/"\(.*\)"/\1/' |
|
||
|
fzf \
|
||
|
--preview='jira-details {1}' \
|
||
|
--preview-window=top:wrap |
|
||
|
sed -e 's/: /:/' -e 's/[^a-zA-Z0-9:]/-/g' |
|
||
|
awk -F ":" '{printf "%s/%s", $1, tolower($2)}'
|
||
|
)
|
||
|
|
||
|
echo "$branch_name"
|
||
|
}
|
||
|
|
||
|
issue_branch=$(choose_issue)
|
||
|
if [ -n "$issue_branch" ]; then
|
||
|
git checkout -b "$issue_branch"
|
||
|
fi
|