웹훅 자동화
웹훅 자동화 (Webhooks Automation)
Webhooks를 쓰면 특정 리포지토리나 특정 사용자/조직 집합에 속한 모든 리포지토리(Hugging Face의 모든 리포지토리, 여러분의 리포지토리가 아니어도)의 새 변경을 들을 수 있어요. Hugging Face 리포지토리에 변경이 생겼을 때 Job을 트리거하는 웹훅을 만들 수 있습니다.
출처: 문서
본문
Webhooks를 사용하면 특정 리포지토리나 특정 사용자/조직 집합에 속한 모든 리포지토리(단지 여러분의 리포지토리가 아니라 어떤 리포지토리든)의 새 변경 사항을 들을 수 있어요.
huggingface_hub Python 클라이언트의 create_webhook을 사용해 Hugging Face 리포지토리에 변경이 있을 때 Job을 트리거하는 웹훅을 만드세요:
from huggingface_hub import create_webhook
# Example: Creating a webhook that triggers a Job
webhook = create_webhook(
job_id=job_id,
watched=[{"type": "user", "name": "your-username"}, {"type": "org", "name": "your-org-name"}],
domains=["repo", "discussion"],
secret="your-secret"
)
웹훅은 다음 환경 변수로 Job을 트리거합니다:
WEBHOOK_PAYLOAD: 전체 웹훅 페이로드(JSON 문자열)WEBHOOK_REPO_ID: 리포지토리 이름(예:user/repo-name)WEBHOOK_REPO_TYPE: 리포지토리 타입(model,dataset,space)WEBHOOK_SECRET: 구성된 경우의 웹훅 시크릿WEBHOOK_ID: 전달(delivery)의 고유 식별자, 해당 전달의 재시도에도 안정적
웹훅 페이로드는 여러 필드를 포함하며 유용한 몇 가지는 다음과 같아요:
- event:
- action: one of "create", "delete", "move", "update"
- scope: string
- repo:
- owner: string
- headSha: string
- name: string
- type: one of "dataset", "model", "space"
웹훅에 대한 더 많은 정보는 huggingface_hub Webhooks 문서에서 확인할 수 있어요.
더 알아보기 (Learn more)
create_webhook로 Job을 연결하면 리포지토리·discussion 변경 시 자동으로 Job이 실행되고, WEBHOOK_* 환경 변수로 변경 내용을 전달받아요. 웹훅 구성 옵션과 페이로드 스키마 전반은 huggingface_hub Webhooks 가이드와 Jobs 문서를 함께 참고하세요.