使用ghe-migrator迁移BitBucket Server至GHES,如何映射不存在的用户?
使用ghe-migrator迁移时,BitBucket构建工具用户无法映射到集成AzureAD的GHES
我用ghe-migrator把代码仓库从BitBucket Server迁到GitHub Enterprise Server(GHES),遇到个问题:旧构建工具用的用户robo_buildtool,因为GHES集成了AzureAD身份认证,没法在新服务器上创建。试了用rename操作做用户映射,结果导入失败(提示无法创建用户),网上也没找到靠谱的解决办法。
当前的迁移映射表:
model_name,source_url,target_url,recommended_action,notes user,https://bitbucket.internaldomain.com/users/gh_migrator,https://ghe.internaldomain.com/robo_server,map, user,https://bitbucket.internaldomain.com/users/jbloggs,https://ghe.internaldomain.com/jbloggs,map, user,https://bitbucket.internaldomain.com/users/robo_buildtool,,rename,Invalid value in url
我试过的用户导入配置:
user,https://bitbucket.internaldomain.com/users/robo_buildtool,https://ghe.internaldomain.com/robo_buildtool,map user,https://bitbucket.internaldomain.com/users/robo_buildtool,https://ghe.internaldomain.com/robo_buildtool,rename,
解决办法参考
映射到现有AzureAD服务账户
既然没法新建用户,直接把robo_buildtool映射到GHES里已有的、权限足够的AzureAD服务账户就行。修改映射表:user,https://bitbucket.internaldomain.com/users/robo_buildtool,https://ghe.internaldomain.com/[你的服务账户名],map,映射到现有AzureAD服务账户记得确认目标账户有迁移需要的仓库权限(读写、管理员之类的)。
用map操作替代rename,跳过用户创建
GHES连AzureAD时,rename操作还是会尝试创建用户,但map可以直接关联现有身份。如果没合适的目标账户,就把这个构建工具用户的提交、权限映射到组织的机器人账户,迁移完再调整权限。提前修改BitBucket里的提交记录
如果这个用户只用来提交代码,先在BitBucket Server里把它的所有提交批量改成现有用户(比如团队管理员),再迁移就不用处理这个无效用户了。检查迁移权限和AzureAD配置
确保执行迁移的账户有GHES的site_admin权限;确认AzureAD允许服务账户通过迁移工具关联身份;要是GHES允许本地用户和AzureAD用户共存,能临时建个本地用户完成映射,之后再禁用。
内容的提问来源于stack exchange,提问作者Irfy
相关产品推荐
相关产品推荐

