시크릿 스캔 개선: API, 웹훅 및 위임 워크플로우에 대한 알림

발행: (2026년 4월 9일 AM 04:56 GMT+9)
9 분 소요

Source: GitHub Changelog

향후 개선 사항

이번 주에 우리는 APIs, webhooks, 및 delegated workflows에 대한 여러 개선 사항을 출시합니다. 이러한 업데이트는 비밀 스캔 기능에 대한 개발자 경험을 향상시키려는 지속적인 약속을 강화합니다.

  • APIs – 간소화된 엔드포인트와 명확한 문서화.
  • Webhooks – 더 신뢰할 수 있는 전달 및 확장된 이벤트 유형.
  • Delegated Workflows – 간소화된 구성 및 향상된 오류 처리.

개발자를 위해, 개발자가 만든 것입니다.

변경 사항 {#whats-changing}

Secret scanning은 새로운 API 필터, 풍부한 웹훅 페이로드, 그리고 위임된 알림 워크플로우에 대한 개선을 도입합니다:

  • exclude_secret_types 필터
    GitHub UI에서 이미 사용할 수 있는 제외 필터(-secret-type:)를 이제 REST API를 통해 사용할 수 있습니다.

  • 알림 위치에 html_url
    알림 위치 객체에 이제 GitHub의 해당 콘텐츠에 대한 직접 링크(html_url)가 포함됩니다. 이는 REST API 응답과 웹훅 페이로드 모두에 적용됩니다.

  • 위임된 우회‑email 개선 사항

    • 검토자는 우회 요청의 만료 기한을 표시하는 이메일을 받습니다.
    • 개발자는 거부 요청을 제출할 때 확인 이메일을 받습니다.
  • API/웹훅의 종료 요청 댓글
    요청자의 댓글, 검토자의 댓글 및 검토자의 사용자 이름이 이제 위임된 종료에 대한 알림 페이로드에 포함됩니다.

  • 버그 수정
    알림이 위임된 종료 승인을 통해 닫힐 때 resolution_comment가 더 이상 null이 아닙니다.

새로운 exclude_secret_types API 필터

GitHub은 비밀 유형을 자주 추가합니다. 포함 기반 필터에 의존하면 이러한 새로운 패턴을 처리하기 위해 스크립트를 지속적으로 업데이트해야 합니다.
제외 필터를 사용하면 관심 없는 비밀 유형만 지정하면 되며, 새로 추가된 유형은 자동으로 포함됩니다.

Secret Scanning Alerts API가 이제 exclude_secret_types 쿼리 매개변수를 지원합니다. 이를 통해 유지하고 싶은 모든 유형을 일일이 나열하지 않고도 특정 비밀 유형을 결과에서 제외할 수 있습니다.

영향을 받는 엔드포인트

세 가지 목록 엔드포인트 모두 새 매개변수를 사용할 수 있습니다:

  • GET /repos/{owner}/{repo}/secret-scanning/alerts
  • GET /orgs/{org}/secret-scanning/alerts
  • GET /enterprises/{enterprise}/secret-scanning/alerts

사용 방법

exclude_secret_types 쿼리 매개변수에 쉼표로 구분된 비밀 유형 슬러그 목록을 전달합니다.

GET https://api.github.com/orgs/octo-org/secret-scanning/alerts?exclude_secret_types=aws_access_key,slack_token

Note: 동일한 요청에 secret_type exclude_secret_types를 모두 사용하면 422 Unprocessable Entity 오류가 발생합니다. 두 방법 중 하나만 선택하십시오.

Source:

알림 위치 html_url 필드

시크릿 스캔 알림 위치가 REST API와 웹훅 페이로드에 이제 details 객체 안에 html_url 필드를 포함합니다.

이전에는 위치 세부 정보가 API URL만 반환했었습니다(예: /repos/{owner}/{repo}/issues/comments/{id}). 따라서 웹훅 이벤트를 처리하거나 위치 API 위에 자동화를 구축할 때 실제로 클릭하거나 알림에 포함할 수 있는 링크를 얻기 위해 추가 API 호출을 해야 했습니다.

이제 사용자에게 보여지는 URL이 직접 포함됩니다. 이 필드는 추가적인 것이며, 기존의 모든 URL 필드는 그대로 유지됩니다.

필드가 제공되는 곳

  • REST APIGET /repos/{owner}/{repo}/secret-scanning/alerts/{number}/locations
  • 웹훅 페이로드 – 각 위치의 details 객체에 포함

지원되는 위치 유형

위치 유형예시 html_url (플레이스홀더 교체)
commit/{owner}/{repo}/blob/{sha}/{path}#L5-L5
issue_title / issue_body/{owner}/{repo}/issues/{number}
issue_comment/{owner}/{repo}/issues/{number}#issuecomment-{id}
pull_request_title / pull_request_body/{owner}/{repo}/pull/{number}
pull_request_comment/{owner}/{repo}/pull/{number}#issuecomment-{id}
pull_request_review/{owner}/{repo}/pull/{number}#pullrequestreview-{id}
pull_request_review_comment/{owner}/{repo}/pull/{number}#discussion_r{id}

참고: {owner}, {repo}, {sha}, {path}, {number}, {id} 를 해당 저장소에 맞는 값으로 교체하세요.

html_url 필드는 각 알림 위치에 대해 바로 클릭할 수 있는 링크를 제공하므로 자동화 및 알림 워크플로우를 단순화합니다.

위임된 바이패스 요청에 대한 이메일 알림

우리는 위임된 바이패스 워크플로우 중에 전송되는 이메일 알림에 두 가지 개선 사항을 추가했습니다.

1. 만료 알림

바이패스해제 요청에 대한 이메일 알림에 이제 요청의 만료 기간이 포함되어, 검토자가 요청이 자동으로 종료되기 전에 얼마나 오래 행동할 수 있는지 알 수 있습니다.

요청 유형만료 기간
Push‑protection 바이패스7 days
알림 해제 (단기)30 days
알림 해제 (장기)1 year

이전에는 이메일만으로는 마감 기한을 알 수 없었습니다.

2. 개발자 확인 이메일

개발자는 이제 알림 해제 요청을 제출하면 검토 대기 중임을 알려주는 확인 이메일을 받게 됩니다.

이전: 검토자에게만 알림이 전송되었으며, 제출자는 요청이 승인되거나 거부될 때까지 피드백을 받지 못했습니다.

비밀‑스캔 알림 페이로드에 새로운 필드

알림에 위임된 종료(해제) 요청이 있는 경우, API 및 웹훅 페이로드에 세 개의 추가 필드가 포함됩니다:

필드설명
closure_request_comment요청자의 코멘트로, 알림을 종료하려는 이유를 설명합니다.
closure_request_reviewer_comment검토자의 응답 코멘트.
closure_request_reviewer검토자의 사용자 객체.

이 필드들은 기존 푸시‑보호 우회 필드(push_protection_bypass_request_comment, push_protection_bypass_request_reviewer_comment)와 동일한 모델을 따릅니다.

사용 사례: 알림이 해제된 이유를 추적하고, 검토자 결정을 감사하며, 외부 티켓 시스템과 동기화하는 등—이제 별도의 조회 없이 페이로드에서 직접 가능합니다.

버그 수정

버그로 인해 위임된 알림 종료 승인 흐름을 통해 닫힌 알림에서 resolution_commentnull이 되었습니다. 요청자의 댓글은 면제 요청에 저장되었지만 알림으로 전달되지 않았습니다.

Fix: 이제 댓글이 알림의 resolution_comment 필드에 올바르게 전달되어 REST API를 통한 직접 해제와 동일한 동작을 합니다.

자세히 알아보기

0 조회
Back to Blog

관련 글

더 보기 »

Ko-fi용 통계 애플리케이션

Ko‑fi용 통계 애플리케이션의 커버 이미지 https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-...