팀을 곤란하게 하는 trigger 들
push 와 pull_request 외에 알아둘 미묘한 event type 몇 개 — 대부분 팀이 outage 후 발견해.
pull_request vs pull_request_target
pull_request는 fork code 의 context 에서 secret 없이 돔. 안전.pull_request_target는 base repo context 에서 전체 secret 으로 돔. 그런 workflow 에서 PR code 를 checkout 하면 위험 — 클래식 'pwn-request' 취약점.pull_request_target는 라벨링, comment 게시, metric 계산 용으로만 — PR 작성자 코드 실행 절대 금지.
schedule
- 항상 UTC.
- 비활성 repo 에선 disable (60일 commit 없음).
- Drift: 피크 시 GitHub 가 scheduled run 지연 가능. 밀리초 정확도 의존 금지.
workflow_dispatch
- Input 은 typed:
string(기본),boolean,choice,environment. - 일부 UI flow 에서 required input 은 default value 명시 필요.
- 용도: 수동 deploy, 일회성 backfill, ad-hoc 수정.
workflow_run
- 다른 workflow 끝날 때 workflow 실행.
- 유즈 케이스: post-CI deploy, comment 요약, forwarder.
- Fork 에서도 base repo secret 상속 — 주의.