每次有人推送给主人时,我都试图在我们的不和谐中发布一条信息消息。
我有一个像这样的接收后 bash 脚本:
#!/bin/bash
while read oldrev newrev ref
do
if [[ $ref =~ .*/master$ ]];
then
tail=$(git log -1 --pretty=format:'%h %cn: %s%b' $newrev)
url='https://discordapp.com/api/webhooks/validapikey'
curl -i \
-H "Accept: application/json" \
-H "Content-Type:application/json" \
-X POST \
--data '{"content": "'$tail'"}' $url
fi
done
如果我将 tail 输出到文件,则会得到预期的字符串
6baf5 user: last commit message
但该消息不会发布在不和谐中
如果我用“你好”替换 $tail 它会被发布。
最佳答案
3个建议:
a) -d "{\"content\":\"${tail}\"}"
b) 您可以使用与您的项目相同的语言编写它,例如 Python 或 NodeJS,这总是比 bash 更好(使用相同的名称并使其可执行)
c) 为避免在每台开发机器中维护这一点,您可以使用 https://pypi.org/project/hooks4git 或任何其他提供 git hook 管理的工具在您的 repo 中版本此逻辑。
关于bash - Git post-receive hook,将 curl 提交消息发送到 Discord Webhook,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51768187/