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

소스코드 분석 요청 API


POSThttps://ondemand.sparrowcloud.ai/api/v1/analysis/tool/sast

설명

소스코드 보안약점이나 품질 상 문제를 분석하기 위해 사용자가 API 요청을 전송하고 해당 요청의 상태에 대한 응답을 수신할 수 있습니다.

요청

a. 분석할 파일의 저장소 위치와 필요한 경우 해당 저장소의 권한 정보 및 b. 분석 결과를 전달 받을 콜백 URL 정보가 필요합니다. 요청을 참고하여 API를 입력하세요.

응답

분석 요청을 전송한 직후에 성공 또는 실패 응답을 받게 됩니다. 자세한 내용은 소스코드 분석 요청 API의 응답을 참고하세요.

콜백

요청에 입력한 콜백 정보에 따라 진행 상황 혹은 분석 완료 콜백을 받게 됩니다. 자세한 내용은 콜백을 참고하세요.

정보

분석 요청 과정에 대한 정보는 분석 요청과 콜백을 참고하세요.

요청

{
"resultVersion": `2`,
"callbacks": [
{
"type": [
"ANALYSIS_PROGRESS"
],
"url": "CALLBACK_URL",
"headers": [
{
"key": "HEADER_KEY",
"value": "HEADER_VALUE"
}
]
}
],
"memo": "MEMO",
"sastOptions": {
"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"]
}
}


  • 다른 방법으로 분석 제외 경로 설정하기
    1. .sparrow 파일 생성
    분석 대상 원격 저장소에 다음과 같은 yaml 형식으로 분석 제외 경로를 입력할 수 있습니다.
    sastOption:
    excludedPath:
    - "EXCLUDED_PATH1"
    - "EXCLUDED_PATH2"
    1. 분석 요청에 입력
    분석 요청의 sastOptions 필드에 아래와 같이 옵션을 입력합니다.
    "sastOptions":[
    {
    "key":"sparrowPropertyPath",
    "value": "test"
    }
    ]
    • key : sparrowPropertyPath
    • value : root 경로를 기준으로 옵션 파일의 상대 경로
    위처럼 입력하게 되면 root 경로의 test파일을 통해 분석 옵션을 적용합니다. 만약 root 경로에 test 파일이 존재하지 않는다면 root 경로에 .sparrow 파일을 사용합니다.
    1. 우선 순위
    파일로 설정한 옵션보다 분석 요청에서 설정한 옵션이 우선 순위가 높습니다. 또한, sparrowPropertyPath에서 설정한 파일이 .sparrow 파일보다 우선 순위가 높습니다.
  • 응답

    ✔️ 성공 응답

    요청 성공

    분석 요청을 정상적으로 처리하면 200 OK와 함께 다음과 같은 응답을 받습니다.

    {
    "requestId": "REQUEST_ID",
    "result": "SUCCESS",
    "analysisList": [
    {
    "reqestId": "REQUEST_ID",
    "analysisId": "ANALYSIS_ID",
    "status": "INIT",
    "toolType": "SAST",
    "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": "SAST"
    "memo": "MEMO"
    "startTime": "YYYY-MM-DDTHH:mm:ss.SSS±HH:mm"
    "endTime": "YYYY-MM-DDTHH:mm:ss.SSS±HH:mm"
    "issueCount": "TOTAL_ISSUES"
    }
    }