mirror of
				https://github.com/nmasur/dotfiles
				synced 2025-10-22 05: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
 |