跳至主要内容

GitHub企业导入器中模型用户的回收

迁移完成后,您可以将占位符身份(或模型用户)的历史记录分配给组织成员。

谁可以使用此功能?

组织所有者可以回收模型用户。

关于模型用户

使用GitHub企业导入器运行迁移后,迁移仓库中所有用户活动(Git提交除外)都将归因于称为模型用户的占位符身份。

每个模型用户只有一个显示名称,该名称来自源仓库中的显示名称。模型用户没有组织成员资格或仓库访问权限。模型用户始终使用相同的头像(幽灵章鱼猫),并在显示名称后包含模型用户标签。

Screenshot of the header of an issue comment. The commenter is labeled as a mannequin, and the "Mannequin" label is outlined in dark orange.

您可以使用GitHub CLI或浏览器将每个模型用户历史记录重新归因于组织成员。如果您使用GitHub CLI,则可以批量回收模型用户。

回收是可选的,可以在迁移完成后随时进行。因此,您可以允许团队在回收之前开始在迁移的仓库中工作。

模型用户不用于Git提交归属。有关提交归属的更多详细信息,请参阅下面的“管理提交的作者身份”。

回收模型用户

您可以使用GitHub CLI(推荐)或浏览器回收模型用户。

默认情况下,回收模型用户会向目标用户发送归属邀请。

目标用户可以选择接受或拒绝邀请。用户接受归属邀请后,以前归属于模型用户的全部贡献将改为归属于该用户。在未来迁移到同一组织时,来自同一模型用户的任何贡献都将自动回收给同一用户。

如果您的组织使用企业管理用户,并且您选择使用GitHub CLI回收模型用户,则可以选择跳过邀请过程,立即回收模型用户而无需用户的批准。

注意

  • 您不能在将仓库转移到另一个组织后回收模型用户。如果您希望在迁移后将仓库转移到另一个组织,则必须在转移之前回收模型用户。
  • 回收模型用户时,您只能将目标对象设置为现有的组织成员。在尝试回收模型用户之前,请验证您要邀请的GitHub用户是否已添加到组织。

GitHub企业导入器不会迁移用户对仓库的访问权限。回收模型用户后,如果任何用户尚未通过团队成员资格获得对仓库的适当访问权限,则必须单独授予用户对仓库的访问权限。有关更多信息,请参阅“管理个人对组织仓库的访问权限”。

您可以使用GitHub CLI单独或批量回收模型用户。有关安装和更新GitHub CLI的迁移扩展的更多信息,请参阅“关于GitHub企业导入器”。

您需要使用的确切命令取决于您使用的GitHub CLI扩展。

使用GEI扩展回收模型用户

如果您的迁移源是GitHub产品,则可以使用GitHub CLI的GEI扩展回收模型用户。

  • 如果您还没有为具有目标组织访问权限的个人访问令牌设置`GH_PAT`环境变量,请将`--github-target-pat TOKEN`添加到以下每个命令中,并将`TOKEN`替换为个人访问令牌。有关个人访问令牌要求,请参阅“管理GitHub产品之间迁移的访问权限”。
  • 如果您要迁移到GHE.com,请添加`--target-api-url TARGET-API-URL`,其中TARGET-API-URL是您企业子域的基本API URL。例如:`https://api.octocorp.ghe.com`。
  1. 可选地,要批量回收模型用户,请创建一个将模型用户映射到组织成员的CSV文件。

    • 要生成包含组织模型用户列表的CSV文件,请使用`gh gei generate-mannequin-csv`命令,将DESTINATION替换为目标组织,将FILENAME替换为生成的CSV文件的名称。

      可选地,要包含已被回收的模型用户,请添加`--include-reclaimed`标志。

      Shell
      gh gei generate-mannequin-csv --github-target-org DESTINATION --output FILENAME.csv
      
    • 编辑 CSV 文件,为每个虚拟用户(mannequin)添加对应的组织成员用户名。

    • 保存文件。

  2. 要回收虚拟用户,请使用命令 gh gei reclaim-mannequin

    • 要批量回收虚拟用户(使用之前创建的映射文件),请将 DESTINATION 替换为目标组织,并将 FILENAME 替换为映射文件的名称。

      Shell
      gh gei reclaim-mannequin --github-target-org DESTINATION --csv FILENAME.csv
      
    • 要回收单个虚拟用户,请将 DESTINATION 替换为目标组织,将 MANNEQUIN 替换为虚拟用户的登录名,并将 USERNAME 替换为与该虚拟用户对应的组织成员的用户名。

      如果有多个虚拟用户具有相同的登录名,您可以将 --mannequin-user MANNEQUIN 替换为 --mannequin-ID ID,并将 ID 替换为虚拟用户的 ID。

      如果您的组织使用企业托管用户并且想要跳过归属邀请以立即回收虚拟用户,请添加 --skip-invitation 参数。

      Shell
      gh gei reclaim-mannequin --github-target-org DESTINATION --mannequin-user MANNEQUIN --target-user USERNAME
      

默认情况下,组织成员将通过电子邮件收到邀请,并且在成员接受邀请之前,虚拟用户不会被回收。

使用 ADO2GH 扩展回收虚拟用户

如果您的迁移源是 Azure DevOps,您可以使用 GitHub CLI 的 ADO2GH 扩展回收虚拟用户。

  • 如果您还没有为具有目标组织访问权限的个人访问令牌设置 GH_PAT 环境变量,请向以下每个命令添加 --github-target-pat TOKEN,并将 TOKEN 替换为个人访问令牌。有关个人访问令牌要求,请参阅“管理 Azure DevOps 迁移的访问权限”。
  • 如果您要迁移到GHE.com,请添加`--target-api-url TARGET-API-URL`,其中TARGET-API-URL是您企业子域的基本API URL。例如:`https://api.octocorp.ghe.com`。
  1. 可选地,要批量回收模型用户,请创建一个将模型用户映射到组织成员的CSV文件。

    • 要生成包含组织虚拟用户列表的 CSV 文件,请使用命令 gh ado2gh generate-mannequin-csv,并将 DESTINATION 替换为目标组织,并将 FILENAME 替换为生成的 CSV 文件的名称。

      可选地,要包含已被回收的模型用户,请添加`--include-reclaimed`标志。

      Shell
      gh ado2gh generate-mannequin-csv --github-org DESTINATION --output FILENAME.csv
      
    • 编辑 CSV 文件,为每个虚拟用户(mannequin)添加对应的组织成员用户名。

    • 保存文件。

  2. 要回收虚拟用户,请使用命令 gh ado2gh reclaim-mannequin

    • 要批量回收虚拟用户(使用之前创建的映射文件),请将 DESTINATION 替换为目标组织,并将 FILENAME 替换为映射文件的名称。

      Shell
      gh ado2gh reclaim-mannequin --github-org DESTINATION --csv FILENAME.csv
      
    • 要回收单个虚拟用户,请将 DESTINATION 替换为目标组织,将 MANNEQUIN 替换为虚拟用户的登录名,并将 USERNAME 替换为与该虚拟用户对应的组织成员的用户名。

      如果有多个虚拟用户具有相同的登录名,您可以将 --mannequin-user MANNEQUIN 替换为 --mannequin-ID ID,并将 ID 替换为虚拟用户的 ID。

      如果您的组织使用企业托管用户并且想要跳过归属邀请以立即回收虚拟用户,请添加 --skip-invitation 参数。

      Shell
      gh ado2gh reclaim-mannequin --github-org DESTINATION --mannequin-user MANNEQUIN --target-user USERNAME
      

默认情况下,组织成员将通过电子邮件收到邀请,并且在成员接受邀请之前,虚拟用户不会被回收。

在浏览器中回收虚拟用户

  1. 在 GitHub 右上角,选择您的个人资料照片,然后单击 您的组织.

  2. 在组织旁边,单击**设置**。

  3. 在侧边栏的“访问”部分,单击** 导入/导出**。

  4. 在要回收的虚拟用户右侧,单击**重新分配**。

  5. 在搜索字段中,输入要将虚拟用户的贡献归属给的组织成员的用户名,然后单击该成员。

    注意

    您只能向已经是组织成员的用户帐户发送归属邀请。

  6. 单击**邀请**。默认情况下,组织成员将通过电子邮件收到邀请,并且在成员接受邀请之前,虚拟用户不会被回收。

查看归属邀请的状态

您可以查看组织所有归属邀请的状态。

  • 已邀请:用户已收到邀请,但尚未回复。
  • 已完成:用户已接受,或已跳过邀请流程。用户的贡献已重新归属。
  • 已拒绝:用户选择不为虚拟用户的贡献获得认可。
  1. 在 GitHub 右上角,选择您的个人资料照片,然后单击 您的组织.

  2. 在组织旁边,单击**设置**。

  3. 在侧边栏的“访问”部分,单击** 导入/导出**。

  4. 在“导入/导出”下,单击**归属邀请**。

    Screenshot of the "Import/Export" page for a repository. A tab, labeled "Attribution Invitations," is outlined in dark orange.

管理 Git 提交的作者身份

Git 提交的作者身份与虚拟用户无关,无法通过回收虚拟用户将其归属给 GitHub 用户。相反,提交作者身份根据用于在 Git 中创作提交的电子邮件地址归属给 GitHub 上的用户帐户。

在许多情况下,用户可以通过将用于创作提交的电子邮件地址添加到他们在 GitHub 上的用户帐户来将其提交重新归属给自己。有关更多信息,请参阅“将电子邮件地址添加到您的 GitHub 帐户”。

但是,如果您使用企业托管用户,则用户无法将电子邮件地址添加到他们在 GitHub 上的用户帐户,因此将无法重新归属 Git 提交。只有在您的身份提供商 (IdP) 中由用户的首要电子邮件地址创作的提交才会归属于托管用户帐户。

此外,由 GitHub 提供的 noreply 电子邮件地址创作的提交无法重新归属,因为您无法手动将 noreply 电子邮件地址添加到用户帐户。有关更多信息,请参阅“设置您的提交电子邮件地址”。