# Gitea webhook — ythong/itms (적용 대기) push 시 배포 서버 deploy_server(port 9999)로 알리는 webhook. **아직 생성하지 않음.** ## 3대 함정 (GUARDiA 기지 교훈 — 반드시 준수) 1. **url**: NAT 헤어핀 회피 위해 `http://127.0.0.1:9999/`(localhost) 로 지정. 2. **secret**: 배포 서버 deploy_server 의 검증 secret 과 **일치**시킬 것(불일치 시 403). 값은 서버 운영 시크릿 — 여기에 적지 말 것. 3. **ALLOWED_HOST_LIST**: Gitea app.ini `[webhook] ALLOWED_HOST_LIST` 에 loopback 포함(없으면 localhost 웹훅 차단). ## 생성 (배포 대상 환경에서 실행; 자격증명·secret 은 env 로 주입) ```bash # GITEA_TOKEN, DEPLOY_SECRET 를 환경변수로 주입(하드코딩 금지) curl -s -X POST "https://git.zioinfo.co.kr/api/v1/repos/ythong/itms/hooks" \ -H "Authorization: token ${GITEA_TOKEN}" \ -H "Content-Type: application/json" \ -d '{ "type": "gitea", "active": true, "events": ["push"], "config": { "url": "http://127.0.0.1:9999/", "content_type": "json", "secret": "'"${DEPLOY_SECRET}"'" } }' ``` - branch 필터가 필요하면 deploy_server 측에서 `ref == refs/heads/main` 확인(현행 deploy_server 는 repo 이름으로 분기). - 생성 후 Gitea UI 의 "Test Delivery" 로 발화 → deploy_server 로그에서 `repo=itms` 수신 확인. ## deploy_server 반영 `deploy_server_itms_block.py` 를 배포 서버 `deploy_server.py` 의 `_deploy()` elif 체인에 병합 → 서버 사본 반영 → deploy 서비스 재시작. (교훈: 서버 사본 미반영/미재시작 시 웹훅 로그 '완료'여도 1ms no-op = 블록 부재.)