gpt4 book ai didi

post - 如何使用 curl 测试 Github 接收后 Hook 服务器?

转载 作者:行者123 更新时间:2023-12-04 15:03:06 26 4
gpt4 key购买 nike

Github 支持用于通知代码更改的 post-receive Hook ,记录在 here .现在,为了测试一个钩子(Hook)服务器,我需要发布一些 json 并且我想使用 curl 来做到这一点。我以前这样做过,但很少这样做,以至于我往往会忘记我的解决方案。

我记得,每次这样做都很乏味。

Github 人员提供此 JSON 文档作为将在参数 payload 上发布的数据的示例。 :

{
"before": "5aef35982fb2d34e9d9d4502f6ede1072793222d",
"repository": {
"url": "http://github.com/defunkt/github",
"name": "github",
"description": "You're lookin' at it.",
"watchers": 5,
"forks": 2,
"private": 1,
"owner": {
"email": "chris@ozmm.org",
"name": "defunkt"
}
},
"commits": [
{
"id": "41a212ee83ca127e3c8cf465891ab7216a705f59",
"url": "http://github.com/defunkt/github/commit/41a212ee83ca127e3c8cf465891ab7216a705f59",
"author": {
"email": "chris@ozmm.org",
"name": "Chris Wanstrath"
},
"message": "okay i give in",
"timestamp": "2008-02-15T14:57:17-08:00",
"added": ["filepath.rb"]
},
{
"id": "de8251ff97ee194a289832576287d6f8ad74e3d0",
"url": "http://github.com/defunkt/github/commit/de8251ff97ee194a289832576287d6f8ad74e3d0",
"author": {
"email": "chris@ozmm.org",
"name": "Chris Wanstrath"
},
"message": "update pricing a tad",
"timestamp": "2008-02-15T14:36:34-08:00"
}
],
"after": "de8251ff97ee194a289832576287d6f8ad74e3d0",
"ref": "refs/heads/master"
}

将其保存为 /tmp/example.json我以为
 $ curl -XPOST -F "payload=@/tmp/example.json" http://localhost:3000/

本来是正确调用 curl,但我不正确。使用我的示例项目 hooks上述结果:
127.0.0.1 - - [17/Nov/2011 22:20:51] "POST  HTTP/1.1" 200 - 0.0295
{:filename=>"example.json", :type=>"application/octet-stream", :name=>"payload", :tempfile=>#<File:/tmp/RackMultipart20111117-11639-1ecu4i1>, :head=>"Content-Disposition: form-data; name=\"payload\"; filename=\"example.json\"\r\nContent-Type: application/octet-stream\r\n"}

其中,给定该端点的 Action 定义:
class HomeAction < Cramp::Action
def start
puts params[:payload]

render 'thanks'
finish
end
end

不是很期待。那么,如何使用 curl 的命令行版本在参数 payload 上发布一些 JSON 作为数据?

最佳答案

我设法通过以下方式完成了这项工作:

  • 将 json 数据保存在文件中。
  • 从 json 文件中删除新行。 (Vim 命令= :%s/\n//g )
  • curl --data-urlencode payload@json_data.txt [URL]

  • 发布到 Postbin 时似乎提供了相同的结果通过 GitHub 和 Curl。

    关于post - 如何使用 curl 测试 Github 接收后 Hook 服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8177360/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com