# 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 = 블록 부재.)
