mirror of
https://github.com/nmasur/dotfiles
synced 2024-12-25 20:34:53 +00:00
38 lines
993 B
Bash
Executable File
38 lines
993 B
Bash
Executable File
#!/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
|
|
echo "git checkout -b \"$issue_branch\""
|
|
fi
|