git - Git hook - 如何简化推送时的提交查询?
问题描述
为了监听 git 提交,我连接到推送服务。每次我进行推送时,我的应用程序都会收到调用,然后我向服务器请求其中的所有提交,然后我再次向服务器请求其中的所有文件信息。了解所有细节。
我记得,早些时候当 push hook 触发服务时。它传递所有信息。但后来他们修改了它。现在我们必须多次调用才能获得完整的信息。
这可以做得更简单吗?
解决方案
如该线程中所述,webhook 的替代方法是使用GitHub Action以便在推送时获取提交信息,然后通过电子邮件发回结果
在 push 事件中,before 和 after 键代表本次推送操作的上一次提交和本次推送操作中的最后一次提交。
所有与推送相关的提交都包含在这两个提交之间。要获取与推送事件相关的修改文件,您可以使用
git diff
命令来获取文件名。git diff --name-only ${{ github.event.before }} ${{ github.event.after }}
另外,请记住在结帐操作中设置 fetch-depth: 0。
请参阅我的示例工作流 yml:
on:
push:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: get file changes
run: |
git diff --name-only ${{ github.event.before }} ${{ github.event.after }}
您可以将git diff
命令替换为简单的git log
, 以获得更多信息,而不仅仅是文件的名称。
关键是:额外的调用是在 GitHub 端完成的,最终结果会发回给你,这与 webhook 方法相反,当你收到信号并且必须发回额外的查询时。
推荐阅读
- javascript - Chrome 扩展从弹出窗口更新页面中的值
- node.js - NPM 漏洞对构建过程的重要性
- javascript - 按 IndexedDB 对象存储中的不同列排序和过滤
- php - 在 Woocommerce 中显示特定产品类别的产品
- tor - 使用温顺的桥梁程序化
- wordpress - WooCommerce“下订单”重定向到 404(子目录安装)
- java - 使用 jdbc 模板批量更新插入或更新记录后如何获取自动生成的主键?
- sql-server - 将 SQL 数据导出到具有多种记录类型的固定宽度文本文件
- angular - SweetAlert 删除 angular5 中的错误
- typescript - 打字稿:接口字段上的元