1. 什么是webhook
- 以下内容来自wiki
- 总结一下: webhook可以看作是一个钩子,例如当我们从harbor上拉取镜像时,harbor会将请求转换成一个可读的JSON格式,并且转发给webhook endpoint(钩子的实现)进行处理。下面就是harbor对pull请求的json概括,包括了镜像的具体信息,用户的具体信息以及项目信息等等。当endpoint拿到这些信息之后,就可以根据信息进行相关的操作。例如对pull的镜像进行恶意文件检查,如果检查不通过就阻止pull的操作。
{
"type":"PULL_ARTIFACT",
"occur_at":1656324256,
"operator":"admin",
"event_data":{
"resources":[
{
"digest":"sha256:f841a2abd0422364ec94bb633a56707a38c330179f2bbccebd95f9aff4a36808",
"tag":"sha256:f841a2abd0422364ec94bb633a56707a38c330179f2bbccebd95f9aff4a36808",
"resource_url":"10.9.33.98/library/java@sha256:f841a2abd0422364ec94bb633a56707a38c330179f2bbccebd95f9aff4a36808"
}
],
"repository":{
"date_created":1656315229,
"name":"java",
"namespace":"library",
"repo_full_name":"library/java",
"repo_type":"private"
}
}
}
2. harbor如何使用webhook