使用Powershell从JIRA Rest API解析问题密钥

时间:2016-09-08 12:41:26

标签: powershell jira jira-rest-api

我正在使用System Center Orchestrator和Powershell为JIRA设置自动化流程。在这个例子中,我已经有了JIRA Rest API的原始JSON数据。

function ConvertFrom-Json20([object] $item){ 
    add-type -assembly system.web.extensions
    $ps_js=new-object system.web.script.serialization.javascriptSerializer

    #The comma operator is the array construction operator in PowerShell
    return ,$ps_js.DeserializeObject($item)
}

[object]$JSON = '{Raw JSON Data from JIRA Variable}'

$results = ConvertFrom-Json20($JSON)

$key = @()
$count = @()
foreach( $issue in $results.issues ) { 
    $key += $issue.key
    $count += $key.count
}

$key = @($key | Where-Object {$_ -ne $null})
$count = @($count | Where-Object {$_ -ne $null})

我使用的服务器没有最新的Powershell软件包,这就是为什么我要包含ConvertFrom-Json20([object])功能的原因。在SCORCH中,$key$count是已发布的数据变量。

2 个答案:

答案 0 :(得分:0)

使用上面的代码,您可以从JIRA Rest API的JSON数据中获取Issue Key字段。

答案 1 :(得分:0)

对于powershell问题,如果在服务器上安装3.0版或更高版本,则有几种方法可以替换json转换函数。

  1. Regiser并部署以下集成包: http://orchestrator.codeplex.com/releases/view/76101
  2. 在Powershell脚本块中为Run .NET Script活动执行powershell: https://automys.com/library/asset/powershell-system-center-orchestrator-practice-template
  3. 我不明白为什么你需要遍历密钥并存储密钥的当前索引的基于1的值。鉴于以上关于powershell的内容,以下内容将为您提供与您所示相同的结果。在您使用它们时,$ key数组需要考虑元素的当前索引为零:

    $results = ConvertFrom-Json $JSON
    $key = $results.issues | Where-Object {$_.key -ne $null}