在 GitHub SCM 中,我们提供了两种方式可以让用户配置以实现自动扫描,我们推荐用户同时配置两个设置以达到最佳的效果:触发 Jenkins 自动扫描应该以 Webhook 为主,以在 KubeSphere 设置定期扫描为辅。

    Webhook 是一种高效的方式可以让我们发现远程仓库的变化,但是因为网络等问题,Webhook 消息可能不是总能被收到,因此推荐用户在 KubeSphere 创建 DevOps 工程的高级设置中,勾选 如果没有扫描触发,则定期扫描,并将时间间隔设置为可以容忍的最大时长 (推荐 1 小时到 1 天之间)。

    第二步:设置 GitHub Webhook

    1、Webhook 需要用户自行到 GitHub 的 Settings → Webhooks 自行进行配置,并且需要 GitHub 能够访问到您安装的 KubeSphere 控制台地址。进入 GitHub,访问需要配置 Webhook 的仓库,比如当前的示例仓库 devops-docs-sample,选择 Settings → Webhooks 进行设置。

    设置 GitHub Webhook

    注意,Payload 地址填写为关联的流水线 Webhook 推送 的默认地址,

    添加 GitHub Webhook

    3、点击 Add Webhook 完成 Webhook 的添加,可以看到 Webhook 已经创建成功。

    1、在项目设置按钮下点击 Webhooks 进入 Webhook 设置页面

    gitlab-webhook 设置

    2、同上,输入 Pipeline 配置的地址,最后点击页面最下方完成创建

    在传统的 SVN 当中不包含 Webhook 的概念,因此推荐在 KubeSphere 设置时间间隔较短的定期扫描来进行远程构建的触发,通常我们会将时间间隔设置为 15 分钟到 1 小时,团队可以根据自己的实际情况来设置定时扫描。