= prohibited by Gerrit

This is a general error message that is returned by Gerrit if a push
is not allowed, e.g. because the pushing user has no sufficient
privileges.

In particular this error occurs:

1. if you push a commit for code review to a branch for which you
   don't have upload permissions (access right
   link:access-control.html#category_push_review['Push'] on
   `refs/for/refs/heads/*`)
2. if you bypass code review without
   link:access-control.html#category_push_direct['Push'] access right
   on `refs/heads/*`
3. if you bypass code review pushing to a non-existing branch without
   link:access-control.html#category_create['Create Reference'] access
   right on `refs/heads/*`
4. if you push an annotated tag without
   link:access-control.html#category_push_annotated['Push Annotated Tag']
   access right on 'refs/tags/*'
5. if you push a signed tag without
   link:access-control.html#category_push_signed['Push Signed Tag']
   access right on 'refs/tags/*'
6. if you push a lightweight tag without the access right link:access-control.html#category_create['Create
   Reference'] for the reference name 'refs/tags/*'
7. if you push a tag with somebody else as tagger and you don't have the
   link:access-control.html#category_forge_committer['Forge Committer']
   access right for the reference name 'refs/tags/*'
8. if you push to a project that is in state 'Read Only'

For new users it often happens that they accidentally try to bypass
code review. The push then fails with the error message 'prohibited
by Gerrit' because the project didn't allow to bypass code review.
Bypassing the code review is done by pushing directly to refs/heads/*
(e.g. refs/heads/master) instead of pushing to refs/for/* (e.g.
refs/for/master). Details about how to push commits for code review
are explained link:user-upload.html#push_create[here].


GERRIT
------
Part of link:error-messages.html[Gerrit Error Messages]

SEARCHBOX
---------
