본문으로 건너뛰기
버전: 2604.1

오픈소스 분석 요청 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"
}
}