Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jira-通过RESTAPI获得问题评级_Rest_Jira_Jira Rest Api_Jira Agile - Fatal编程技术网

Jira-通过RESTAPI获得问题评级

Jira-通过RESTAPI获得问题评级,rest,jira,jira-rest-api,jira-agile,Rest,Jira,Jira Rest Api,Jira Agile,我正试图通过REST获得Jira ID的排名: 这是我正在发送的GET请求: JIRA-HOST/rest/agile/1.0/issue/MyIssue 我得到的密钥是:customfield_10690,这是评级字段,但该字段的值不可读且不可解析,我得到的值是:“customfield_10690”:“0”i1qu83: 我能做什么?评级系统是一系列图像吗?像星星什么的?也许jira正试图将图像作为文本发送给你,而这正变得无法打印 如果是这种情况,我认为您唯一的选择是: 1.将评级系统更改

我正试图通过REST获得Jira ID的排名:

这是我正在发送的GET请求:

JIRA-HOST/rest/agile/1.0/issue/MyIssue
我得到的密钥是:customfield_10690,这是评级字段,但该字段的值不可读且不可解析,我得到的值是:
“customfield_10690”:“0”i1qu83:


我能做什么?

评级系统是一系列图像吗?像星星什么的?也许jira正试图将图像作为文本发送给你,而这正变得无法打印

如果是这种情况,我认为您唯一的选择是: 1.将评级系统更改为数字
2.如果值是一致的,请进行映射,以便将“0 | i1qu83:”映射到对代码有意义的评级。

您看到的值是一个

如果您需要数字排名(例如排名15/100),您可能希望使用JQL(其有限的查询语言)通过JIRA搜索端点获取问题的总列表,并在递增或更新某个排名编号时枚举结果或按键搜索所需的问题。如果您的查询返回多个结果,性能很重要,并且您只需要一个问题,那么您可能希望使用更智能的搜索,如

下面是一个使用以下命令的粗略示例:

从“jira客户端”导入jiraAPI
const jira=新jiraAPI({
协议:“https”,
主机:process.env['JIRA_host'],
用户名:process.env['JIRA_username'],
密码:process.env['JIRA_password'],
apiVersion:'2',
对,,
超时:30000,//30s
})
const JQL='project=“your project”和状态处于(“待办”、“正在进行”、“已阻止”)顺序,按状态描述,排名asc'
常量字段=[“键”、“优先级”、“状态”、“摘要”、“标签”、“受让人”]
const formatIssue=({issue:{key,fields={},rank=0,total=0})=>({
钥匙
等级
全部的
优先级:fields.priority.name,
状态:fields.status.name,
summary:fields.summary,
受让人:fields.assignee?fields.assignee.displayName:null,
标签:字段。标签
})
异步函数*issueGenerator({offset=0,limit=100}){
对于(设最大值=1;偏移量<最大值;偏移量+=限制){
const{total=0,maxResults=0,startAt=0,issues=[]}=wait jira.searchJira(JQL{
startAt:偏移量,
maxResults:极限,
字段:字段
})
最大值=总数
极限=最大结果
偏移量=startAt
for(设i=0,len=issues.length;iconsole.log(结果))
import jiraAPI from 'jira-client'

const jira = new jiraAPI({
  protocol: 'https',
  host: process.env['JIRA_HOST'],
  username: process.env['JIRA_USERNAME'],
  password: process.env['JIRA_PASSWORD'],
  apiVersion: '2',
  strictSSL: true,
  timeout: 30000, // 30s
})

const JQL = 'project = "your-project" AND status IN ("To Do", "In Progress", "Blocked") order by status desc, Rank asc'

const FIELDS = ['key', 'priority', 'status', 'summary', 'labels', 'assignee']

const formatIssue = ({ issue: { key, fields = {} }, rank = 0, total = 0 }) => ({
  key,
  rank,
  total,
  priority: fields.priority.name,
  status: fields.status.name,
  summary: fields.summary,
  assignee: fields.assignee ? fields.assignee.displayName : null,
  labels: fields.labels
})

async function* issueGenerator ({ offset = 0, limit = 100 }) {
  for (let max = 1; offset < max; offset += limit) {
    const { total = 0, maxResults = 0, startAt = 0, issues = [] } = await jira.searchJira(JQL, {
      startAt: offset,
      maxResults: limit,
      fields: FIELDS
    })

    max = total
    limit = maxResults
    offset = startAt

    for (let i = 0, len = issues.length; i < len; i++) {
      yield formatIssue({ issue: issues[i], rank: offset + i + 1, total })
    }
  }
}


async function fetchIssuesWithLabel (label) {
  const issueIterator = issueGenerator({ offset: 0, limit: 100 })
  const teamIssues = []

  for await (const issue of issueIterator) {
    if (issue.labels.includes(label)) {
      teamIssues.push(issue)
    }
  }

  return teamIssues
}

fetchIssuesWithLabel('bug').then(result => console.log(result))