标签: gitosis

Git/gitosis:如何检查用户名和电子邮件的有效性?

我已经安装了git和gitosis,我需要添加一个检查,当某些东西被推入存储库时,用户名是有效的.

我认为预接收挂钩是放置它的正确钩子,但是我无法找到gitosis进入存储库的真实用户名和电子邮件地址(由git config user.name和git config user设置的那些).电子邮件)来自环境变量.LOGNAME和USER都是'git'.gitosis如何检测此信息,我是否也可以在预接收挂钩中找到它?

git gitosis

12
推荐指数
2
解决办法
5930
查看次数

Git post-receive hook无效

我们使用带有中央仓库的git(使用Gitosis).我已经创建了一个post-receive挂钩,只要将更改推送到中央存储库,就会生成一封发送到dev邮件列表的电子邮件,并从git repo中的文档文件夹生成文档.

因此,在~git /我有一个目录,我们称之为'a',其中包含git repo的克隆.后接收挂钩看起来像:

#!/bin/bash
cd ~git/repositories/a.git
. ~git/post-receive-email &> /dev/null
( cd ~git/a && git pull &> ~git/pull_log.log && php ~git/a/scripts/generate_markdown_documentation.php &> ~git/doc_log.log )
Run Code Online (Sandbox Code Playgroud)

电子邮件脚本正在运行,但文档生成却没有.pull_log.log的内容是:

fatal: Not a git repository: '.'
Run Code Online (Sandbox Code Playgroud)

这让我觉得它没有改变到上面脚本第5行的正确目录.我错了吗?我怎样才能让它发挥作用?

编辑:我已按照回复中的建议更新了post-receive hook.该脚本现在是:

#!/bin/bash
function die {
  echo "$*" >&2; exit 1
}

function checkgit {
  [ -d "$1/.git" ] || die "$1 could not possibly be a git repo; $1/.git is not a dir"
}


cd ~git/repositories/a.git
. ~git/post-receive-email &> /dev/null
( set -x
checkgit …
Run Code Online (Sandbox Code Playgroud)

git bash gitosis githooks git-post-receive

12
推荐指数
1
解决办法
1万
查看次数

gitosis: same user multiple machines

In git/gitosis a single ssh key is stored with the filename the same as user name.

i.e. myusername.pub

If I want to access a repository from many machines, must I make a new user from each location or is there a way to have multiple ssh keys for a single user.

git repository gitosis

12
推荐指数
1
解决办法
2583
查看次数

使用gerrit来主持git存储库而不是gitolite或gitosis是个好主意吗?

最初我尝试使用gitosis管理公司的git存储库,后来注意到gitolite是一种增强gitosis.

而且我也听说过gerrit可以用于同一目的,但从描述来看,gerrit主要用于代码审查.

那么这是设置git服务器的最佳方式

  • 使用gitolite(用于git repo) gerrit(用于代码审查)
  • 使用gerrit 来管理git存储库和codereview

你能提一些建议吗?

BTW:http://gitorious.org/将来会被考虑

git gitorious gitosis gitolite gerrit

12
推荐指数
1
解决办法
7903
查看次数

Gitosis错误:在先前可访问的存储库上接收"读取访问被拒绝"

玩家们

我已经使用git和gitosis几个月了,我真的很喜欢这两个.不幸的是,我在使用gitosis访问我的一个项目时遇到了问题.

设置

我在运行Debian的托管服务器帐户上设置了我的git和gitosis安装.我还设置了四台带有单独rsa密钥的计算机(两台Ubuntu,两台Windows),并成功设置每台计算机以访问gitosis安装.一切都顺利进行了一段时间.但是,最近,我无法以任何方式访问我的"DesktopConfiguration"项目(推,拉,克隆).我最初在我的一台Linux机器上创建了DesktopConfiguration项目,将其推送到gitosis服务器,并将其克隆到我的一台Windows机器上.直到最近(过去两周左右)我才能访问它.以下是我的gitosis.conf文件和我收到的错误消息(无论我尝试使用Windows或Linux框推送,拉取还是克隆,错误消息都是相同的):

胡克

gitosis.conf的

[gitosis]  
loglevel = DEBUG  

[group gitosis-admin]  
writable = gitosis-admin  
members = windows-desktop linux-desktop linux-laptop work-laptop  

[group main-projects]  
writable = WallpaperChanger  
writable = RegexTester  
writable = MovieAggregator  
writable = FileRenamer  
writable = GlutenFreeShoppingAssistant  
writable = Libraries  
writable = DesktopConfiguration  
writable = RssFeedReader  
members = windows-desktop linux-desktop linux-laptop work-laptop  
Run Code Online (Sandbox Code Playgroud)

错误信息

C:\Documents and Settings\myname\Desktop\Desktop Config Test>git clone git@myserver:DesktopConfiguration.git  
Initialized empty Git repository in C:/Documents and Settings/myname/Desktop/Desktop Config Test/DesktopConfiguration/.git/  
DEBUG:gitosis.serve.main:Got command "git-upload-pack 'DesktopConfiguration.git'"  
DEBUG:gitosis.access.haveAccess:Access check for 'work-laptop' as …
Run Code Online (Sandbox Code Playgroud)

git access-denied gitosis

12
推荐指数
1
解决办法
1万
查看次数

使用gitosis指定每个分支的权限?

使用gitosis,是否可以指定写入权限,以便用户可以使用自己的名称自由推送到分支,但不能与主服务器合并?例如$ USER/test1 .. $ USER/test5

这意味着您可以为每个项目仅托管一个存储库,而不是为同一项目托管多个存储库,特定于每个用户:

 project1-user1
 project1-user2
 project1-user3
 ...
 project5-user1
 project5-user2
 project5-user3
Run Code Online (Sandbox Code Playgroud)

git gitosis gitolite

10
推荐指数
2
解决办法
9857
查看次数

密码问题与git clone gitosis @ host:gitosis-admin.git

在尝试在Ubuntu上配置gitosis时,我遇到了一些问题.当我运行此命令

git clone gitosis@host:gitosis-admin.git
Run Code Online (Sandbox Code Playgroud)

对于我使用的本地机器git clone git@59.80.70.68:gitosis-admin.git,59.80.70.68是服务器的IP.但是我遇到了密码问题.我尝试输入服务器机器的密码,但它失败了

请帮助我.

git gitosis

10
推荐指数
1
解决办法
2万
查看次数

通过SSH隧道连接到gitosis服务器

我的macbook上有一个SSH隧道设置,就像这样......

$ ssh -o ServerAliveInterval=3 -N -L 22222:gitosis-server:22 user@firewall.domain.com

所以我可以ssh到localhost:22222并最终将防火墙后面的gitosis服务器.

我创建了一个本地id_rsa.pub文件,将其复制到gitosis服务器(运行Centos5),然后使用...将其导入gitosis.

# sudo -H -u gitosis gitosis-init 

It was successful as I can see the public key in /var/lib/gitosis/.ssh/authorized_keys.

Back on my macbook I setup a ~/.ssh/config file with the following...

Host gitosis-server
Hostname localhost
HostKeyAlias gitosis-server.domain.com
  Port 22222

所以...我认为这个命令应该有效......

$ git clone gitosis@gitosis-server:gitosis-admin.git

然而,它不会因为它要求输入密码....当公钥应该工作时.

Initialized empty Git repository in /Users/USER/Development/gitrepo/gitosis-admin/.git/
gitosis@localhost's password: 

关于让git工作到防火墙后面的gitosis服务器的任何想法?

谢谢,
马特


编辑 - 从SSH尝试添加调试

我做了这个命令,'ssh -vvv gitosis @ gitosis-server'.我得到了一些调试,它似乎不喜欢我的身份.

debug2: key: /Users/USER/.ssh/id_rsa.gitosis (0x1019b0)
debug1: Authentications …

git ssh firewall tunnel gitosis

10
推荐指数
1
解决办法
9096
查看次数

在windows下生成有效的openssh ssh密钥

我有一些人在Windows下,他们需要一个公共/私人RSA密钥对,以便让他们通过GIT服务器gistosis进行身份验证.我们使用SmartGit作为GIT GUI,此工具要求私钥采用OpenSSH格式.

使用puttyGen,我已经能够获得一个openssh 公钥,它打印在窗口中,但不是私钥.我只能使用"保存"按钮保存私钥,并且它保存的格式与我们使用*nix工具的格式不同.

我们如何使用Windows工具生成VALID openssh兼容的公钥和私钥

谢谢.

ssh openssh key gitosis smartgit

9
推荐指数
1
解决办法
2万
查看次数

git clone localhost?

我对ubuntu并不大,但我设法在我的客户端设置git并在我感到自豪的服务器上gitosis.我将我的本地ssh公钥添加到gitosos的授权密钥,并且可以克隆,推送,提交等.一切正常,从我的本地机器到服务器 - 来回.

但是,由于服务器也充当我的网络服务器,我只需要连接到服务器并在我的一个webroot文件夹中创建一个"git clone git @ localhost:gitproject.git",但它根本不起作用.

我是否必须将服务器pub密钥添加到授权主机?如果是这样,怎么样?或者还有其他方法吗?

谢谢

ubuntu gitosis

9
推荐指数
1
解决办法
8926
查看次数