有没有必要注意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,你大可以直接执行脚本

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

查看所有标签

猜你喜欢:

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

How to Solve It

How to Solve It

Zbigniew Michalewicz、David B. Fogel / Springer / 2004-03-01 / USD 59.95

This book is the only source that provides comprehensive, current, and detailed information on problem solving using modern heuristics. It covers classic methods of optimization, including dynamic pro......一起来看看 《How to Solve It》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

html转js在线工具
html转js在线工具

html转js在线工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具