웹훅
웹훅 (Webhooks)
저장소의 푸시 이벤트에 응답해 다른 서비스에서 동작을 일으키는 웹훅을 만들고 그 전달 내역을 보는 방법을 배워볼게요.
출처: 문서
본문
웹훅을 사용해 저장소의 푸시 이벤트에 대한 응답으로 다른 서비스에서 동작을 일으킬 수 있어요. 웹훅은 Docker Hub에서 정의한 URL로 보내는 POST 요청이에요.
사전 요구 사항
- 개인 저장소의 경우 저장소 소유자만 웹훅을 만들 수 있어요. 협력자(collaborators)는 웹훅을 만들 수 없어요.
- 조직 저장소의 경우 조직 소유자나 편집자, 또는 저장소에 대한 관리자 권한이 있는 팀 구성원이어야 해요. 자세한 내용은 Organization teams 문서를 참고해요.
- Docker Hub API로 웹훅을 만들려면 다음 중 하나로 인증해요:
- 삭제 권한이 있는 personal access token
- scope-webhook-edit 이상의 범위를 가진 organization access token
웹훅 만들기
웹훅을 만들려면:
- 선택한 저장소에서 Webhooks 탭을 선택해요.
- 웹훅의 이름을 제공해요.
- 대상 웹훅 URL을 제공해요. 이곳으로 웹훅 POST 요청이 전달돼요. URL은 255자 이하여야 해요.
- Create 를 선택해요.
웹훅 전달 내역 보기
웹훅의 내역을 보려면:
- Current Webhooks 섹션 아래에서 웹훅 위에 커서를 올려요.
- Menu options 아이콘을 선택해요.
- View History 를 선택해요.
그러면 전달 내역과 POST 요청 전달의 성공 여부를 볼 수 있어요.
예시 웹훅 페이로드
웹훅 페이로드는 다음 JSON 형식을 가져요:
{
"callback_url": "https://registry.hub.docker.com/u/svendowideit/testhook/hook/2141b5bi5i5b02bec211i4eeih0242eg11000a/",
"push_data": {
"pushed_at": 1417566161,
"pusher": "trustedbuilder",
"tag": "latest"
},
"repository": {
"comment_count": 0,
"date_created": 1417494799,
"description": "",
"dockerfile": "#\n# BUILD\t\tdocker build -t svendowideit/apt-cacher .\n# RUN\t\tdocker run -d -p 3142:3142 -name apt-cacher-run apt-cacher\n#\n# and then you can run containers with:\n# \t\tdocker run -t -i -rm -e http_proxy http://192.168.1.2:3142/ debian bash\n#\nFROM\t\tubuntu\n\n\nVOLUME\t\t[/var/cache/apt-cacher-ng]\nRUN\t\tapt-get update ; apt-get install -yq apt-cacher-ng\n\nEXPOSE \t\t3142\nCMD\t\tchmod 777 /var/cache/apt-cacher-ng ; /etc/init.d/apt-cacher-ng start ; tail -f /var/log/apt-cacher-ng/*\n",
"full_description": "Docker Hub based automated build from a GitHub repo",
"is_official": false,
"is_private": true,
"is_trusted": true,
"name": "testhook",
"namespace": "svendowideit",
"owner": "svendowideit",
"repo_name": "svendowideit/testhook",
"repo_url": "https://registry.hub.docker.com/u/svendowideit/testhook/",
"star_count": 0,
"status": "Active"
}
}
참고:
callback_url필드는 레거시 필드이며 더 이상 지원되지 않아요. 미러된 Docker Hardened Image 저장소의 웹훅에는 푸시된 빌드의 취약점·패키지 변경을 설명하는 추가dhi_metadata객체가 포함돼요. 자세한 내용은 Automate syncing with webhooks 문서를 참고해요.