如何在git中的特定分支上配置访问列表
Posted
技术标签:
【中文标题】如何在git中的特定分支上配置访问列表【英文标题】:how to configure access list on specific branch in git 【发布时间】:2015-12-21 12:11:37 【问题描述】:我想问一下如何在git的特定分支上配置访问列表? 我在 apache 中使用 DAV 将 git 配置为通过 http 访问。 gitolite 版本是 1.9.1 操作系统 ubuntu 14.04/ thnx 在高级
apache2 配置
<virtualhost *:80>
ServerName git.example.com
ErrorLog $APACHE_LOG_DIR/git_error.log
CustomLog $APACHE_LOG_DIR/git_access.log combined
SetEnv GIT_PROJECT_ROOT /home/git/repositories
SetEnv GIT_HTTP_EXPORT_ALL
SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER
ScriptAlias /hgit/ /home/git/bin/gitolite-shell
SetEnv GIT_HTTP_BACKEND "/usr/lib/git-core/git-http-backend"
<Location /hgit>
Options +ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
#AllowOverride All
order allow,deny
Allow from all
AuthType Basic
AuthName "git repository"
AuthUserFile /etc/apache2/passwd.git
Require valid-user
</Location>
</virtualhost>
【问题讨论】:
【参考方案1】:gitolite 版本不是 1.9.1。 It should be 3.6.4. 它是一个授权层,允许基于由 Apache 或 sshd 之类的监听器管理的身份验证访问 git repo。
1.9.1 is the default version of git core on trusty (Ubuntu 14.04),其中does not mean you can not upgrade it to a more recent version (currently 2.6.4)
您不应该在 Apache for Git 上使用 DAV,not since 2011 and smart https。You actually can call gitolite from Apache:如果授予访问权限,它将自己调用 git-http-backend
script。
最后,要为特定分支配置访问列表(针对推送),请参阅“Gitolite restrict access to branch”。 请注意,您不能限制 read 对分支的访问:如果您可以读取(即克隆)一个 repo,您就可以访问它的所有分支。
【讨论】:
我在配置 DAV 时可以使用 http 进行克隆,但我无法将 gitolite 配置为与 http 兼容。请帮帮我 @EmanMohamed 不要使用 DAV:让你的 Apache 调用 gitolite,它会调用 git:***.com/questions/14104759/… 很抱歉,我不明白如何配置 gitolite 以使用 http credential。我按照此链接tikalk.com/devops/… 中的步骤操作。请详细说明如何配置它。感谢先进 @EmanMohamed 无需配置:一旦 Apache 完成身份验证 (github.com/sitaramc/gitolite/blob/…),gitolite 会查找 Apache 设置的环境变量REMOTE_USER
ScriptAliasMatch \ "(?x)^/(.*/(HEAD | \ info/refs | \ objects/(info/[^/]+ | \ [0-9a-f] 2/[0-9a-f]38 | \pack/pack-[0-9a-f]40\.(pack|idx)) | \ git-(upload|receive)-pack)) $" \ /usr/lib/git-core/git-http-backend/$1 SetEnv GIT_PROJECT_ROOT /home/git/repositories SetEnv GIT_HTTP_EXPORT_ALL SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER scriptAlias /hgit/ /home/git/gitolite/src/gitolite-shell /SetEnv GIT_HTTP_BACKEND "/usr/lib/git-core/git-http-backend" 以上是关于如何在git中的特定分支上配置访问列表的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Youtube API 访问特定播放列表中的所有视频?
如何从 Flutter 中的网格视图计数访问生成列表中的特定单元格?