How to write a git hook to restrict writing to branch?
Asked Answered
T

2

3

I'd like to restrict write access for the master branch to only several developers, while allowing others to pull everything and push to other non-master branches. Idea is that a developer would push to some other branch and then if code passes review, reviewer would merge it into the master branch.

I'm pretty sure that this can be easily done with a git commit hook, but I don't know python and this seems like such a generic problem, that somebody must have written it already. Do you know where I could find such a script? Or if you have one lying around, please paste it here, for lazy people like me.

Theurgy answered 6/11, 2010 at 18:11 Comment(0)
M
4

I think it could be possible to use such script but it is not the right place for rights management, it should be rather done on git server side. For example in gitosis you do this configuration in gitosis-admin repository in file gitosis.conf.

Security managed by a hook can be easily broken, only server can keep track of this things, please check documentation of your server for details how to restrict access.

Motile answered 6/11, 2010 at 19:10 Comment(2)
Correct. A pre-commit hook doesn't do any good - each developer's repository is their own. You can't make them do anything they don't want to. The central server, however, can be yours to enforce policy on. And yes, git server management software (gitosis, gitolite) can do this for you.Boxer
Of course, I meant commit hook on the central repository server, not local machines. But gitolite seems to be what I was looking for, so thanks. For future visitors: progit.org/book/ch4-8.htmlMarocain
K
3

For your requirement: "if code passes review, reviewer would merge it into the master branch."
You can try Gerrit Code Review: http://code.google.com/p/gerrit/

Komara answered 23/10, 2012 at 6:23 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.