浏览代码

Merge branch 'update/jira-plugin'

Closes #6506
Closes #6950
Closes #7962
Marc Cornellà 4 年之前
父节点
当前提交
480f1ecd96
共有 2 个文件被更改,包括 21 次插入10 次删除
  1. 3 0
      plugins/jira/README.md
  2. 18 10
      plugins/jira/jira.plugin.zsh

+ 3 - 0
plugins/jira/README.md

@@ -23,6 +23,9 @@ 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
+                # The branch name may have prefixes ending in "/": "feature/MP-1234",
+                # and also suffixes starting with "_": "MP-1234_fix_dashboard"
+                # In both these cases, the issue opened will be "MP-1234"
 jira ABC-123    # opens an existing issue
 jira ABC-123 m  # opens an existing issue for adding a comment
 ```

+ 18 - 10
plugins/jira/jira.plugin.zsh

@@ -63,25 +63,33 @@ function jira() {
   else
     # Anything that doesn't match a special action is considered an issue name
     # but `branch` is a special case that will parse the current git branch
+    local issue_arg issue
     if [[ "$action" == "branch" ]]; then
-      local issue_arg=$(git rev-parse --abbrev-ref HEAD)
-      local issue="${jira_prefix}${issue_arg}"
+      # Get name of the branch
+      issue_arg=$(git rev-parse --abbrev-ref HEAD)
+      # Strip prefixes like feature/ or bugfix/
+      issue_arg=${issue_arg##*/}
+      # Strip suffixes starting with _
+      issue_arg=(${(s:_:)issue_arg})
+      issue_arg=${issue_arg[1]}
+      if [[ "$issue_arg" = ${jira_prefix}* ]]; then
+        issue="${issue_arg}"
+      else
+        issue="${jira_prefix}${issue_arg}"
+      fi
     else
-      local issue_arg=$action
-      local issue="${jira_prefix}${issue_arg}"
+      issue_arg=${(U)action}
+      issue="${jira_prefix}${issue_arg}"
     fi
-    local url_fragment=''
+
+    local url_fragment
     if [[ "$2" == "m" ]]; then
       url_fragment="#add-comment"
       echo "Add comment to issue #$issue"
     else
       echo "Opening issue #$issue"
     fi
-    if [[ "$JIRA_RAPID_BOARD" == "true" ]]; then
-      open_command "${jira_url}/issues/${issue}${url_fragment}"
-    else
-      open_command "${jira_url}/browse/${issue}${url_fragment}"
-    fi
+    open_command "${jira_url}/browse/${issue}${url_fragment}"
   fi
 }