如何设置github的webhooks和jenkins挂钩

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何设置github的webhooks和jenkins挂钩相关的知识,希望对你有一定的参考价值。

github pages有两类:
你如果起个名为chendell.github.io的repository, 那么他的master分支上的文件就能在chendell.github.io的根目录访问到。
而如果是其他的repositories,比如这个repository名字叫node,那么建一个gh-pages分支,该分支下的文件就能在chendell.github.io/node/下访问到。

1. 门槛:需要理解 Github 的工作方式,熟悉 Github 客户端,熟悉 html 与 CSS;
2. 不妨一边开始写静态模板,一边了解 Jekyll 布局所用到的 Liquid Tag,磨刀不误砍柴工;
3. Jekyll 博客,可以看作是一套文件结构,通过 Jekyll 程序编译成静态网站。如果不熟悉命令,完全可以不安装 Jekyll,只需按照要求的格式创建文件后再上传到 Github,然后访问主页就可以了,因为 Github Pages 便是由 Jekyll 驱动的,或者直接使用 Jekyll-Bootstrap 的结构;
4. Jekyll 的文件结构大概可以这样分:配置文件 _config.yml,布局文件 _layouts,模块文件 _includes,插件 _plugin,文章 _posts,其他文件(不以下划线开头的文件及文件夹都会完整的拷贝到生成的静态网站中,比如 CSS 文件、图片等),以及将会生成的静态站 _site;
5. Jekyll 命令很简单,先使用 cd 命令进入目标文件夹,然后输入 jekyll --server 生成网站,浏览器中输入 0.0.0.0:4000 访问生成的静态网站,jekyll --server --auto 命令将开启实时更新,修改文件后在浏览器中刷新就可看到效果,对本地调试很有帮助;
6. Github Pages 禁用所有插件,需要使用自定义插件,只能上传生成的网站文件 _site,或者试试 这个办法 ;
7. 想写草稿不想被编译?创建一个以下划线开头文件夹就会被忽略,例如在 _posts 下创建 _drafts 存储草稿;
8. 默认的 Markdown 引擎问题很多,建议替换成 RDiscount。
参考技术A 没有,还可以打开呀。我这里可以打开的。 参考技术B github pages有两类: 你如果起个名为chendell.github.io的repository, 那么他的master分支上的文件就能在chendell.github.io的根目录访问到。 而如果是其他的repositories,比如这个repository名字叫node,那么建一个gh-pages分支

Github webhook错误:我们无法提供此有效负载:服务超时

enter image description here

我使用与Github设置/挂钩选项卡中相同的有效负载URL和有效负载主体测试了卷曲和邮递员。

它在curl和postman中运行良好,但它不适用于Github设置/挂钩,并且有服务超时等错误。

PS。我使用了Github企业主机,API和存储库。

答案

原因是我的企业github实例上有一个不可接受的端口。它适用于更改我的企业github允许的有效端口。谢谢,bglee

另一答案

我尝试了你的提示并使用Postman来模仿Github网络钩子。它对我也有用。我推送到我的仓库的下一次提交确实触发了一个有效的Web挂钩而没有任何更改。现在Webhookland的一切都很好。

另一答案

我有同样的问题,所以我将完整地描述我是如何工作的。我假设你有一个AWS EC2服务器应该听你的github。如果您希望在localhost上执行相同操作,则需要使用ngrok转发端口

听众也是 -

import web as webpy

urls = ('/.*', 'hooks')

app = webpy.application(urls, globals())

class hooks:
    def POST(self):
        data = webpy.data()
        print ('
DATA RECEIVED:')
        print (data)
        return 'OK'

if __name__ == '__main__':
    app.run()

将其保存为listen.py并使用pip安装依赖项。 (确保你使用pip3 for python3)。 python3的web模块可以通过以下方式安装 -

pip3 install web.py==0.40-dev1

使用SSH连接到您的服务器并运行

python3 listen.py 1234

这将在端口1234上启动侦听器(确保在AWS安全组中打开此端口)

现在您的服务器已设置好并准备好侦听端口1234.使用邮递员检查相同内容。如果听众回答 -

DATA RECEIVED:
b''
157.51.203.128:49935 - - [26/May/2018 14:46:43] "HTTP/1.1 POST /" - 200 OK

然后你就可以去配置你的github webhook了。

转到webhook并确保配置

有效载荷URL:http://ServerIpV4PublicIp:1234/内容类型:application / json秘密:选择 - 发送一切选择活动

现在更新/保存webhook并尝试推送到您的github存储库,并等待服务器监听并打印json文件。

以上是关于如何设置github的webhooks和jenkins挂钩的主要内容,如果未能解决你的问题,请参考以下文章

如何在设置 jenkins 触发器时在 github webhook 中修复“我们无法传递此有效负载:无法连接到服务器”?

如何将标头(用于 jenkins crumb)添加到 github webhook?

Github webhook错误:我们无法提供此有效负载:服务超时

Github webhook 的 Jenkins 自动构建不起作用

是否可以根据来自 2 个 repos 的 GitHub webhook 设置 Pipeline 作业以触发?

github jenkins webhook 期待已删除的 jenkins 作业