2026 OpenClaw MeshMac 실전: Jira Automation Webhook으로 다중 노드 공유 빌드·상태 브로드캐스트·실패 요약 회신
Jira Automation 웹 요청을 게이트웨이에서 검증·큐잉하고 MeshMac 다중 노드로 빌드한 뒤 브로드캐스트와 코멘트 실패 요약까지 한 흐름으로 묶는 절차입니다. 최소 권한 토큰·프로브·재시도와 미수신·403·중복 FAQ를 포함합니다.
노드별 URL은 시크릿·감사가 갈라집니다. 게이트웨이·공유 큐와 직접 수신을 비교합니다.
| 항목 | 게이트웨이·Mesh | 노드별 URL |
|---|---|---|
| 시크릿·API 토큰 | 한 파일·한 프로세스 | 복제·회전 비용↑ |
| 다중 노드 | 큐·워커만 확장 | Automation 규칙 분기 |
| 브로드캐스트 | 동일 JSON 스키마 | 메시지 불일치 |
연장 읽기: 공유 웹훅, rate limit, 큐·재시도, Jira 락·timeout.
Jira Automation 웹 요청
- 트리거는
이슈 전이됨등으로 좁히고 허용 전이·JQL 화이트리스트를 둡니다. - 웹 요청
POST https://게이트웨이/hooks/jira, 본문은issueKey·transitionId·actorAccountId만. X-Jira-Automation-Token에openssl rand -hex 32, 수신측은0440파일만 사용합니다.- Automation 감사에서 HTTP 코드·지연을 주기 확인합니다. 시크릿 패턴은 최소 권한 글과 동일하게 게이트웨이에만 둡니다.
게이트웨이·공유 시크릿·멱등
/hooks/jira만 분리해 SaaS 시크릿과 섞지 않습니다.- JSON 파싱 전 헤더 토큰 상수 시간 비교, 실패
401, 로그에 시크릿 미기록. - 멱등 키
issueKey+transitionId+분, durable enqueue 후200. 브로커 불가 시503·Retry-After. - 본문 상한 ~1MB, 처리 목표 8~12초를 Automation 제한과 맞춥니다.
다중 노드·브로드캐스트·Jira 최소 권한
워커는 동일 스크립트로 빌드하고 완료만 게이트웨이로 돌립니다. 채널 JSON 필수: issueKey build_status mesh_node_id log_tail, 실패 시 exit_code.
- 스코프형 토큰: 해당 프로젝트 읽기·댓글만, 광역 관리 권한 금지.
- 실패 시 REST로 로그 꼬리 240자 한 줄 코멘트.
- Jira 호출은 게이트웨이 egress 단일화로 IP 허용 목록 단순화.
프리웜·프로브는 헬스 프로브 글의 주기·타임아웃을 빌드 전에 붙입니다.
헬스 프로브·재시도 템플릿
/healthz: TLS·시크릿 파일·큐 ping. 노드는 에이전트·디스크 여유를 같은 패턴으로 검사합니다.
재시도(출발값): Jira REST 429/5xx → 초기 400ms, ×2, 지터 ≤250ms, 최대 6회·총 ≤90s, Retry-After 우선. 인바운드는 빠른 200, 코멘트만 백오프. 상세는 태스크 큐·재시도.
미수신·403·중복 FAQ
- Automation은 성공인데 우리 쪽에서 이벤트가 안 보입니다
- URL 호스트·경로 오타, 스테이징 인증서, 사내 프록시의 다른 upstream을 의심하세요. Jira 측 응답 본문이 비어 있는지, 인그레스가
413로 조용히 끊지 않는지 확인합니다. - 웹훅은 200인데 코멘트만 403
- 스코프형 토큰의 프로젝트 제한, 이슈 타입 제한, 또는 서비스 계정의 역할 부족이 흔합니다. 토큰을 회전한 직후 캐시된 환경 변수를 쓰는 경우도 있으니 게이트웨이만 재시작·재주입합니다.
- 같은 카드에서 빌드가 두 번 이상 들어옵니다
- 여러 규칙이 같은 전이를 듣거나, 필드 업데이트와 전이가 한 트랜잭션에서 연쇄될 때 생깁니다. 멱등 키 창을 넓히고 Automation 조건을 AND로 묶으며, enqueue 이후에만 200을 돌려 재시도 폭주를 줄입니다.
한 줄 정리
Jira 웹 요청 한 줄·게이트웨이 검증·멱등 큐·노드 풀·채널 브로드캐스트·스코프형 토큰 코멘트만 고정하면, 노드를 늘릴 때 Automation을 다시 만지는 일이 줄어듭니다.