Jira使用 --- 经验分享

在Jira中,执行的代码/脚本都是groovy语法

Jira使用 - Create Project.
Jira使用 - Create Issue.
Jira使用 - Create Screens.
Jira使用 - Create Workflows.
Jira使用 - 组别和权限.

1.获取Field Value

1.1获取当前页中的Field Value

def systemField = getFieldByName("Field Name")
def value = systemField.getValue() 

1.2获取当前issue中其它页的Field Value

import org.apache.log4j.Level
import org.apache.log4j.Logger
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.component.ComponentAccessor

def log = Logger.getLogger("data-api")
log.setLevel(Level.INFO)

MutableIssue issue = (MutableIssue) getUnderlyingIssue()
def optionName = ComponentAccessor.customFieldManager.customFieldObjects.findByName("Field Name")
def optionValue = issue.getCustomFieldValue(optionName)
log.info("request term name is:" + optionValue)

1.3获取单选/多选的值

1.在Behavious中先初始化。进行下面的 → 2.1步骤👇👇
2.对多选/单选栏位进行操作,找到栏位后,点击Add

在这里插入图片描述

3.在编码区进行编码,如下图👇

在这里插入图片描述

import org.apache.log4j.Level
import org.apache.log4j.Logger
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.component.ComponentAccessor

def isSystemField = getFieldById(getFieldChanged())
def Value = isSystemField.getValue()

2.单选or多选

1.Jira管理员账户登录,点击小齿轮,选择Manage apps

在这里插入图片描述

2.进入到Behaviours,按下面的语法进行查询👇👇

在这里插入图片描述

2.1文档参考

ScriptRunner for jira Server: https://docs.adaptavist.com/sr4js/latest/features/behaviours/behaviours-examples/select-list-conversions.

//单选
getFieldByName("TextFieldA").convertToSingleSelect([ // <1>
    ajaxOptions: [
        url : getBaseUrl() + "/rest/scriptrunner-jira/latest/issue/picker",
        query: true, // keep going back to the sever for each keystroke
 
        // this information is passed to the server with each keystroke
        data: [
            currentJql  : "project = SSPA ORDER BY key ASC", // <2>
            label       : "Pick high priority issue in Support project", // <3>
            showSubTasks: false, // <4>
 
            // specify maximum number of issues to display, defaults to 10
            // max       : 5,
        ],
        formatResponse: "issue" // <5>
    ],
    css: "max-width: 500px; width: 500px", // <6>
])
// 多选
getFieldByName("TextFieldC").convertToMultiSelect([
    ajaxOptions: [
        url           : getBaseUrl() + "/rest/scriptrunner/latest/custom/eventTypes",
        query         : true,
        formatResponse: "general"
    ]
])

2.2运行script

1.首先要把脚本进行Mapping
即要让脚本知道,这个function对应的Project and issue type

在这里插入图片描述

2.结合UI界面进行测试

2.3查看log

1.找到Built-in script

在这里插入图片描述

2.滑到最下面

在这里插入图片描述

3.选择jira log

在这里插入图片描述

3.呼叫外部Api

官方文档链接: https://scriptrunner.adaptavist.com/4.3.5/jira/behaviours-conversions.html#_walkthrough_pick_from_jira_issues.

3.1封装外部api,找到Rest Endpoints

在这里插入图片描述

import com.onresolve.scriptrunner.runner.rest.common.CustomEndpointDelegate
import groovy.json.JsonBuilder
import groovy.transform.BaseScript
import groovyx.net.http.ContentType
import groovyx.net.http.HTTPBuilder
import groovyx.net.http.Method

import javax.ws.rs.core.MultivaluedMap
import javax.ws.rs.core.Response

@BaseScript CustomEndpointDelegate delegate

githubRepoQuery(httpMethod: "GET") { MultivaluedMap queryParams -> 

    //这里获取Behaviours中api传的参数
    def query = queryParams.getFirst("query") as String

    def rt = [:]
    if (query) {
        def httpBuilder = new HTTPBuilder("https://api.github.com")
        def repos = httpBuilder.request(Method.GET, ContentType.JSON) {
            uri.path = "/search/repositories"
            //进行赋值
            uri.query = [q:"$query in:name", sort: "stars", order:"desc"]
            headers."User-Agent" = "My JIRA" 

             response.failure = { resp, reader ->
                 log.warn("Failed to query GitHub API: " + reader.text)
             }
        }

        def repoNames = repos["items"]*."full_name"
        rt = [
            items: repoNames.collect { String repo ->
                [
                    value: repo,
                    html : repo.replaceAll(/(?i)$query/) { "<b>${it}</b>" }, 
                    label: repo,
                ]
            },
            total: repos["total_count"],
            footer: "Choose repo... (${repoNames.size()} of ${repos["total_count"]} shown...)"
        ]
    }

    return Response.ok(new JsonBuilder(rt).toString()).build();
}

=>外部api的封装格式
在这里插入图片描述注意:三个属性分别是下拉时的显示,点击确定后的显示和这个栏位的值

3.2Behaviours调用Endpoints,一般情况就是单选/多选

getFieldByName("TextFieldB").convertToMultiSelect([ 
    ajaxOptions: [
        url : getBaseUrl() + "/rest/scriptrunner/latest/custom/githubRepoQuery", 
        query: true, // keep going back to the sever for each keystroke
        minQueryLength: 4, 
        keyInputPeriod: 500, 
        formatResponse: "general", 
    ]
])

3.3UI界面测试,图片仅供参考

在这里插入图片描述

3.4多级联动,通过输入框内容模糊查询

// An highlighted block
var foo = 'bar';

4.jql查询Jira issue

1.进入issue查询界面

在这里插入图片描述

2.常规查询
选择对应issue的状态,然后点击Search就OK啦

在这里插入图片描述

3.执行语句查询

在这里插入图片描述
链接: 官方查询语句文档参考.

Demo:jql language
note:时间只有年月日时分,没有秒
project = xxxx and  status was not "INTERFACE PROCESS" BEFORE "2022/02/14" and issuetype  = "Data Pipeline Register" and status = "INTERFACE PROCESS"

5.封装Jira Service

慢慢来,不要急

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Jira是一个非常强大的项目管理工具,可以用于跟踪任务、分配工作、监控进展等。Jira应用与实战电子书是一本专门针对Jira使用和实际应用的电子书。 这本电子书主要包括以下几个方面的内容:Jira的基本概念和特点、Jira的安装和配置、Jira使用方法和技巧、Jira的集成和扩展等。 在Jira的基本概念和特点部分,该电子书会详细介绍Jira的核心概念,如issue、项目、工作流等。同时还会解释一些Jira的特点,比如可定制性、灵活性和可扩展性。 在Jira的安装和配置部分,该电子书会提供详细的安装步骤和配置指南,帮助读者快速搭建和配置一个Jira系统。 在Jira使用方法和技巧部分,该电子书会介绍如何创建和跟踪任务、如何分配工作、如何制定工作流程等。同时还会分享一些使用Jira的技巧和经验,帮助读者更好地利用Jira管理项目。 在Jira的集成和扩展部分,该电子书会介绍如何将Jira与其他工具集成,比如Confluence、Bitbucket等。同时还会介绍如何利用Jira的插件和扩展功能,进一步增强Jira的功能和灵活性。 总的来说,Jira应用与实战电子书是一本非常实用的指南,可以帮助读者深入了解Jira的各种功能和应用场景,提升项目管理能力。无论是初学者还是有一定经验Jira用户,都能从该电子书中获得很多有价值的内容和建议。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百世经纶『一页書』

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值