-->

git push origin DENIED by fallthru, hook declined:

2019-03-24 16:19发布

问题:

I am having a problem pushing with git using Gitolite.
When I try this:

git push origin :refs/tags/deployment

I get this error:

remote: D NAME/install.py repos michael DENIED by fallthru
remote: error: hook declined to update refs/tags/deployment
To gitolite@admin:repos
 ! [remote rejected] deployment (hook declined)
error: failed to push some refs to 'gitolite@admin:repos'

I have given the group deploy [of which the user michael is a member of] permission to delete branches in the Gitolite config:

@deply  =   michael

repo  repos

        RWD    =   @deply

I have seen this post: "Unable to push in Git. Why?"

But I am not using any hooks that I am aware of and cannot find anything thing else that might relate.

Is there something im missing perhaps?
Has anybody come across this?

回答1:

You need RW+ permission for ref changes/deletion

RW+, for "push -f" or ref deletion allowed (i.e., destroy information)

Also, if you're using V2 this may apply:

RWD and RW+D, for ref deletion. Once you use this in a repo, a normal RW+ can no longer delete a ref; it can only rewind

Sources:

http://sitaramc.github.com/gitolite/g2/conf.html

http://sitaramc.github.com/gitolite/rules.html



回答2:

This worked for me, when nothing else would:

cd ~gitlab/gitlab
sudo -u gitlab -H bundle exec rake gitlab:gitolite:update_keys RAILS_ENV=production
sudo -u gitlab -H bundle exec rake gitlab:gitolite:update_repos RAILS_ENV=production