오픈소스 분석 요청 API
POSThttps://ondemand.sparrowcloud.ai/api/v1/analysis/tool/sca
설명
오픈소스 소프트웨어에서 알려진 취약점이나 라이선스 관련 문제를 식별하기 위해 사용자가 API 요청을 전송하고 해당 요청의 상태에 대한 응답을 수신할 수 있습니다.
요청
a. 분석할 파일의 저장소 위치와 필요한 경우 해당 저장소의 권한 정보 및 b. 분석 결과를 전달 받을 콜백 URL 정보가 필요합니다. 요청을 참고하여 API를 입력하세요.
응답
분석 요청을 전송한 직후에 성공 또는 실패 응답을 받게 됩니다. 자세한 내용은 오픈소스 분석 요청 API의 응답을 참고하세요.
콜백
요청에 입력한 콜백 정보에 따라 진행 상황 혹은 분석 완료 콜백을 받게 됩니다. 자세한 내용은 콜백을 참고하세요.
정보
분석 요청 과정에 대한 정보는 분석 요청과 콜백을 참고하세요.
{
"resultVersion": `2`,
"callbacks": [
{
"type": [
"ANALYSIS_COMPLETE"
],
"url": "CALLBACK_URL",
"headers": [
{
"key": "HEADER_KEY",
"value": "HEADER_VALUE"
}
]
}
],
"memo": "MEMO",
"scaOptions": {
"maxSourceSize": "SOURCE_SIZE",
"analysisSource": {
"type": "VCS",
"vcsInfo": {
"type": "git",
"url": "VCS_URL",
"auth": {
"id": "VCS_ID",
"password": "VCS_PASSWORD",
"authToken": "VCS_TOKEN"
},
"branch": "BRANCH_NAME",
"commitId": "COMMIT_ID",
"tag": "TAG_NAME"
}
},
"extensions": ["FILE_EXTENSION1", "FILE_EXTENSION2"],
"excludedPath": ["EXCLUDED_PATH1", "EXCLUDED_PATH2", "EXCLUDED_PATH3"]
}
}
요청 본문
응답
✔️ 성공 응답
요청 성공
분석 요청을 정상적으로 처리하면 200 OK와 함께 다음과 같은 응답을 받습니다.
{
"requestId": "REQUEST_ID",
"result": "SUCCESS",
"analysisList": [
{
"analysisId": "ANALYSIS_ID",
"reqestId": "REQUEST_ID",
"status": "INIT",
"toolType": "SCA",
"memo": "MEMO"
}
]
}
❌ 실패 응답
인증 실패
인증 정보가 올바르지 않은 경우 401 Unauthorized 응답을 받습니다.
잘못된 요청
잘못된 요청인 경우 400 Bad Request 응답과 함께 다음 정보를 수신하게 됩니다.
resultCode: 요청에 대한 결과를 코드로 표시합니다. 자세한 내용은 결과 코드 모음을 참고하세요.message: 오류 메시지를 표시합니다.콜백
✅ 분석 상태 콜백
{
"analysisId": "ANALYSIS_ID"
"requestId": "REQUEST_ID"
"type": "ANALYSIS_PROGRESS"
"status": "PRE_PROCESS"
"progress": null
"step": "STEP"
"totalStep": 5
"updateTime": "YYYY-MM-DDTHH:mm:ss.SSS±HH:mm"
}
☑️ 분석 종료 콜백
{
"analysisId": "ANALYSIS_ID"
"requestId": "REQUEST_ID"
"type": "ANALYSIS_COMPLETE"
"errorCode": null
"analysis": {
"analysisId": 2992
"requestId": 3837
"status": "COMPLETE"
"result": "SUCCESS"
"progress": null
"toolType": "SCA"
"memo": "MEMO"
"startTime": "YYYY-MM-DDTHH:mm:ss.SSS±HH:mm"
"endTime": "YYYY-MM-DDTHH:mm:ss.SSS±HH:mm"
"issueCount": "TOTAL_ISSUES"
}
}