webhook 允許生成或設(shè)置集成拦盹,例如 GitHub Apps 或 OAuth Apps咐蝇,以訂閱 GitHub.com 上的某些事件烁落。 當(dāng)觸發(fā)其中某個(gè)事件時(shí)辖所,我們將向 web 掛鉤的配置 URL 發(fā)送 HTTP POST 有效負(fù)載。 Web 掛鉤可用于更新外部議題跟蹤器、觸發(fā) CI 構(gòu)建窿吩、更新備份鏡像,甚至部署到生產(chǎn)服務(wù)器错览。 您只受想象力的限制纫雁。
這是一個(gè)通用的解決方案,用戶可以自己根據(jù)不同的需求倾哺,來編寫自己的腳本程序(比如發(fā)郵件先较,自動(dòng)部署等)。
GitHub實(shí)現(xiàn)
image.png
nodejs代碼
const express = require('express')
const { exec } = require('child_process');
const app = express()
app.use(express.json())
const port = 9997
app.post('/', (req, res) => {
//驗(yàn)證密碼
if (req.body.password == 'Mc2SajhBp5LTnJ') {
res.send('success: ' + new Date())
//執(zhí)行打包命令
exec('cd /root/home/web/music-react && npm i && npm run build', (error, stdout, stderr) => {
console.log(error, stdout, stderr)
})
}
})
app.listen(port, () => {
console.log(`Example app listening on port ${port}`)
})