如何在服务器端git hook中获取推送用户信息?

2024-04-22

我想阻止用户使用服务器端挂钩删除远程 git 分支(更新钩子).

我在 update hook 中编写了 shell 脚本来实现这一点。
现在我可以停下来了all用户删除远程git分支,但我想授予删除权限特定用户,为此,我们需要获取正在服务器端挂钩中尝试删除操作的用户信息(用户名、用户邮箱)?

we have $USER, $GIT_AUTHOR_NAME, $GIT_AUTHOR_EMAIL等变量在客户端挂钩中获取用户信息,但它们在服务器端挂钩中没有用。

我们还有其他选项可以在服务器端挂钩中获取用户信息吗?


Sample hook code

请记住,每个人都可以通过以下方式伪造提交中的电子邮件:

git commit -c user.name ... -c user.email ...

为了避免它,请访问您的中央存储库文档并阅读用户权限(每个服务器之间有所不同)并从那里提取如何获取用户详细信息的信息。

#!/bin/sh
#

# Extract the desired information from the log message
# You can also use the information passed out by the central repo if its available

# %ae = Extract the user email from the last commit (author email)
USER_EMAIL=$(git log -1 --format=format:%ae HEAD)

# %an = Extract the username from the last commit (author name)
USER_NAME=$(git log -1 --format=format:%an HEAD)

# or use those values if you have them:
# $USER, $GIT_AUTHOR_NAME, $GIT_AUTHOR_EMAIL

#
#... Check the branches and whatever you want to do ...
#

# personal touch :-)
echo "                                         "
echo "                   |ZZzzz                "
echo "                   |                     "
echo "                   |                     "
echo "      |ZZzzz      /^\            |ZZzzz  "
echo "      |          |~~~|           |       "
echo "      |        |-     -|        / \      "
echo "     /^\       |[]+    |       |^^^|     "
echo "  |^^^^^^^|    |    +[]|       |   |     "
echo "  |    +[]|/\/\/\/\^/\/\/\/\/|^^^^^^^|   "
echo "  |+[]+   |~~~~~~~~~~~~~~~~~~|    +[]|   "
echo "  |       |  []   /^\   []   |+[]+   |   "
echo "  |   +[]+|  []  || ||  []   |   +[]+|   "
echo "  |[]+    |      || ||       |[]+    |   "
echo "  |_______|------------------|_______|   "
echo "                                         "
echo "                                         "
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在服务器端git hook中获取推送用户信息? 的相关文章

随机推荐

  • 检查针对 SQL Server 数据库的 LINQ 查询

    有什么方法可以在 NET 中查看我们正在触发的针对数据库的 LINQ 查询吗 例如 我正在 LINQ 中编写一个查询 我想看看触发了什么 SQL 查询来与数据库进行通信 有没有 Visual Studio 窗口或其他方式 你在寻找类似的东西
  • 带 python 列表的循环引用

    有人可以解释一下吗 gt gt gt x x 0 0 gt gt gt x gt gt gt x is x 0 True gt gt gt x 0 0 0 0 0 0 0 gt gt gt x in x True what is 这只是 P
  • OpenCV 3.0.0 使用 FFMPEG 时出错

    我使用 OpenCV 一段时间了 但是 我最近将系统更改为没有任何管理员权限的集群 问题是这样的 在我的主文件夹中 我安装了 FFMPEG ffmpeg 网站上提供的最新稳定版本 我将它安装在 HOME 中 因此在 HOME lib 中安装
  • sso 用户的 s3 存储桶策略

    我想允许特定角色 test role 在特定存储桶 test bucket 上执行所有 s3 操作 拒绝为所有其他人提供桶 我写的 s3 策略 Version 2012 10 17 Id Policy1601973417173 Statem
  • 以编程方式发送自动电子邮件[重复]

    这个问题在这里已经有答案了 我想以编程方式发送电子邮件 我尝试了以下代码 最终意图 emailIntent 新意图 android content Intent ACTION SEND emailIntent setType plain t
  • iOS:Firebase 令牌返回 null

    我目前正在尝试按照 Firebase 官方文档来实现 Firebase Cloud Messaging 我已在启用推送通知的情况下解决了证书和配置文件的问题 我还使用 CocoaPods 安装了所有必要的框架 FirebaseMessagi
  • 将 LinkBut​​ton 的 OnClick 事件设置为代码隐藏中的方法

    我正在从我的代码隐藏构造一个 LinkBut ton 我需要将 onclick 分配给一个方法 并用它传递一个参数 到目前为止我有这个 LinkButton lnkdel new LinkButton lnkdel Text Delete
  • 在 FIFO 上写入“复杂”结构

    我正在使用 C 语言与客户端服务器进行某种 餐厅 实现 我正在尝试通过 FIFO 发送以下结构 typedef struct int numtable table number to send answer char timestamp 2
  • 没有带有常量“模板参数”的 F# 泛型?

    我突然想到 F 泛型似乎不接受常量值作为 模板参数 假设有人想创建一种类型RangedInt这样 它的行为类似于 int 但保证只包含整数值的子范围 一种可能的方法是建立受歧视的工会 类似于 type RangedInt Valid of
  • 使用 ggplot 约束 stat_smooth 中的斜率(绘制 ANCOVA)

    Using ggplot 我试图绘制 ANCOVA 的结果 其中两个线性分量的斜率相等 即lm y x A 默认行为为geom smooth method lm 是为每个因子的每个水平绘制单独的斜率和截距 例如 有两个级别A library
  • 具有两个以上固定效应的 Python 面板数据回归

    我有一个面板数据库 想运行考虑固定效应的回归 使用Panel Ols 时 两个固定效果可以正常工作 我的代码如下所示 df countyCode pd Categorical df countyCode df state pd Catego
  • 如何从带有通配符的字符串中获取Appx全名?

    在 Powershell 中 此命令Get AppxPackage name 可以显示包裹的完整详细信息 是否可以使用任何 Windows API 来获得等效结果 我见过这个question https stackoverflow com
  • python cdist 错误 ValueError: XA 必须是二维数组

    这是我的代码的缩短版本 dist array ssd cdist test y training test y 打印的是 0 00000000e 00 1 79900000e 01 1 03800000e 01 1 22800000e 02
  • 在 SQL 中获取运行总计最大值的高性能方法

    我们有一个交易表 其结构如下 TranxID int PK and Identity field ItemID int TranxDate datetime TranxAmt money TranxAmt 可以是正数或负数 因此该字段 对于
  • PostgreSQL 对连接中的表数量有限制吗?

    今天在玩动态查询生成时 我发现 mysql 对连接中可以使用的表数量有一个硬性最大限制 61 这让我想知道 PostgreSQL 是否有类似的限制 注 我问这个是出于好奇 而不是需要 据我所知没有限制 一旦超过 可配置的 表限制 查询优化器
  • Spring Boot 安全 - Thymeleaf sec:授权不起作用

    我正在尝试使用 Spring Boot Spring Security 4 Thymeleaf 如果用户具有 admin 角色或其他角色 应该显示 html 块 但现在它始终显示在页面上 这是我的html div p class bg in
  • Python 中的“与”/“或”? [复制]

    这个问题在这里已经有答案了 我知道and and orpython中存在表达式 但是有没有and or表达 或者以某种方式将它们组合起来以产生与and or表达 我的代码看起来像这样 if input a if a or or or or
  • Django 在一次调用中序列化多个对象

    我想知道如何减少序列化时对数据库的调用次数 我有以下2个型号 class House models Model name models CharField max length 100 null True blank True addres
  • Web API 中 id 参数后带有操作的路由

    在 web api 中 默认路由是 api locations 123 days 5 config Routes MapHttpRoute name DefaultApi routeTemplate api controller id de
  • 如何在服务器端git hook中获取推送用户信息?

    我想阻止用户使用服务器端挂钩删除远程 git 分支 更新钩子 我在 update hook 中编写了 shell 脚本来实现这一点 现在我可以停下来了all用户删除远程git分支 但我想授予删除权限特定用户 为此 我们需要获取正在服务器端挂