如何在gitlab中更改项目所有者

时间:2014-02-05 14:14:54

标签: gitlab

如何在gitlab中更改项目所有者? 项目设置中有选项,但在“转移”字段中,它不识别任何用户名或任何内容。是否可以更改所有者权限和root权限?

9 个答案:

答案 0 :(得分:11)

TL; DR

将您的项目移至您和其他用户都是所有者的新组,然后另一个用户必须将其转移到他自己的名称空间。

背景

其他答案显然无法将项目转移给其他用户,尽管其中一个评论部分足以让人知道。此外,this issue on GitLab itself提供了一些见解。

我的情况

我已经安装并现在为一些小型开发团队管理一些GitLab实例,并为我的个人项目管理一个实例。结果,我遇到了很多关于此的问题。我一直回到这个问题只是为了意识到它从来没有真正得到正确回答。

命名空间问题

您在执行此操作时遇到的问题是,项目只能有一个所有者,但要传输项目,您必须拥有要将其传输到的名称空间。据我所知,没有其他方法来移动项目。为了完整起见,我将在此添加命名空间,例如“gitlab.com/my-user-name / ...”“gitlab .COM / 我的组名称 / ...“的。

解决方案

由于一个用户不能“拥有”另一个命名空间(甚至不是管理员),因此设置两个用户拥有相同命名空间的方案的唯一选项是使用组。执行以下步骤即可完成此操作。

  1. 创建一个新组。
  2. 将要转移项目的用户添加为该组的所有者成员。
  3. 将项目转移到该组(您管理的名称空间,因为您是所有者)。
  4. 以其他用户身份登录,然后将组项目转移到“其他用户”命名空间。
  5. 此时,您将在项目中保留为。如果需要,您现在可以完全从项目中删除自己。

    我承认,转移项目太多了......

    enter image description here

答案 1 :(得分:3)

您可以通过以下方式将另一个所有者添加到项目中:

项目 - >成员 - >添加成员 - >选择所有者作为权限

接下来,你必须从项目中删除自己:

项目 - >成员 - >点击用户名后面的红色按钮

现在您离开了项目,之前输入的用户现在是所有者。

答案 2 :(得分:1)

也可以导出项目并在其他用户下导入。这样可以保留提交和分支。

设置-> 高级-> 导出项目

然后导入:

新项目-> 导入项目-> Gitlab导出

答案 3 :(得分:0)

您基本上可以创建一个组,然后将项目添加到组中,然后从组成员设置中添加新的所有者,然后您可以自己离开该组。

查看屏幕截图

enter image description here

答案 4 :(得分:0)

它涉及多个步骤,但是可能的。

  1. 创建一个小组并将项目转移到该小组
  2. 邀请新用户加入论坛
  3. 使用新用户登录并将项目从组转移到新用户

但是,我认为如果将存储库保留在组中,则维护起来会更容易

转移菜单始终位于 Project => Settings => Advanced

答案 5 :(得分:0)

如果您需要为许多项目执行此操作,通过 API 执行此操作非常方便:

import gitlab
gl = gitlab.Gitlab('https://gitlab.com', private_token='...')

gitlab_project = gl.projects.get("the-project-of-yours")
target_group = gl.groups.get("target-group-where-to-land")
gitlab_project.transfer_project(target_group.id)

https://docs.gitlab.com/ee/api/projects.html#transfer-a-project-to-a-new-namespace

https://docs.gitlab.com/ee/api/groups.html#transfer-project-to-group

https://github.com/python-gitlab/python-gitlab/blob/master/gitlab/v4/objects/projects.py#L461

答案 6 :(得分:-2)

在Gitlab 8.8.3中,您可以转移项目。 小心。更改项目的命名空间可能会产生意想不到的副作用;)

转到项目 - >设置 - >项目设置 - >向下滚动到转移项目

Change project namespace in Gitlab

答案 7 :(得分:-2)

在当前版本( 10.2.4 )中,您应该执行以下操作:

转到"项目" - > "设置" - >展开"高级设置" - >向下滚动到"转移项目"

答案 8 :(得分:-2)

在GitLab社区版9.3.5中,如果您是管理员,则应转到“设置”->“成员”并更改所需成员的角色。

例如,搜索John Doe,设置开发人员角色,现在John Doe将成为开发人员,而不再是所有者。