Skip to content

security: codify GitHub Security Advisories workflow#18

Merged
seonghobae merged 3 commits into
mainfrom
copilot/establish-security-advisory-workflow
Mar 25, 2026
Merged

security: codify GitHub Security Advisories workflow#18
seonghobae merged 3 commits into
mainfrom
copilot/establish-security-advisory-workflow

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 25, 2026

No standardized process existed for private vulnerability intake, triage, patching, and coordinated disclosure. This establishes GitHub Security Advisories as the canonical channel with documented SLAs and sequencing rules enforced by CI.

New

  • docs/security/security-advisories-workflow.md — canonical intake-to-disclosure process: roles, private reporting, triage/severity, private fix flow, publish order (artifacts → advisory → changelog), dependency advisory handling, and a tabletop rehearsal log entry
  • tests/test_security_advisories_governance.py — 5 tests that continuously enforce cross-document policy linkage and required section presence in CI

Updated

  • SECURITY.md — private reporting form URL, SLA targets (3-day ack / 5-day triage), link to workflow doc; removes fallback-first framing
  • docs/maintainers/releasing.md — adds ## Security advisory release gate (Draft advisory check, publish sequencing, CHANGELOG entry with GHSA/CVE reference)
  • docs/operations/deploy-runbook.md — adds ## Security advisory release coordination (artifacts → advisory → version metadata verification)
  • docs/security/api-security-checklist.md — advisory governance linkage for provider-adjacent vulnerabilities
  • ARCHITECTURE.md, AGENTS.md, docs/agents/README.md, docs/engineering/acceptance-criteria.md — cross-reference the new workflow doc; agents doc explicitly prohibits directing reporters to public issues
Original prompt

This section details on the original issue you should resolve

<issue_title>GitHub Security Advisories 기반 취약점 공개·대응 워크플로우 도입</issue_title>
<issue_description>## 배경
현재 저장소의 취약점 제보/공개/패치 절차가 문서와 운영 흐름으로 명확히 표준화되어 있지 않습니다.
GitHub Security Advisories(https://github.com/seonghobae/vector-topic-modeling/security/advisories)를 공식 채널로 사용해 비공개 제보, 영향도 평가, 패치 배포, 공개 공지까지 일관된 보안 대응 프로세스를 정립할 필요가 있습니다.

목표

  • 취약점 제보부터 공개까지의 표준 프로세스를 GitHub Security Advisories 중심으로 확립한다.
  • 저장소 문서(SECURITY.md, docs/security/*)와 실제 운영 절차를 일치시킨다.
  • 체크리스트 기반으로 재현 가능한 대응 흐름을 만든다.

작업 항목

  • GitHub Security Advisories를 공식 취약점 접수 채널로 지정하고 보안 정책에 반영
  • SECURITY.md에 제보 방법, 예상 응답 시간(SLA), 처리 단계(접수/분석/패치/공개) 명시
  • Advisory 작성 템플릿 정의(영향 범위, 심각도, 완화책, 패치 버전, 참고 링크)
  • 비공개 수정 브랜치 운영 및 공개 시점(패치 릴리스 후 공개) 기준 문서화
  • 릴리스 노트/체인지로그에 보안 수정 사항 반영 규칙 정리
  • 모의 취약점 1건으로 end-to-end 리허설(접수 → triage → fix → advisory 게시) 수행

완료 기준

  • SECURITY.md에 Security Advisories 사용 정책 및 제보 절차가 반영되어 있다.
  • Advisory 템플릿/체크리스트가 문서화되어 있다.
  • 모의 리허설 결과(소요 시간, 개선점)가 이슈 코멘트 또는 문서에 남아 있다.
  • 신규 취약점 발생 시 동일 절차를 반복 적용할 수 있는 상태로 검증되었다.</issue_description>

<agent_instructions>Recreate and merge the exact security-advisories workflow implementation currently proposed in PR #17 on a Copilot-authored branch so protected-main review gates can be satisfied.

Source PR: #17
Source commit to mirror: 850489c

Required scope:

  • update SECURITY.md
  • add docs/security/security-advisories-workflow.md
  • update docs/security/api-security-checklist.md
  • update docs/maintainers/releasing.md
  • update docs/operations/deploy-runbook.md
  • update ARCHITECTURE.md
  • update docs/agents/README.md and AGENTS.md
  • update docs/engineering/acceptance-criteria.md
  • add tests/test_security_advisories_governance.py

Acceptance:

Comments on the Issue (you are @copilot in this section)


📍 Connect Copilot coding agent with Jira, Azure Boards or Linear to delegate work to Copilot in one click without leaving your project management tool.

📝 Walkthrough

걸어보기

GitHub Security Advisories를 기반으로 한 취약점 제보, 심사, 수정, 공개를 위한 표준화된 보안 대응 워크플로우를 확립하는 문서 업데이트입니다. 새로운 보안 워크플로우 문서를 추가하고, 기존 보안 정책 및 릴리스/배포 절차 문서들을 이와 연계하도록 갱신했습니다.

변경 사항

보안군 / 파일(들) 요약
보안 정책 및 거버넌스 문서
SECURITY.md, ARCHITECTURE.md, AGENTS.md
GitHub Security Advisories를 공식 취약점 접수 채널로 지정하고, 제보 방법, 응답 시간(SLA), 비공개 처리 및 공개 절차를 명시했습니다. 보안 거버넌스의 정규화된 참고문서로 docs/security/security-advisories-workflow.md 를 지정했습니다.
보안 워크플로우 정의
docs/security/security-advisories-workflow.md
취약점 제보부터 공개까지의 표준 프로세스를 새로이 문서화했습니다. 범위, 역할, 접수 요구사항, 심사 및 우선도 결정, 비공개 수정 흐름, 공개 순서, 메타데이터 검증, 변경로그 기입 규칙과 모의 리허설 로깅을 포함합니다.
운영 절차 문서 연계
docs/maintainers/releasing.md, docs/operations/deploy-runbook.md, docs/agents/README.md, docs/security/api-security-checklist.md, docs/engineering/acceptance-criteria.md
릴리스, 배포, 에이전트 지침, API 보안 체크리스트, 수용 기준 문서들에 보안 어드바이저리 거버넌스와 공개 절차를 통합했습니다. 특히 릴리스 전에 Draft 어드바이저리 준비, 릴리스 후 공개, 변경로그 참조 기입을 명시했습니다.
보안 문서 검증 테스트
tests/test_security_advisories_governance.py
새로운 테스트 모듈로, SECURITY.md, 보안 워크플로우 문서, 릴리스/배포 절차 문서들이 필수 보안 거버넌스 항목과 교차 참조를 포함하는지 검증합니다. 5개의 테스트 함수로 문서 일관성을 확인합니다.

예상 코드 리뷰 노력

🎯 2 (단순) | ⏱️ ~12분

🐰 깃허브 어드바이저리로 보안 축제 시작해,
몰래 제보하고 조용히 패치 완성해,
차근차근 체크리스트 따라 공개하면,
벙어리 취약점도 밝히 공개되고,
모두가 안전한 숲으로 달려가네! 🛡️✨

Copilot AI changed the title [WIP] Establish workflow for GitHub Security Advisories vulnerability response security: codify GitHub Security Advisories workflow Mar 25, 2026
Copilot AI requested a review from seonghobae March 25, 2026 10:24
@seonghobae seonghobae marked this pull request as ready for review March 25, 2026 10:26
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Mar 25, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 912b2472-2963-4100-a8d9-56582f8f28ab

📥 Commits

Reviewing files that changed from the base of the PR and between 2bd0152 and be7e849.

📒 Files selected for processing (10)
  • AGENTS.md
  • ARCHITECTURE.md
  • SECURITY.md
  • docs/agents/README.md
  • docs/engineering/acceptance-criteria.md
  • docs/maintainers/releasing.md
  • docs/operations/deploy-runbook.md
  • docs/security/api-security-checklist.md
  • docs/security/security-advisories-workflow.md
  • tests/test_security_advisories_governance.py

Cache: Disabled due to Reviews > Disable Cache setting

Disabled knowledge base sources:

  • Linear integration is disabled

You can enable these sources in your CodeRabbit configuration.


📝 Walkthrough

Summary by CodeRabbit

릴리즈 노트

  • Documentation

    • 보안 취약점 보고 및 공개 프로세스 문서화
    • 개인 신고 채널을 통한 취약점 보고 절차 명확화
    • 보안 공개 조율 및 타이밍 지침 추가
    • 배포 및 운영 체크리스트에 보안 거버넌스 요구사항 통합
  • Tests

    • 보안 공개 프로세스 거버넌스 검증 테스트 추가

Walkthrough

GitHub Security Advisories를 공식 비공개 취약점 접수·심사·공개 워크플로우로 도입하는 새 문서와 관련 문서(SECURITY.md, ARCHITECTURE.md 등) 참조 추가, 릴리스·배포 절차 연계, 교차문서 검증용 단위 테스트 추가.

Changes

Cohort / File(s) Summary
보안 정책 및 거버넌스
SECURITY.md, AGENTS.md, ARCHITECTURE.md
GitHub Security Advisories를 공식 취약점 접수 채널로 명시하고 워크플로우 문서(docs/security/security-advisories-workflow.md)로의 링크 및 공개 이슈에 취약점 세부 금지 문구 추가.
새 보안 워크플로우 문서
docs/security/security-advisories-workflow.md
취약점 범위, 역할 정의(Reporter/Triage/Fix/Release), 접수 요구사항, 비공개 수정·릴리스 순서, 메타데이터 검증, 변경로그/릴리스 노트 규칙, 모의 리허설 로그 등 전체 워크플로우를 문서화(신규 파일).
릴리스·배포 운영 문서 연계
docs/maintainers/releasing.md, docs/operations/deploy-runbook.md
보안 픽스 릴리스 전후의 Advisory 준비·검증·게시 순서(드래프트 확인, 릴리스 후 Advisory 게시, fixed-version 매칭 검증 등)와 공개 전 exploit 세부 비공개 규정 추가.
개발·엔지니어링 지침 연계
docs/agents/README.md, docs/security/api-security-checklist.md, docs/engineering/acceptance-criteria.md
에이전트/API 체크리스트 및 수용 기준에 Security Advisories 준수 항목(공개 이슈 금지 등) 추가.
검증용 테스트 추가
tests/test_security_advisories_governance.py
문서 교차참조·내용·절차 순서를 검증하는 5개 테스트와 파일 읽기 헬퍼 추가(문서 일관성/워크플로우 토큰 순서 검사).

Sequence Diagram(s)

sequenceDiagram
  participant Reporter as Reporter
  participant GHSA as "GitHub Security\nAdvisories (Private)"
  participant Triage as Triage Owner
  participant Fix as Fix Owner
  participant CI as CI/Release Pipeline
  participant Release as Release Owner
  participant Public as Public Advisory / CHANGELOG

  Reporter->>GHSA: 보고서 제출(양식, 재현 정보, 영향 범위)
  GHSA->>Triage: 알림 / 초기 접수
  Triage->>Fix: 우선도·심각도 지정 및 작업 할당
  Fix->>CI: 수정 PR + 회귀 테스트 요청
  CI->>Fix: 빌드/검증 결과
  Fix->>Release: 패치 릴리스 아티팩트 준비
  Release->>Public: 릴리스 아티팩트 게시
  Release->>GHSA: Advisory 게시(메타데이터 확인, fixed version)
  GHSA->>Public: Advisory 공개 및 CHANGELOG 참조
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Poem

🐰 어두운 버그 숲 속 누군가 속삭였네,
조용히 보고하고, 고치고, 차근차근 공개하네.
어드바이저리로 길을 닦고 체크리스트 따라,
패치 빛나면 모두 함께 달려가네. 🛡️✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed 제목이 PR의 주요 변경 사항을 명확하게 요약합니다. GitHub Security Advisories 워크플로우 체계화라는 핵심 목표를 정확히 전달합니다.
Linked Issues check ✅ Passed PR이 #16의 모든 주요 코딩 요구사항을 충족합니다. SECURITY.md 업데이트, 워크플로우 문서화, SLA 명시, 릴리스/배포 절차 연계, 크로스-도큐먼트 검증 테스트를 포함합니다.
Out of Scope Changes check ✅ Passed 모든 변경사항이 GitHub Security Advisories 워크플로우 체계화라는 범위 내에 있습니다. 보안 정책, 워크플로우 문서, 운영 절차 및 검증이 일관되게 관련되어 있습니다.
Description check ✅ Passed 풀 리퀘스트 설명이 변경 사항과 밀접하게 관련되어 있으며, 새로운 보안 어드바이저리 워크플로우 도입의 목적, 추가된 파일, 업데이트된 문서들을 명확히 설명하고 있습니다.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch copilot/establish-security-advisory-workflow

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@SECURITY.md`:
- Around line 12-14: The SECURITY.md fallback currently says "contact the
maintainer directly" with no contact info; update that section (the line
starting "If GitHub Security Advisories is temporarily unavailable, contact the
maintainer directly with:") to include at least one explicit contact
method—e.g., a monitored security email (security@yourdomain.com), a link to a
security.txt or vulnerability disclosure page, and optional PGP key or secure
form URL—so reporters have a working channel when GitHub Advisories are down.

In `@tests/test_security_advisories_governance.py`:
- Around line 18-40: The test
test_security_advisories_workflow_contains_required_sections only checks
presence of fragments; change it to validate ordering by computing positions in
content (e.g., using content.find(fragment) or content.index(fragment)) for each
fragment in the tuple and asserting that each subsequent position is greater
than the previous; also add an explicit ordered check that the "artifact" →
"Advisory" → "CHANGELOG" sequence appears in the right order by finding those
specific substrings and asserting their indices are strictly increasing; update
assertions to raise clear failures when any fragment is missing or out-of-order.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: cfcee2f5-b020-4daa-9e73-867f0df88e58

📥 Commits

Reviewing files that changed from the base of the PR and between 2bd0152 and 19e7c3e.

📒 Files selected for processing (10)
  • AGENTS.md
  • ARCHITECTURE.md
  • SECURITY.md
  • docs/agents/README.md
  • docs/engineering/acceptance-criteria.md
  • docs/maintainers/releasing.md
  • docs/operations/deploy-runbook.md
  • docs/security/api-security-checklist.md
  • docs/security/security-advisories-workflow.md
  • tests/test_security_advisories_governance.py

Comment thread SECURITY.md
Comment thread tests/test_security_advisories_governance.py
@seonghobae
Copy link
Copy Markdown
Owner

@coderabbitai review

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Mar 25, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@seonghobae
Copy link
Copy Markdown
Owner

@coderabbitai review

Copy link
Copy Markdown
Owner

@seonghobae seonghobae left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Security advisory workflow docs and governance tests verified; review feedback addressed with explicit fallback contact channels and sequencing-order assertions.

@seonghobae
Copy link
Copy Markdown
Owner

@coderabbitai review

@seonghobae
Copy link
Copy Markdown
Owner

@coderabbitai resolve

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Mar 25, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@seonghobae
Copy link
Copy Markdown
Owner

@coderabbitai full review

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Mar 25, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Mar 25, 2026

✅ Actions performed

Full review triggered.

@seonghobae
Copy link
Copy Markdown
Owner

@coderabbitai pause

@seonghobae
Copy link
Copy Markdown
Owner

@coderabbitai resume

@seonghobae seonghobae merged commit 3732211 into main Mar 25, 2026
6 checks passed
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Mar 25, 2026

✅ Actions performed

Comments resolved and changes approved.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Mar 25, 2026

✅ Actions performed

Reviews paused.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Mar 25, 2026

✅ Actions performed

Reviews resumed.

Copilot AI added a commit that referenced this pull request Mar 25, 2026
Mirror PR #18 (commit be7e849) changes on fresh Copilot branch.

- Add docs/security/security-advisories-workflow.md with canonical
  intake-to-disclosure process, SLAs, sequencing, rehearsal log
- Update SECURITY.md with private reporting form URL, SLA targets,
  and link to workflow doc
- Update AGENTS.md with security advisory workflow maintenance rule
- Update ARCHITECTURE.md with GitHub Security Advisories reference
- Update docs/agents/README.md with vulnerability routing rules
- Update docs/engineering/acceptance-criteria.md with security governance reference
- Update docs/maintainers/releasing.md with security advisory release gate
- Update docs/operations/deploy-runbook.md with security advisory release coordination
- Update docs/security/api-security-checklist.md with advisory governance linkage
- Add tests/test_security_advisories_governance.py (5 CI enforcement tests)

Fixes #16
Fixes #19

Co-authored-by: seonghobae <8172694+seonghobae@users.noreply.github.com>
Agent-Logs-Url: https://github.com/seonghobae/vector-topic-modeling/sessions/daec77aa-539e-4e54-93e9-e5a65a7415f9
@seonghobae seonghobae deleted the copilot/establish-security-advisory-workflow branch March 25, 2026 14:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

GitHub Security Advisories 기반 취약점 공개·대응 워크플로우 도입

2 participants