經過PowerShell的invoke-webrequest和net.client聯合實現我的指定項目jira提交數的統計,其中涉及到了JSON對象的提交,代碼以下:web
$content = @{username='用戶名';password='密碼'} $JSON = $content|convertto-JSON -Compress $jiraUri = "http://jira.ms.netease.com" $apiUri = $jiraUri+"/rest/auth/1/session" $res = Invoke-WebRequest -Uri $apiUri -Method Post -Body $JSON -ContentType application/json $webClient = new-object net.webclient #Set encoding style here. $webClient.Encoding = [System.Text.Encoding]::GetEncoding("utf-8") $webClient.Headers.add("Cookie", $res.Headers["Set-Cookie"]) $keyWord = Read-Host "請輸入搜索關鍵詞(多個關鍵詞請用空格隔開)" $jql = "reporter in (用戶名) AND text ~ '"+$keyWord+"'" $JSON = @" { "jql": "$jql", "startAt": 0, "maxResults": 1000, "fields": [ "summary", "status", "assignee" ] } "@ $apiUri = "/rest/api/2/search" $uri = $jiraUri+$apiUri #Post json must added header. $webClient.Headers.Add("Content-Type", "application/json"); $searchResult = $webClient.UploadString($uri,$JSON) #Get issues. $issues = ($searchResult|ConvertFrom-Json).issues foreach($issue in $issues){ $issue.fields.summary } Write-Host "與關鍵詞相關的jira共有"$issues.Count"個" -ForegroundColor Green Read-Host
保存腳本到桌面右鍵PowerShell運行或者直接在ise中按F5反覆運行均可以,效果以下:json
原理:根據jql來實現經過標題關鍵字對jira的查找,也用到了jira rest api。api