[JIRA] 지라 API 사용하여 티켓 등록하기 (feat. 윈도우 쉘스크립트로 테스트)
2024. 10. 22. 18:13ㆍIT
반응형
리눅스에서는 curl 과 jq를 사용해서 처리해야 하는 일을 윈도우와 파워쉘로 해보려면 아래와 같이 해야한다.
Windows PowerShell에서는 jq 대신 JSON 데이터를 다루기 위해 Invoke-RestMethod 의 ConvertFrom-Json 을 사용할 수 있어 쉘 스크립트만 잘 작성해도 지라 API 테스트가 가능하다. 물론 포스트맨으로 작성해도 되는데, 이렇게 코드화 시켜두면 깃랩 CI 스크립트에도 응용해서 사용할 수 있다.
PowerShell의 Invoke-RestMethod 의 ConvertFrom-Json 은 JSON 데이터를 사용할 수 있는 객체로 변환해주기 때문에, 이를 활용해서 소나큐브 API에서 받은 JSON 데이터를 파싱하고 처리할 수 있다.
다음은 PowerShell에서 JSON 데이터를 처리하고 지라 티켓을 생성하는 방식으로 스크립트를 수정한 예시를 보자.
# SonarQube API로부터 BLOCKER와 CRITICAL 이슈를 가져옵니다.
$issues = Invoke-RestMethod -Uri "http://localhost:9000/api/issues/search?pageSize=500&componentKeys=[Your Project Key]&severities=BLOCKER,CRITICAL&types=BUG,VULNERABILITY"
# JSON 응답이 잘 들어왔는지 확인
$issues | ConvertTo-Json
# 전체 이슈 수 확인
$issueCount = $issues.total
# 이슈가 있는 경우 처리
if ($issueCount -gt 0) {
Write-Host "$issueCount 건의 Blocker 및 Critical 이슈가 발견되었습니다. 개별 지라 티켓을 생성합니다."
foreach ($issue in $issues.issues) {
$message = $issue.message
$severity = $issue.severity
$component = $issue.component
$line = if ($issue.line) { $issue.line } else { "N/A" }
# 각 이슈에 대해 Jira 티켓 생성
$jiraData = @{
fields = @{
project = @{ key = "ITCOMPETENCE" }
summary = "[$severity] $message (컴포넌트: $component, 라인: $line)"
description = "Detected $severity issue:`nMessage: $message`nSeverity: $severity`nComponent: $component`nLine: $line"
issuetype = @{ id = 10002 }
}
} | ConvertTo-Json -Compress
# 지라 티켓 생성
Invoke-RestMethod -Method Post -Uri "https://yourjira.com/rest/api/2/issue" -Headers @{
Authorization = "Bearer [JIRA TOKEN]"
"Content-Type" = "application/json"
} -Body $jiraData
}
} else {
Write-Host "Blocker 또는 Critical 이슈가 없습니다. 지라 티켓을 생성하지 않습니다."
}
정리
- Invoke-RestMethod: curl 대신 PowerShell에서는 Invoke-RestMethod를 사용해 REST API 요청을 보낼 수 있다.
- ConvertFrom-Json: PowerShell의 JSON 데이터를 객체로 변환해주는 기능을 사용해 데이터를 다룰 수 있다.
- JSON 필드 접근: $issue.message, $issue.severity 등으로 쉽게 필드를 접근할 수 있으며, 특정 필드가 없을 때 기본값을 설정하는 부분도 if 문을 통해 처리할 수 있다.
이 방법을 통해 윈도우 PoweShell 환경에서도 JSON 데이터를 파싱하고 지라 티켓을 생성 테스트를 할 수 있다.
반응형
'IT' 카테고리의 다른 글
[SonarQube] 코드 품질 분석 결과 API 사용해보기 - 삽질기1 (0) | 2024.10.29 |
---|---|
[SonarQube] 소나큐브 분석 결과 API 활용하기 (feat. Jira + Gitlab) (1) | 2024.10.24 |
[AI후기] 갤럭시탭S10+ 삼성 인터넷 번역 기능 사용기 (0) | 2024.10.12 |
[후기] 갤럭시탭S10+ USIM 개통 후기 (feat. tplus U+ 알뜰폰) (2) | 2024.10.12 |
[비교] 갤럭시탭S10+ vs 갤럭시탭S8울트라 외관 비교 (0) | 2024.10.10 |