从 Fossil TH1 发布工单更新/提交到 Webhook

Posted

技术标签:

【中文标题】从 Fossil TH1 发布工单更新/提交到 Webhook【英文标题】:Publish Ticket Updates/Commits to Webhook from Fossil TH1 【发布时间】:2018-10-18 11:10:06 【问题描述】:

我目前正在尝试使用我的 Fossil Repo running 2.6 设置 Discord(或类似 Slack)的 webhook

我正在关注此文档:

Fossil TH1 Docs

Discord Webhook Docs

这是我尝试在原始 TH1 请求中运行的示例:

http -asynchronous https://discordapp.com/api/webhooks/443395012672094208/(redacted) content: 'hello there'

我希望它看起来像这样(我在 Postman 中分别做了这个)

但是我没有收到任何回复,而且 Fossil 上的调试空间也不大。我不确定如何格式化有效载荷。我也尝试过“字符串化”它。查看 HTTP 响应的同步请求尚未实现,因此我无法取消标记。

我的 TH1 Regexp 设置如下(它不再抛出关于不可接受的 URI 的错误):

【问题讨论】:

【参考方案1】:

这是一个猜测:你可能想要

http -asynchronous $url "content":"hello there"

双括号没有错:外大括号是 TH1 的引号,内部内容是 JSON 对象(我假设您打算将一些 JSON 数据 POST 到 discord webhook)。

您可能希望链接到 discord webhook REST API 以查看您应该发送的有效负载。

【讨论】:

阅读the docs(即,未登录 Discord 系统)我发现 POST 数据的内容类型需要正确。但除此之外,问题在于缺少额外的大括号。 感谢您的反馈,我不知道我需要双花括号。但是我认为问题是 Content-Type 标头未指定为文档中所述的 multipart-formdata(我已更新以链接它们):It does require multipart/form-data requests instead of the normal JSON request type when uploading files. 我想知道您是否必须使用tclInvoke 才能访问Tcl 的http 命令' 它使用什么内容类型?【参考方案2】:

虽然我很欣赏我从此处和 Fossil SCM forums 的 cmets 获得的反馈,但我发现解决此问题的最佳方法是将更新发送到 "middleware" service,该 "middleware" service 通过命令行获取最后更新的票证并解析票历史记录并像这样将该信息发送到 webhook。我想看看有没有其他人解决过这个问题。

【讨论】:

以上是关于从 Fossil TH1 发布工单更新/提交到 Webhook的主要内容,如果未能解决你的问题,请参考以下文章

修改 Fossil 中的提交

在没有名为“Desktop.ini”的文件的情况下使用 Fossil 更新到以前版本的代码

Fossil 在提交时因“数据库已锁定错误”而崩溃

使用 Fossil 克隆存储库?

Fossil SCM:将叶子合并回树干

如果涉及权限调整数据修改流程干预需要在哪里提交工单