每当有人按下主机时,我都会试图以不和谐的方式发布信息消息。
我有一个接收后的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替换为“ hello”,它将被发布。
答案 0 :(得分:1)
3条建议:
a)-d“ {\” content \“:\” $ {tail} \“}”
b)您可以使用与项目相同的语言(例如Python或NodeJS)来编写代码,这总是比bash更好(使用相同的名称并使其可执行)
c)为避免在每台开发机中维护此逻辑,您可以使用https://pypi.org/project/hooks4git或其他任何提供git hook管理的版本在仓库中对此逻辑进行版本控制。