풀 리퀘스트 경험
출시 상태
풀 리퀘스트 경험의 일부로, PR에서의 Snyk Agent 수정 기능은 Early Access 상태입니다.
풀 리퀘스트 경험(Pull Request experience)은 기본 풀 리퀘스트 검사 기능을 개선한 것입니다. 서로 다른 개발 도구 사이를 전환할 필요를 줄이고 소스 코드 관리 도구(SCM) 인터페이스 내에서 컨텍스트와 관련된 피드백을 제공함으로써 보안 검토 프로세스를 간소화합니다.
풀 리퀘스트 경험은 다음과 같은 기능으로 구성됩니다.
이슈 요약 코멘트는 마지막 PR 검사 결과의 요약된 보기를 제공하며, 발견된 사항을 심각도 및 유형별로 분류하여 풀 리퀘스트 내에 직접 표시합니다.
인라인 코멘트는 심각도, 취약점의 데이터 흐름 등에 대한 정보를 풀 리퀘스트 내에서 상세하게 제공합니다. 이를 통해 이슈 우선순위 지정 및 해결에 대해 신속한 결정을 내릴 수 있습니다.
PR에서의 Snyk Agent 수정 기능은 풀 리퀘스트 경험의 이전 기능과 제공된 권장 사항을 바탕으로 조치를 취할 수 있게 합니다.
필수 조건
사용자 역할 요구 사항
풀 리퀘스트 경험을 구성하고 관리하려면 사용자가 그룹 관리자(Group Admin)여야 합니다. 이는 풀 리퀘스트 경험이 조직 수준에서 구성되므로 설정을 위해 모든 통합에 액세스할 수 있어야 하기 때문입니다.
풀 리퀘스트 검사 활성화
풀 리퀘스트 경험은 각 통합별로 개별적으로 설정됩니다. 여러 통합이 있는 경우 각 통합에 대해 별도로 풀 리퀘스트 경험을 구성해야 합니다.
다음 사항이 완료되었는지 확인하십시오.
Snyk과 최소 하나 이상의 SCM 통합을 설정하고 리포지토리에서 하나 이상의 프로젝트를 가져옵니다.
Snyk 조직에 대해 Snyk Code가 활성화되어 있어야 합니다. 활성화되어 있지 않은 경우 담당자 또는 Snyk 지원팀에 문의하십시오.
풀 리퀘스트 경험 기능 요구 사항
일반적인 SCM 및 PR 검사 필수 조건 외에도 풀 리퀘스트 경험 내의 특정 기능에는 자체 요구 사항이 있습니다.
인라인 코멘트 기능을 구성하려면 코드 분석(Code analysis) PR 검사 설정을 활성화하십시오. 이는 조직 수준의 설정(Settings) > **통합(Integrations)**에서 설정할 수 있습니다.
GitHub 통합을 사용하는 경우 전용 GitHub 계정을 지정하십시오. 이는 Snyk이 풀 리퀘스트의 코멘트 출처를 식별하는 데 도움이 됩니다.

SCM 권한 및 액세스 범위 요구 사항
풀 리퀘스트 경험은 다양한 SCM 플랫폼과 통합되며, 각 플랫폼은 Snyk과의 성공적인 구성을 위해 특정 요구 사항이 있습니다. 기존 SCM 통합 설정은 풀 리퀘스트 경험과 즉시 연동되지만, GitHub (OAuth)의 경우 추가적인 Fix PR 토큰이 필요합니다. 자세한 내용은 사용자 권한 및 액세스 범위를 참조하십시오.
각 풀 리퀘스트 경험 기능에서 어떤 SCM 통합이 지원되는지에 대한 정보는 개별 기능 섹션인 이슈 요약 코멘트, 인라인 코멘트, PR에서의 Snyk Agent 수정을 참조하십시오.
통합 수준에서 풀 리퀘스트 경험 구성
PR 검사가 활성화된 Snyk 조직의 하나 이상의 통합에 대해 풀 리퀘스트 경험을 구성합니다.
풀 리퀘스트 경험을 활성화하려는 Snyk 조직을 선택합니다. 설정(Settings) > 통합(Integrations) > 소스 제어(Source control) > **설정 편집(Edit settings)**으로 이동하여 설정 구성을 엽니다.
다음 변경 사항을 구성하고 저장하십시오.
이슈 요약 코멘트 활성화: PR 검사 결과를 집계하는 이슈 요약 코멘트를 각 풀 리퀘스트에 생성하려면 이 옵션을 활성화합니다. 이 옵션이 비활성화되면 전체 풀 리퀘스트 경험이 비활성화됩니다.
성공 사례에 대해서도 코멘트 생성: 기본적으로 PR 검사에서 취약점이 발견되지 않아도 이슈 요약 코멘트가 생성됩니다. 실패하지 않은 PR 검사에 대해 이슈 요약 코멘트 생성을 중단하려면 이 옵션을 비활성화하십시오.
인라인 코멘트 활성화: Snyk Code PR 검사에서 발견된 각 이슈에 대해 코멘트를 추가하려면 인라인 코멘트를 활성화합니다.
PR에서의 Snyk Agent 수정 활성화: Snyk Code PR 검사에서 발견된 이슈에 대해 Snyk Agent 수정 제안을 요청하고 수정을 PR 브랜치에 적용하려면 이 옵션을 활성화합니다.


이슈 요약 코멘트
이슈 요약 코멘트 기능은 각 풀 리퀘스트에 코멘트를 추가하여 최신 PR 검사 결과를 요약합니다. 요약에는 수행된 검사 유형과 심각도별 발견 사항 분석이 포함됩니다. **세부 정보 보기(View Details)**를 선택하여 Snyk 웹 UI에서 PR 검사 세부 정보에 액세스하십시오.

인라인 코멘트
인라인 코멘트 기능은 Snyk Code 풀 리퀘스트 검사에서 식별된 각 이슈에 대해 상세한 코멘트를 추가합니다. 각 코멘트에는 심각도 수준, 이슈 이름 및 짧은 설명, 추가 정보를 위한 유용한 링크, 그리고 해당하는 경우 데이터 흐름이 포함됩니다. 최상의 결과를 위해 Snyk은 한 번에 하나의 인라인 코멘트에 대해 수정을 생성하고 적용할 것을 권장합니다. 이는 한 수정을 적용했을 때 이전에 생성된 다른 수정과 충돌이 발생하는 상황을 방지하기 위함입니다.
이 기능은 풀 리퀘스트 수준에서 10개의 인라인 코멘트로 제한됩니다. 한도를 초과하면 요약 코멘트에 메시지가 표시됩니다.
GitLab 및 Azure Repos의 경우 다음 조건을 고려하십시오.
인라인 코멘트의 데이터 흐름(Data Flow) 섹션을 사용할 수 없습니다.
수정된 줄 외부에서 도입된 취약점에 대한 인라인 코멘트는 GitLab에서 사용할 수 없습니다.
Snyk Local Code Engine을 사용하여 수행된 코드 분석에 대한 인라인 코멘트는 사용할 수 없습니다.
Broker 통합의 경우 인라인 코멘트의 데이터 흐름 섹션은 GitHub, GitHub Cloud App, Bitbucket Cloud 및 Bitbucket Connect App에서만 사용할 수 있습니다.

PR에서의 Snyk Agent 수정
출시 상태
PR에서의 Snyk Agent 수정 기능은 Early Access 상태입니다. PR에서의 Snyk Agent 수정은 기능이 활성화된 후에 생성된 인라인 코멘트에서만 작동합니다.
PR에서의 Snyk Agent 수정 기능을 사용하면 사용자가 Snyk Code 풀 리퀘스트 검사에서 식별되어 인라인 코멘트로 게시된 취약점에 대해 수정을 요청하고 적용할 수 있습니다. 이 기능을 활성화하면 사용자는 다음과 같은 방식으로 인라인 코멘트와 상호 작용할 수 있습니다.
인라인 코멘트에
@snyk /fix명령을 사용하여 답글을 달아 초기 수정을 요청합니다.


이전에 생성된 수정 사항에
@snyk /fix명령으로 답글을 달아 다른 제안을 요청합니다. Snyk Agent 수정은 이슈 유형에 따라 최대 5개의 잠재적 수정 사항을 생성할 수 있습니다.@snyk /apply #명령을 사용하여 특정 수정을 적용합니다. 여기서 #은 사용자가 적용하려는 제안의 번호입니다. Snyk은 선택된 수정을 포함하는 커밋을 PR 브랜치에 생성합니다.
예외 사항
@snyk /fix명령은 번개 아이콘과 명령 설명이 있는 인라인 코멘트에서 자동으로 수정 가능한 취약점에 대해서만 사용할 수 있습니다. 지원되는 언어 및 제한 사항은 code-vulnerabilities-automatically.md를 참조하십시오.수정 제안은 각 제안에 표시된 시간이 지나면 #cache-retention-period-related-to-vulnerability-source-data에 따라 만료됩니다. 만료 후에는
@snyk /fix명령을 사용하여 새로운 수정을 요청할 수 있습니다.PR에서의 Snyk Agent 수정은 Snyk Code Local Engine에서 지원되지 않습니다.
@snyk /fix및@snyk /apply #명령은 Snyk에서 생성한 인라인 코멘트에 대한 답글로만 사용할 수 있으며, 다른 코멘트 스레드에서 생성된 명령은 처리되지 않습니다.
자주 묻는 질문 (FAQ) 및 문제 해결
문제 해결 시나리오 및 관련 해결 방법에 대한 자세한 설명은 PR 검사 문제 해결을 참조하십시오.
Snyk 발견 사항을 바탕으로 풀 리퀘스트를 차단하려면 어떻게 해야 하나요?
PR 테스트는 GitHub의 브랜치 보호 규칙과 같이 소스 제어 관리 플랫폼 내에서 선택 사항 또는 차단 사항으로 구성됩니다. 이슈 방지에 대해 자세히 알아보려면 PR에서 Snyk 활성화 및 구성을 방문하십시오.
오탐(False Positive)은 어떻게 처리하나요?
발견된 사항이 오탐인 경우 SCM에서 수동으로 코멘트를 해결(resolve)할 수 있습니다. 이후 PR 검사에서 해당 이슈가 다시 감지되더라도 해결된 상태로 유지됩니다.
새로운 커밋이 푸시되면 코멘트는 어떻게 되나요?
이슈 요약 코멘트
새로운 커밋이 풀 리퀘스트에 푸시되면 기존 요약 코멘트가 해당 커밋에 대한 최신 Snyk 스캔 결과로 업데이트됩니다. 즉, 최신 분석을 반영하여 이슈 수가 새로 고침됩니다. 새로운 이슈 요약 코멘트가 추가되지 않으므로 개발자는 알림 폭탄 없이 잠재적 취약점에 대한 간결한 보기를 얻을 수 있습니다.
인라인 코멘트
푸시된 모든 커밋에 대해 Snyk Code PR 검사가 새로운 이슈를 감지하면 리뷰가 생성됩니다. 각 이슈는 인라인 코멘트로 추가됩니다. 이전 커밋의 이슈가 새로운 커밋에서 수정되면 해당 코멘트는 해결됨으로 표시됩니다. 해결되지 않은 이슈는 인라인 코멘트로 남습니다.
왜 리포지토리에 PR 코멘트가 나타나지 않나요?
리포지토리에 PR 코멘트가 표시되도록 하려면 Snyk 풀 리퀘스트 경험을 위한 필수 조건 섹션을 검토하십시오. 모든 필수 조건이 충족되고 제대로 이행되었는지 확인하십시오.
인라인 코멘트는 Snyk Code PR 검사에서 감지된 이슈에 대해서만 사용할 수 있습니다. 이슈가 인라인 코멘트로 표시되도록 하려면 다음 요구 사항을 확인하십시오.
조직에 대해 Snyk Code가 활성화되어 있습니다.

통합을 위한 풀 리퀘스트 상태 검사 섹션에서 **코드 분석(Code Analysis)**이 활성화되어 있습니다.

통합을 위한 풀 리퀘스트 경험(Pull Request Experience) 섹션에서 **인라인 코멘트(Inline Comments)**가 활성화되어 있습니다.

왜 일부 발견 사항이 인라인 코멘트로 표시되지 않나요?
인라인 코멘트는 Snyk Code PR 검사에서 감지된 이슈에 대해서만 사용할 수 있습니다. 동작은 SCM 플랫폼에 따라 다를 수 있습니다. 대부분의 플랫폼에서는 발견된 각 이슈에 대해 인라인 코멘트가 추가됩니다. 그러나 GitLab에서는 풀 리퀘스트에서 수정된 파일 내에서 발견된 이슈에 대해서만 인라인 코멘트가 추가됩니다.
Snyk Broker가 지원되나요?
네. Broker 통합은 이슈 요약 코멘트와 인라인 코멘트 모두에서 지원되며 Classic 및 Universal Broker와 호환됩니다.
이슈 요약 코멘트 및 인라인 코멘트 기능을 위해 Snyk Broker 버전 4.194 이상이 지원됩니다.
PR에서의 Snyk Agent 수정은 Snyk Broker 버전 4.219 이상에서 지원됩니다.
왜 설정을 활성화한 후에도 PR에서 Snyk Agent 수정이 작동하지 않나요?
PR에서의 Snyk Agent 수정 설정을 활성화하면 사용자 리포지토리의 Snyk 웹훅을 기능에 필요한 풀 리퀘스트 코멘트 이벤트 구독으로 업그레이드하는 백그라운드 프로세스가 시작됩니다. 이 프로세스는 완료하는 데 몇 분 정도 걸릴 수 있습니다. 이 시간 동안 기능이 완전히 활성화되거나 사용 가능하지 않을 수 있으며, Snyk은 PR의 명령에 반응할 수 없습니다.
웹훅 업그레이드 프로세스를 확인하려면 SCM의 리포지토리 설정 페이지로 이동하여 Snyk 웹훅이 'Pull request review comments' 이벤트에 구독되어 있는지 확인하십시오.
왜 단일 명령을 보냈는데 Snyk Agent가 명령 실행이 이미 진행 중이라고 답장하나요?
리포지토리가 여러 Snyk 조직으로 가져오기 되었고 리포지토리에 여러 Snyk 웹훅이 정의되어 있는 경우에 발생할 수 있습니다. 최상의 결과를 위해 단일 Snyk 웹훅만 풀 리퀘스트 코멘트 이벤트에 구독되어 있는지 확인하십시오. 필요한 경우 SCM의 리포지토리 설정 페이지에서 Snyk 웹훅 이벤트 구독을 편집할 수 있습니다.
왜 Bitbucket에서 스레드의 첫 번째 코멘트에 답글을 달라는 메시지와 함께 코멘트가 실패했나요?
경우에 따라 길거나 복잡한 스레드에서 코멘트 답글의 명령이 실행되지 않을 수 있습니다. 스레드의 길이나 구조로 인해 답글을 올바르게 처리하지 못하기 때문입니다. 드물게 이 문제가 발생하는 경우 스레드의 첫 번째 코멘트로 스크롤하여 해당 코멘트에 명령으로 답글을 달아주십시오. 이렇게 하면 명령을 성공적으로 처리할 수 있으며 항상 대체 방법으로 작동합니다.
왜 Bitbucket Cloud의 일부 포크(fork)에서 온 풀 리퀘스트에 AI 수정 적용이 작동하지 않나요?
AI 수정은 동일한 워크스페이스 내의 리포지토리에서 온 풀 리퀘스트(예: base_workspace/fork_repo → base_workspace/base_repo)를 지원하지만, 다른 워크스페이스에 위치한 포크에서 온 풀 리퀘스트(예: fork_workspace/fork_repo → base_workspace/base_repo)는 지원하지 않습니다. 이 제한은 통합이 베이스 워크스페이스에만 액세스 권한이 있는 경우 Bitbucket Cloud Connect 앱에만 해당됩니다. 이러한 크로스 워크스페이스 풀 리퀘스트에 대해 AI 수정을 활성화하려면 대신 Bitbucket Cloud PAT 통합으로 전환할 수 있습니다.
Bitbucket Cloud에서 Snyk Agent 수정 기능에 문제가 있습니다. 어떻게 디버깅할 수 있나요?
Bitbucket Cloud에서 에이전트 기반 수정에 문제가 있고 원인을 식별할 수 없는 경우, 유용한 문제 해결 단계는 Bitbucket 리포지토리 설정에서 웹훅 기록을 검사하는 것입니다.
Snyk Agent 수정 기능은 Bitbucket Cloud와 당사 시스템 간의 통신을 위해 웹훅에 의존합니다. 웹훅 기록을 확인하여 웹훅이 성공적으로 전달되는지 확인하고 서비스의 응답을 검사할 수 있습니다. 이는 네트워크 문제, 구성 문제 또는 서비스에서 반환된 오류를 진단하는 데 도움이 될 수 있습니다. Bitbucket Cloud에서 웹훅 기록에 액세스하려면 다음을 수행하십시오.
Bitbucket Cloud의 리포지토리로 이동합니다.
왼쪽 사이드바에서 Repository settings를 클릭합니다.
"WORKFLOW" 섹션 아래에서 Webhooks를 선택합니다.
통합에 사용된 웹훅을 찾습니다.
웹훅 URL 옆의 View requests를 클릭합니다.
Enable History를 클릭합니다.
새로운 Snyk Agent 수정 명령을 게시하여 웹훅 전달 내역을 확인합니다.
Last updated