Sandcorp샌드코프 · 웹·AI 제품 개발

새 프로젝트 받는 중 · 갱신 2026.11sandcorp.co.krGitHub

← 팁

배포·인프라

멀티브랜치 잡을 「PR 발견」으로 바꿨는데 PR 빌드가 안 뜨면 웹훅 이벤트부터 본다

Jenkins 쪽 설정만 PR 발견으로 바꿔도, GitHub 웹훅이 push 이벤트만 보내면 PR을 열어도 아무 일이 없습니다. 웹훅 이벤트에 Pull requests를 더합니다.

멀티브랜치 파이프라인을 「브랜치 발견」에서 「PR 발견」으로 바꾸면, PR마다 검사 빌드가 뜨고 결과가 PR 화면에 붙기를 기대합니다. 그런데 PR을 새로 열어도 Jenkins에는 아무것도 생기지 않고, 손으로 「지금 스캔」을 누를 때만 PR 잡이 나타납니다.

원인은 GitHub 쪽 웹훅입니다. 브랜치 발견으로 쓰던 시절에 등록한 웹훅은 보통 기본값인 push 이벤트만 보냅니다. 브랜치에 커밋이 올라가면 push가 가지만, PR을 열거나 다시 열거나 PR 대상이 바뀌는 일은 pull_request 이벤트로만 전달됩니다. Jenkins 잡 설정은 「무엇을 발견할지」만 정할 뿐, GitHub가 어떤 사건을 알려 줄지는 바꾸지 못합니다. 그래서 Jenkins 쪽만 고치면 PR은 다음 정기 스캔 때까지 보이지 않습니다.

해법은 저장소(또는 조직) 웹훅 설정에서 이벤트를 「Let me select individual events」로 바꾸고 Pull requests를 더하는 것입니다. Pushes도 그대로 둡니다. 브랜치 빌드와 PR 빌드를 함께 쓰는 경우가 많기 때문입니다. 고친 뒤에는 웹훅의 Recent Deliveries에서 pull_request 이벤트가 2xx로 전달됐는지 확인합니다. 이미 열려 있던 PR은 한 번 스캔을 돌려야 잡이 생깁니다.

웹훅을 코드로 관리한다면 이벤트 목록을 명시해 두면 같은 일을 막을 수 있습니다.

gh api -X PATCH "repos/example-org/example-repo/hooks/$HOOK_ID" \
  -f 'events[]=push' -f 'events[]=pull_request'

PR 빌드가 안 뜰 때는 Jenkins 로그보다 먼저 「GitHub가 이 사건을 보냈는가」를 봅니다. Recent Deliveries에 그 사건이 없다면 Jenkins를 아무리 고쳐도 소용없습니다.

문의 →