mirror of
				https://github.com/nmasur/dotfiles
				synced 2025-11-04 15:13:16 +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
 |