웹훅

웹훅 (Webhooks)

저장소의 푸시 이벤트에 응답해 다른 서비스에서 동작을 일으키는 웹훅을 만들고 그 전달 내역을 보는 방법을 배워볼게요.

출처: 문서

본문

웹훅을 사용해 저장소의 푸시 이벤트에 대한 응답으로 다른 서비스에서 동작을 일으킬 수 있어요. 웹훅은 Docker Hub에서 정의한 URL로 보내는 POST 요청이에요.

사전 요구 사항

  • 개인 저장소의 경우 저장소 소유자만 웹훅을 만들 수 있어요. 협력자(collaborators)는 웹훅을 만들 수 없어요.
  • 조직 저장소의 경우 조직 소유자나 편집자, 또는 저장소에 대한 관리자 권한이 있는 팀 구성원이어야 해요. 자세한 내용은 Organization teams 문서를 참고해요.
  • Docker Hub API로 웹훅을 만들려면 다음 중 하나로 인증해요:
    • 삭제 권한이 있는 personal access token
    • scope-webhook-edit 이상의 범위를 가진 organization access token

웹훅 만들기

웹훅을 만들려면:

  1. 선택한 저장소에서 Webhooks 탭을 선택해요.
  2. 웹훅의 이름을 제공해요.
  3. 대상 웹훅 URL을 제공해요. 이곳으로 웹훅 POST 요청이 전달돼요. URL은 255자 이하여야 해요.
  4. Create 를 선택해요.

웹훅 전달 내역 보기

웹훅의 내역을 보려면:

  1. Current Webhooks 섹션 아래에서 웹훅 위에 커서를 올려요.
  2. Menu options 아이콘을 선택해요.
  3. 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 문서를 참고해요.

더 알아보기 (Learn more)