JIRA使用小结

问题类型

问题类型

列表包含系统中所有的问题类型,也可以新增问题类型

问题类型方案

问题类型方案用于确定哪些问题类型将提供给一组项目。它还允许指定的顺序介绍用户界面的问题类型。

子任务

工作流

工作流

作用于单个流程,比如缺陷流程、需求流程

工作流方案

作用于整个项目,一个工作流方案,是包含项目中所有的包括缺陷工作流、需求工作流等多个工作流的一个集合。

界面配置

创建一个界面

界面是对字段的排列布局,是创建问题编辑问题执行工作流过程时显示的页面。

  • 要选择 创建 or 编辑问题时显示的界面,请利用界面方案将其挂接到问题操作功能中 。
  • 为特定工作流过渡选择显示屏幕,请选择所属工作流过渡并编辑它。
    注意: 只能删除没有应用到界面方案以及没有关联到工作流界面
界面添加字段值

界面添加完成后,点击配置,进入字段值添加/编辑页面
通用配置字段如下:

Field Type
问题类型 系统域
主题 系统域
模块 系统域
描述 系统域
优先级 系统域
处理优先级 选择列表(单选)
报告人 系统域
经办人 系统域
解决版本 系统域
标签 系统域
关注人 选择用户(多选)
附件 系统域
创建一个界面方案

创建界面方案时,需要选择一个默认界面,选择前面创建的界面
页面方案允许您为每个问题操作选择相应的页面。 界面方案问题类型界面方案映射到问题类型上 , 再关联到项目上。
注意: 只能删除在问题类型界面方案中没有使用的界面方案

创建一个问题类型界面方案

创建问题类型界面方案时,需要选择一个界面方案,选择前面创建的界面方案
问题类型页面方案允许您选择哪个 页面方案 应用于指定的问题类型。然后, 问题类型的屏幕计划可以关联到某个或多个项目, 可以指定屏幕上的是什么计划, 因此什么为的屏幕应用于某一具体问题的操作的项目” 的问题。
注意: 你无法删除已经关联项目的问题类型界面方案

字段配置

自定义字段
字段配置

字段配置用于规划字段的状态,告诉JIRA如何控制字段。例如,可以在字段配置中设置所有输入或查看页面隐藏一个字段, 或决定一个字段在编辑时是必选项字段配置只有应用于 字段配置方案, 并且将方案关联到项目中时才会生效。

设置字段配置配置项的值

字段配置点击配置,进入具体字段列表,每个字段的配置项都一致,主要包括隐藏/显示必选项/可选择的

字段配置方案

字段配置方案字段配置映射到问题类型上。 字段配置方案可以关联到多个项目,项目中的问题通过字段配置问题类型的映射关系,而显示不同的字段。
编辑字段配置方案,选择前面创建的字段配置

修改项目各项配置

如果需要修改项目的配置,需要进入到该项目项目设置

修改项目的问题类型

行为-使用不同的方案,选择在问题类型方案中创建的类型

修改项目的工作流

插件及其作用

scriptrunner

该插件可用作jira工作流的一个验证器,用于在工作流转换时,增加额外的操作,比如如下功能:

  1. 在状态转换时,设置必填备注
    1.1 编辑工作流,选中需要修改的转换标线,点击验证器,进入验证器的添加页面
    1.2 点击添加验证器,进入验证器添加页面 1.3 为Validator添加状态转换参数 1.4 最后在添加一个转换说明 1.5 添加成功后如图所示

到这里算是完成了80%,在对BUG进行FIXED操作是,还是可能会出现没有弹窗的情况,这种情况主要是对转换操作没有设置界面,导致没有界面可以弹出来
所以需要最后一步操作,就是对转换动作添加界面

  1. 在转换状态时,可以添加脚本方式去设置执行自己想要做的事情
    添加方式如图:

  2. Script-Fields使用
    依次进入:设置-管理应用-Script Fields,点击Create Script Field按钮,再点击Custom Script Field

示例:获取最后变更到某个状态的时间

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
package com.onresolve.jira.groovy.test.scriptfields.scripts

import com.atlassian.jira.component.ComponentAccessor

def changeHistoryManager = ComponentAccessor.getChangeHistoryManager()
def created = changeHistoryManager.getChangeItemsForField(issue, "status").sort { a, b -> a.created == b.created ? 0 : a.created > b.created ? -1 : 1 }.find {
it.to == "12300"
}?.getCreated()

def createdTime = created?.getTime()

createdTime ? new Date(createdTime) : null

其中设置的12300即为目标状态的statusId,执行结果会返回一个最后变更到这个状态的时间,返回的格式由上面设置的Template字段格式来确定