有没有必要注意Webhook的行为

栏目: 编程工具 · 发布时间: 6年前

内容简介:Webhook ->  点击订阅Github仓库特定事件

Webhook ->  点击订阅Github仓库特定事件

Introduction

  • 你在做什么 :  开发网页,开发App
  • 你想要什么 :  关注我仓库的一些行为,例如有人push我代码了怎样
  • Webhook做什么 :  当这些行为发生的时候我们发一个HTTP请求过去
  • 请求? 什么请求?  为你的服务器设定好,收到什么请求做什么,那么这个HTTP请求就能为你做很多事,更新镜像,触发CI活动,自己想

你可以选择订阅以下事件

  • 关于代码本身的事件
    • Push
    • Branch/tag的创建与删除
    • Issue产生/删除/被评论了/被贴标签
    • 产生了Pull requests
  • 关于代码仓库的事件
    • 代码仓库Fork
    • 代码仓库被Watch了
  • Deployment
    • 完成部署
    • 创建/删除 Deployment Keys
    • 部署状态发生改变
  • 更多

用户订阅Webhook会产生什么影响

1. 在Github页面上定义一个Webhook

  • Jenkins-Git 插件执行的操作
    • git rev-parse --is-inside-worktree            检查我们现在是不是在一个有效的工作目录下 
    • git config remote.origin.url http....         配置仓库地址
    • git  fetch                                                          获取所有tag/分支相关信息
    • git rev-parse ..^{commit}                            获得头部hash(最新提交ID)
    • git checkout                                                    切换到最新提交ID上
  • 可以发现Webhook并不支持,也就是说fetch的时候并不会触发一个Webhook 
    • 就算触发了,也就是   Github   --  HTTP -->  某URL
    • 这里的所有执行过程并不涉及编译机本身

比Webhook更加广泛 -> Hooks

1.1 Hooks的分类

Hook同样它们也能针对特定行为做出反应,只是这里的反应不只是发送URL请求,而是执行一个脚本,Webhook的行为同样可以被hook原模原样的表演出来,Hook能分成两种,他们都会位于.git/hooks目录下
  • 本地 -> 本地仓库 -> .git/hooks 上定义
    • 你在本地执行完相应的操作以后,本地为你执行的脚本
    • 这里的hook包含有 Patch类 + commit类 + push类 ,基本上都是针对代码修改后提交可能需要的hook,没有一个是关于 fetch 相关的hook
  • Git服务端 -> 远程仓库 -> .git/hooks 上定义
    • 服务端可能会接受到一些请求,例如你commit了或者push了,服务端去执行的脚本
  • 这两者是互相不关联的,也就是说:
    • 修改了本地的 .git/hooks/XXX后,下一次push不会提交,远程不知道,只能本地用
    • 修改了服务器上的 .git/hooks/XXX后,下一次clone不会同步到本地

1.2 所以为什么Webhook & Hook是安全的

  • 假设现在有一个人希望在编译机Fetch的时候,触发一些什么操作, 他需要解决这些问题
    • 你需要有一个你自己的Git客户端,否则你修改不了远程 .git目录
    • 没有针对Fetch的 Webhook & Hook, 根据这个stack overflow回答
      • 你没有可能创造出一个Fetch-Hook
      • Merge倒是可能触发一个本地Hook,但是Hook是无法被下载下来的,所以你必须在 第一次编译的时候下载并人为创造一个Merge-Hook, 第二次编译人为触发Merge-Hook
      • 可惜我们每次都清空你的代码,你的Merge-Hook留不到下一次
      • Hook本质是执行脚本,如果你都能创建出Hook,你大可以直接执行脚本

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

计算机网络(第4版)

计算机网络(第4版)

[美] James F. Kurose、[美] Keith W. Ross / 陈鸣 / 机械工业出版社 / 2009-11 / 66.00元

本书采用了独创的自顶向下方法,即从应用层开始沿协议栈向下讲解计算机网络的基本原理,强调应用层范例和应用编程接口,内容深入浅出,注重教学方法,理论与实践相结合。第3版的内容相应更新并反映了网络领域的最新进展,如增加了无线和移动网络一章,扩充了对等网络、BGP、MPLS、网络安全、广播选路和因特网编址及转发方面的材料;还增加了一套实用的实验,并修订了习题。本书适合作为计算机、电子、通信工程相关专业的本......一起来看看 《计算机网络(第4版)》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码