Gitolite 限制对分支的访问

2023-12-02

我的服务器上有 GITOLITE,我想配置对我的存储库的访问。我想限制某些用户对某些分支的访问。我尝试了很多如何配置 gitolite.conf 文件的变体,但没有找到如何限制对某些分支的访问的解决方案。

1)

@developers1 = user1
@developers2 = user2

repo dbatest 
   RW+    = @developers1
   R test = @developers2
   - test = @developers2
   RW+    = @developers2

当user2执行命令时:git push origin test: 推送成功 在 gitolite 日志中我有这样的行:

http    ARGV=user2  SOC=git-receive-pack 'dbatest'  FROM=10.65.184.239
6453    pre_git dbatest user2   W   any refs/.*
6453    system,git,http-backend
6453    END

2)

@developers1 = user1
@developers2 = user2

repo dbatest 
   RW+    = @developers1
   - test = @developers2
   RW+    = @developers2

当user2执行命令时:git push origin test: 推送成功 在 gitolite 日志中我有这样的行:

http    ARGV=user2  SOC=git-receive-pack 'dbatest'  FROM=10.65.184.239
6457    pre_git dbatest user2   W   any refs/.*
6457        system,git,http-backend
6457    END

3)

@developers1 = user1
@developers2 = user2

repo dbatest 
   RW+    = @developers1
   R test = @developers2
   - test = @developers2
   RW+    = @developers2
   option deny-rules = 1

当user2执行命令时:git push origin test: 推送被拒绝,他看到了这条消息:

fatal: remote error: FATAL: W any dbatest user2 DENIED by refs/heads/test
(or you mis-spelled the reponame)

在 gitolite 日志中我有这个:

8161    http    ARGV=user2  SOC=git-receive-pack 'dbatest'  FROM=10.65.184.239
8161    die W any dbatest user2 DENIED by refs/heads/test<<newline>>(or you mis-spelled the reponame)

看起来不错,但是当他尝试将某些内容推送到主分支时,他收到了这条消息。

我尝试在我的 gitolite 配置文件中混合这些行,但它们对我不起作用。

如果有人能帮助我,我会很高兴。我想限制某些开发人员对某些分支的写访问权限。我无法创建额外的存储库,我必须在一个主存储库上使用限制策略。

十分感谢!


如果我看一下官方文档:

repo foo bar

    RW+                     =   alice @teamleads
    -   master              =   dilbert @devteam
    -   refs/tags/v[0-9]    =   dilbert @devteam
    RW+ dev/                =   dilbert @devteam
    RW                      =   dilbert @devteam
    R                       =   @managers

dilbertdev团队有这些限制

they can do anything to branches whose names start with "dev/"
**they can create or fast-forward push, but not rewind or delete, any branch except `master`**

所以这看起来是正确的:

- test  = @developers2
   RW+  = @developers2

然而 gitolite 有两个检查:

  • 当参考未知时(在这种情况下- test被忽略),
  • 裁判的一个是已知的。

在您的情况下,应该知道 ref (测试)并应用拒绝规则。

您可以通过跟踪特定规则的逻辑来进行更多调试:

gitolite access -s dbatest user2 W test

The 苏菲尔费证实在评论中 that 它适用于 3.5.3,不适用于 3.6.x.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Gitolite 限制对分支的访问 的相关文章

随机推荐

  • 某些象形文字语言中的字计数器?

    是否有任何可用的库用于某些象形文字语言的字数统计 例如 中文 日文 韩文 我发现 MS Word 可以有效地计算这些语言的文本 我可以在 NET 应用程序中添加对 MS Word 库的引用来实现此功能吗 或者还有其他解决方案可以达到这个目的
  • 类型错误:第一个参数必须是可调用的,defaultdict

    错误来自publishDB defaultdict defaultdict 我想制作一个像这样的数据库 subject1 student id assignemt1 marks assignment2 marks finals marks
  • 耙子中止! ActiveRecord::Base:Class 的未定义方法“migration_error=”

    我正在 Ruby on Rails 上开发项目 到目前为止 我使用 Rails 4 一切都很好 然后我遇到了 gem 的无能问题 我决定回滚到 Rails 3 更改了 Gemfile 删除了 Gemfile lock 所有 Rails 安装
  • Play WS API:限制请求速率

    我正在使用异步 Play WS Scala API 来查询 RESTful 服务 我想知道如何处理List包含要通过以下方式调用的请求 URLWSClient 但每秒不得超过 1 个请求 该服务允许每个客户端每秒 仅 1 个请求 从逻辑的角
  • 尝试使用 Github Actions 复制存储库时出现身份验证错误

    我有一堆使用 Azure Pipelines 进行 CI CD 的存储库 我现在正在尝试将其移植到 Github Actions 这是我正在做的第一个工作 https github com Azure AzureAuth tree fix
  • 快速跨平台 C/C++ 图像处理库

    有哪些用于图像处理的跨平台和高性能图像库 调整大小和查找颜色 色调直方图 无需图形用户界面 这是针对 C C 的 到目前为止我已经研究过 OpenCV GIL 作为 Boost 的一部分 DevIL CImg 我的问题 我上面列出的性能如何
  • 将回形针图像复制到 Rails 4 中的新记录

    我的网站用于发布专辑评论 称为 Pin 图 引脚模型具有以下属性 艺术家 年份 标题 排名 描述和 图像 该图像使用 Paperclip 并存储在 Amazon S3 上 如果重要的话 我试图允许用户查看其他用户发布的评论 并单击链接以更简
  • java中的超链接

    有没有什么方法可以在Java中的JTextArea中创建可点击的超链接 如果您绝对想使用 jTextArea 可以执行此操作的一种方法是获取 User MouseClick x y 位置 然后从那里进行处理 然而 更简单的方法是使用 JEd
  • 如何在android中获取画布中屏幕尺寸的大小?

    我能够在正常活动中获取屏幕尺寸 但我需要在画布视图中获取屏幕尺寸并根据它进行操作 上面的任何片段都会有所帮助 谢谢 我得到了 widthPixels heightPixels 使用这个 DisplayMetrics metrics getB
  • 在 WooCommerce 中以编程方式对保存的信用卡收费

    我正在 WooCommerce 中以编程方式创建订单 并且需要向默认保存的信用卡收费 我正在使用 WooCommerce stripe 插件 并已弄清楚如何设置正确的付款方式 但无法弄清楚如何实际向卡收费 下面是我到目前为止的代码 orde
  • Grails 使用 config.properties 值到 BuildConfig.groovy 中

    我有一个config properties文件下conf目录 并在上面的文件中有一个条目 如下所示 grails tomcat version 2 2 4 我如何使用这个值BuildConfig groovy file Suppose pl
  • iPhone - 用于文本转语音功能的 API [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我想知道iPhone是否有支持文本转语音功能的API 我环顾四周但没有找到任何东西 所以只是想确认一下 期待中感谢 我曾经遇到过这个问题 并在 iP
  • 约束编程:多个工人的调度

    我是约束编程的新手 我想这是一个简单的问题 但我无法解决它 问题是这样的 我们有多台机器 N 每台机器的资源都是有限的 比如说内存 所有机器的资源可以相同 我们有 T 个任务 每个任务都有一个持续时间 并且每个任务都需要一定量的资源 只要不
  • 加密 url 中 id 的好方法是什么?

    我一直在网上查看有关在 url 中加密 id 的解决方案的文章 我已经尝试过基本的编码解码 但是在下一页上解码时遇到问题 我在其中进行选择 其中 id 解码的 id 它不会从表中获取正确的用户 我的链接 My link a href Vie
  • file_put_contents 正在向代码添加反斜杠

    I use file get contents file put contents 加载和保存 css文件 保存加载的文件后file put contents 函数将转义引号 如何防止这种情况 file pathto base css ta
  • 使用“getclobval()”执行 oracle 过程时出现“无效字符错误”

    以下过程可以成功编译ctrll S 显示有效 但执行时会抛出错误 Invalid character error执行此操作时procedure on SQL DEVELOPER 我没有看到任何地方有无效字符 以下是创建表并插入值的代码 CR
  • 如何创建透明框架集?

    我想创建一个框架集中包含 3 个框架的页面 My Home html是主页 有3个框架 分别是Header html Announcement php and Footer html
  • Octave JIT 编译器。当前状态和展示效果的最小示例

    我听到有关 Octave 实验性 JIT 编译器功能的非常矛盾的信息 从 这是一个玩具项目 但它基本上不起作用 到 我使用了它 并且我获得了显着的加速 我知道为了成功使用它 需要 编译八度与 enable jit在配置时 启动八度音程 ji
  • 尝试打开带有超链接的网站时 Process.Start 引发异常

    这段代码抛出一个System ComponentModel Win32Exception in my RequestNavigate事件处理程序 Process Start new ProcessStartInfo e Uri Absolu
  • Gitolite 限制对分支的访问

    我的服务器上有 GITOLITE 我想配置对我的存储库的访问 我想限制某些用户对某些分支的访问 我尝试了很多如何配置 gitolite conf 文件的变体 但没有找到如何限制对某些分支的访问的解决方案 1 developers1 user