許多源代碼存儲庫提供程序(例如Github、Gitlab、Gitea、Gitee、Gogs或Bitbucket)經過webhook通知你存儲庫中的更改,你能夠經過提供程序的用戶界面將webhook配置爲URL以及你感興趣的一組事件。例如,Github使用POST到webhook,其中包含一個JSON體,其中包含一個提交列表和一個header(X-Github-Event
)設置爲push
,若是添加了對spring-cloud-config-monitor
庫的依賴並在Config Server中激活Spring Cloud Bus,則會啓用/monitor
端點。git
激活webhook後,Config Server會針對它認爲可能已更改的應用程序發送一個RefreshRemoteApplicationEvent
,變動檢測能夠制定策略。可是,默認狀況下,它會查找與應用程序名稱匹配的文件中的更改(例如,foo.properties
的目標是foo
應用程序,而application.properties
則針對全部應用程序)。要覆蓋該行爲時使用的策略是PropertyPathNotificationExtractor
,它接受請求headers和body做爲參數,並返回已更改的文件路徑列表。github
默認配置的開箱即用的使用Github、Gitlab、Gitea、Gitee、Gogs或Bitbucket,除了來自Github,Gitlab,Gitee或Bitbucket的JSON通知,你能夠經過使用path={name}
模式中的form-encoded的body參數POST到/monitor
來觸發更改通知,這樣作會廣播到匹配{name}
模式(能夠包含通配符)的應用程序。web
僅當在Config Server和客戶端應用程序中激活spring-cloud-bus
時,纔會傳輸RefreshRemoteApplicationEvent
。
默認配置還檢測本地git存儲庫中的文件系統更改,在這種狀況下,不使用webhook,可是,只要編輯配置文件,就會廣播刷新。