gerrit/Documentation/cmd-set-project-parent.txt
Gustaf Lundh 7ed07a74ef SSH: set-project-parent is no longer admin exclusive
Config option "recieve.allowProjectOwnersToChangeParent"
may allow project owners to reparent a project.

We fix this by delegating the actual project re-parenting
to the SetParent REST Api endpoint, which already have the
neccessary permission checks in place. This also allows
us to remove a lot of reduntant input sanity checks from the
ssh command.

Change-Id: I2da2eabd1f3bbaebcdfa5ba86524297181867282
2018-08-22 07:02:19 +00:00

74 lines
2.0 KiB
Plaintext

= gerrit set-project-parent
== NAME
gerrit set-project-parent - Change the project permissions are inherited from.
== SYNOPSIS
[verse]
--
_ssh_ -p <port> <host> _gerrit set-project-parent_
[--parent <NAME>]
[--children-of <NAME>]
[--exclude <NAME>]
<NAME> ...
--
== DESCRIPTION
Changes the project that permissions are inherited through.
Every project inherits permissions from another project, by
default this is `All-Projects`. This command sets
the project to inherit through another one.
== ACCESS
Caller must be a member of the privileged 'Administrators' group
or, if
link:config-gerrit.html#receive.allowProjectOwnersToChangeParent[receive.allowProjectOwnersToChangeParent]
is enabled, be a project owner of the projects that is getting their
parent updated.
== SCRIPTING
This command is intended to be used in scripts.
== OPTIONS
--parent::
Name of the parent to inherit through. If not specified,
the parent is set back to the default `All-Projects`.
--children-of::
Name of the parent project for which all child projects should be
reparented. If the new parent project or any project in its
parent line is a child of this parent project it is automatically
excluded from reparenting.
--exclude::
Name of a child project that should not be reparented. This
option can only be used if the option --children-of is set.
Multiple child projects can be excluded from reparenting by
specifying the --exclude option multiple times. Excluding a
project that is not a child project has no effect.
== EXAMPLES
Configure `kernel/omap` to inherit permissions from `kernel/common`:
----
$ ssh -p 29418 review.example.com gerrit set-project-parent --parent kernel/common kernel/omap
----
Reparent all children of `myParent` to `myOtherParent`:
----
$ ssh -p 29418 review.example.com gerrit set-project-parent \
--children-of myParent --parent myOtherParent
----
== SEE ALSO
* link:access-control.html[Access Controls]
GERRIT
------
Part of link:index.html[Gerrit Code Review]
SEARCHBOX
---------