검증이 백서가 믿을 만한 근거로 본 것
CI와 scanner 문서는 기능이 많습니다. 이 백서는 병합 판단에 직접 영향을 주는 조건만 골랐습니다.
- Pipeline 근거: MR pipeline이 어떤 조건에서 실행되고 어떤 branch 기준으로 평가되는지 설명하는 GitLab 공식 문서.
- Policy 근거: approval policy가 scanner report artifact와 completed pipeline에 의존한다는 GitLab 공식 문서.
- Quality 근거: SonarQube quality gate와 Clean as You Code처럼 merge 가능성 질문에 연결되는 공식 문서.
인사이트검토 회의에 바로 쓸 핵심 정리
- CI 실패는 유형부터 나누어야 합니다. build, test, lint, security, 환경 실패는 필요한 조치가 다릅니다.
- MR pipeline이 실제 MR context에서 돈 결과인지 확인해야 합니다. 설정이 없으면 기대한 job이 돌지 않을 수 있습니다.
- Scanner report가 누락되면 발견 항목이 적은 것이 아니라 판단 근거가 부족한 상태일 수 있습니다.
- 좋은 조치 문장은 담당자와 완료 조건을 포함합니다. ‘확인 필요’는 조치가 아닙니다.
분류실패 유형을 먼저 나눕니다
build, test, lint, scanner, deployment 환경 문제를 분리합니다. 실패 job 이름만 보지 않고 변경 파일, 재현성, 기준 branch를 함께 봅니다.
해석이번 MR과의 관련성을 확인합니다
신규인지 기존인지, target branch에도 있던 문제인지, 기준 report가 있는지, MR pipeline이 실제로 돌았는지 확인합니다. 불확실하면 confidence를 낮춥니다.
조치끝낼 수 있는 문장으로 씁니다
‘CI 실패’가 아니라 ‘payment-service integration test 실패 로그 재현 후 MR pipeline 결과 첨부’처럼 완료 기준이 보이는 조치로 바꿉니다.
1. CI 실패를 읽는 순서
승인자는 로그를 전부 읽을 시간이 없습니다. 먼저 실패가 병합 판단을 바꾸는 실패인지 봐야 합니다. GitLab MR pipeline은 설정에 따라 source branch 기준으로 실행되며, MR context job이 별도로 필요할 수 있습니다.
- 이 pipeline은 MR context에서 실행되었는가.
- 실패 job은 필수 job인가, 수동 또는 선택 job인가.
- 같은 실패가 target branch에도 있었는가.
- 재실행으로 사라지는 flaky 실패인가, 변경과 연결된 회귀인가.
- merged result를 테스트해야 의미 있는 변경인가.
근거 해석: GitLab MR pipelines 문서는 MR pipeline 실행 조건과 `merge_request_event` 규칙을 설명합니다. 따라서 CI 결과는 설정 문맥과 함께 읽어야 합니다.
2. Scanner finding은 네 가지로 나눕니다
보안과 품질 스캐너는 발견 항목을 만듭니다. 병합 판단에서는 finding 자체보다 이번 MR에서 새로 생겼는지, 기존 위험인지, 개선된 것인지, 비교가 불가능한지 구분해야 합니다.
- New: 이번 MR이 추가한 finding입니다. severity와 조치 필요성을 봅니다.
- Existing: 기준 branch에도 있던 finding입니다. 이번 MR이 악화했는지 봅니다.
- Fixed: 이번 MR이 제거한 finding입니다. 긍정 evidence로 남깁니다.
- Unknown: 기준 report 또는 scanner job이 없어 비교할 수 없습니다.
3. Approval policy 실패는 도구 오류로만 보지 않습니다
GitLab merge request approval policies는 scanner report artifact와 completed pipeline에 의존합니다. 지정된 scanner가 report를 내지 않거나 평가가 불가능하면 추가 approval이 필요할 수 있습니다. 이는 단순 알림이 아니라 판단 공백입니다.
- scanner job이 MR pipeline에서 실행되는지 확인합니다.
- default branch 또는 target branch 기준 report가 있는지 확인합니다.
- manual job, skipped pipeline, scanner job 제거가 정책 평가에 미치는 영향을 확인합니다.
- Mantis Gate는 이 상태를 Blocked 또는 Not Ready 사유와 required action으로 번역합니다.
4. 고객이 읽는 조치 문장으로 바꿉니다
조치 문장은 짧아야 하지만 닫힐 수 있어야 합니다. ‘보안팀 확인’보다 ‘보안팀이 SAST 신규 high finding 1건의 exploit path와 예외 승인 가능 여부를 확인’이 낫습니다.
- 원본 신호: 어떤 job 또는 어떤 scanner finding인가.
- 영향: 병합 판단을 Ready에서 Conditional 또는 Not Ready로 바꾸는가.
- 담당자: DevOps, 보안, 품질, 업무 담당자 중 누가 닫는가.
- 완료 조건: 어떤 근거가 추가되면 판단이 바뀌는가.
근거확인한 문헌