summaryrefslogtreecommitdiff
path: root/plugins/jira
diff options
context:
space:
mode:
authorMarc Cornellà <marc.cornella@live.com>2019-10-24 17:57:01 +0200
committerGitHub <noreply@github.com>2019-10-24 17:57:01 +0200
commitcad48e38bfbfa6e3e0096caddf330d6fc8f1ffb9 (patch)
tree2b07ec259bbd2b1a4919245669900a87fa87a03b /plugins/jira
parent225425fe091ca052997833279ccc08643818c24a (diff)
parent40df67bc3b9b51caa24df5d220487043040d1f9a (diff)
downloadzsh-cad48e38bfbfa6e3e0096caddf330d6fc8f1ffb9.tar.gz
zsh-cad48e38bfbfa6e3e0096caddf330d6fc8f1ffb9.tar.bz2
zsh-cad48e38bfbfa6e3e0096caddf330d6fc8f1ffb9.zip
Merge branch 'master' into fabric_task_description
Diffstat (limited to 'plugins/jira')
-rw-r--r--plugins/jira/README.md2
-rw-r--r--plugins/jira/_jira1
-rw-r--r--plugins/jira/jira.plugin.zsh31
3 files changed, 27 insertions, 7 deletions
diff --git a/plugins/jira/README.md b/plugins/jira/README.md
index efb8a743a..091dccb97 100644
--- a/plugins/jira/README.md
+++ b/plugins/jira/README.md
@@ -21,6 +21,8 @@ jira new # opens a new issue
jira dashboard # opens your JIRA dashboard
jira reported [username] # queries for issues reported by a user
jira assigned [username] # queries for issues assigned to a user
+jira myissues # queries for you own issues
+jira branch # opens an existing issue matching the current branch name
jira ABC-123 # opens an existing issue
jira ABC-123 m # opens an existing issue for adding a comment
```
diff --git a/plugins/jira/_jira b/plugins/jira/_jira
index 03fe6a499..d64614233 100644
--- a/plugins/jira/_jira
+++ b/plugins/jira/_jira
@@ -7,6 +7,7 @@ _1st_arguments=(
'dashboard:open the dashboard'
'reported:search for issues reported by a user'
'assigned:search for issues assigned to a user'
+ 'branch:open the issue named after the git branch of the current directory'
'dumpconfig:display effective jira configuration'
)
diff --git a/plugins/jira/jira.plugin.zsh b/plugins/jira/jira.plugin.zsh
index 67c989457..e706948e9 100644
--- a/plugins/jira/jira.plugin.zsh
+++ b/plugins/jira/jira.plugin.zsh
@@ -2,13 +2,21 @@
#
# See README.md for details
-: ${JIRA_DEFAULT_ACTION:=new}
-
function jira() {
emulate -L zsh
- local action=${1:=$JIRA_DEFAULT_ACTION}
+ local action jira_url jira_prefix
+ if [[ -n "$1" ]]; then
+ action=$1
+ elif [[ -f .jira-default-action ]]; then
+ action=$(cat .jira-default-action)
+ elif [[ -f ~/.jira-default-action ]]; then
+ action=$(cat ~/.jira-default-action)
+ elif [[ -n "${JIRA_DEFAULT_ACTION}" ]]; then
+ action=${JIRA_DEFAULT_ACTION}
+ else
+ action="new"
+ fi
- local jira_url jira_prefix
if [[ -f .jira-url ]]; then
jira_url=$(cat .jira-url)
elif [[ -f ~/.jira-url ]]; then
@@ -35,7 +43,10 @@ function jira() {
echo "Opening new issue"
open_command "${jira_url}/secure/CreateIssue!default.jspa"
elif [[ "$action" == "assigned" || "$action" == "reported" ]]; then
- _jira_query $@
+ _jira_query ${@:-$action}
+ elif [[ "$action" == "myissues" ]]; then
+ echo "Opening my issues"
+ open_command "${jira_url}/issues/?filter=-1"
elif [[ "$action" == "dashboard" ]]; then
echo "Opening dashboard"
if [[ "$JIRA_RAPID_BOARD" == "true" ]]; then
@@ -51,8 +62,14 @@ function jira() {
echo "JIRA_DEFAULT_ACTION=$JIRA_DEFAULT_ACTION"
else
# Anything that doesn't match a special action is considered an issue name
- local issue_arg=$action
- local issue="${jira_prefix}${issue_arg}"
+ # but `branch` is a special case that will parse the current git branch
+ if [[ "$action" == "branch" ]]; then
+ local issue_arg=$(git rev-parse --abbrev-ref HEAD)
+ local issue="${jira_prefix}${issue_arg}"
+ else
+ local issue_arg=$action
+ local issue="${jira_prefix}${issue_arg}"
+ fi
local url_fragment=''
if [[ "$2" == "m" ]]; then
url_fragment="#add-comment"