许多源代码存储库提供商(例如 Github、Gitlab、Gitea、Gitee、Gogs 或 Bitbucket)通过 Webhook 通知您存储库中的更改。
您可以通过提供程序的用户界面将 Webhook 配置为 URL 和一组您感兴趣的事件。
例如,Github 对 webhook 使用 POST,其中包含包含提交列表的 JSON 正文和设置为 的标头 ()。
如果添加对库的依赖项并在 Config Server 中激活 Spring Cloud Bus,则会启用端点。X-Github-Event
push
spring-cloud-config-monitor
/monitor
当 Webhook 被激活时,Config Server 会向它认为可能已更改的应用程序发送一个目标。
可以制定变化检测策略。
但是,默认情况下,它会查找与应用程序名称匹配的文件中的更改(例如,以应用程序为目标,而以所有应用程序为目标)。
当您要覆盖该行为时,要使用的策略是 ,它接受请求标头和正文作为参数,并返回已更改的文件路径列表。RefreshRemoteApplicationEvent
foo.properties
foo
application.properties
PropertyPathNotificationExtractor
默认配置适用于 Github、Gitlab、Gitea、Gitee、Gogs 或 Bitbucket。
除了来自 Github、Gitlab、Gitee 或 Bitbucket 的 JSON 通知外,您还可以通过使用 . 模式中的表单编码正文参数 POST to 来触发更改通知。
这样做会广播到与模式匹配的应用程序(可以包含通配符)。/monitor
path={application}
{application}
|
仅当在 Config Server 和客户端应用程序中都激活时,才会传输 。RefreshRemoteApplicationEvent spring-cloud-bus |
|
仅当在 Config Server 和客户端应用程序中都激活时,才会传输 。RefreshRemoteApplicationEvent spring-cloud-bus |
|
默认配置还会检测本地 git 存储库中的文件系统更改。在这种情况下,不使用 Webhook。但是,一旦您编辑配置文件,就会广播刷新。 |
|
默认配置还会检测本地 git 存储库中的文件系统更改。在这种情况下,不使用 Webhook。但是,一旦您编辑配置文件,就会广播刷新。 |