每次有人推送给主人时,我都试图在我们的不和谐中发布一条信息消息。

我有一个像这样的接收后 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/

10-15 15:58