从GitHub导入Azure DevOps时,“克隆URL不正确”的错误提示

28

我正在尝试将一个GitHub存储库导入到Azure DevOps,但我一直收到以下错误:

Import request cannot be processed due to one of the following reasons:

Clone URL is incorrect.
Clone URL requires authorization.

这是我的输入参数截屏: 导入错误和输入参数

我已经多次确认了克隆的 URL 和身份验证参数。无论我在字段中输入什么,它总是显示这两个错误。如何进行故障排除?


1
问题解决了吗?我发表的建议应该有助于解决它。如果您仍然遇到问题,请随时告诉我并关注,或者如果有帮助,您可以接受我的答案。谢谢! - Yang Shen - MSFT
@YangShen-MSFT,我最终只是将项目复制粘贴到另一个存储库的文件夹中,然后将其推送到DevOps。我无法确认您提供的解决方案是否有效 :) 我不确定该怎么处理这个问题。 - Sigmundur
1
没关系,最重要的是解决问题。很高兴知道问题已经解决了。祝你有美好的一天 :) - Yang Shen - MSFT
尽管我尝试了两次密码重置,但我仍然无法解决这个错误,并最终采用了OP报告的手动方法。 - olisteadman
9个回答

43

在我试图将一个由组织管理的私有GitHub仓库导入到我的新Azure DevOps账户时,遇到了同样的问题(尽管我的账户是GitHub和Azure DevOps配置文件的所有者并且我正在尝试链接它们)。

实际上有三个步骤可以帮助我解决这个问题:

  1. 通过 Azure DevOps > 你的项目 > 项目设置 > GitHub连接来链接两个账户。如果你的GitHub仓库存储在一个组织配置文件中,在此处必须确保你在设置Azure DevOps连接时授予该组织访问权限(在Azure DevOps中识别出的组织配置文件旁边会有一个小的Grant按钮,你必须按下它才能真正授予访问权限)。在我的情况下,我错过了这个步骤,连接未能正常工作(Azure DevOps无法在GitHub配置文件中找到任何仓库)。要解决这个问题,我必须从GitHub自动发送给我的电子邮件中跟随链接,并在那里授予Azure DevOps访问权限。然后在Github > 你的组织 > 组织设置 > 第三方访问中,你将能够在列表中看到Azure DevOps - 如果状态是Approved,则表示一切顺利。

  2. 接着,我需要在GitHub的个人资料(而不是组织资料)中创建一个用于Azure DevOps导入仓库的PAT。特别感谢@Yang Shen在上面指出这一点。这样,您首先需要前往Github > 您的个人资料 > 个人设置 > 开发者设置 > 个人访问令牌并在那里生成新令牌。

  3. 然后,我返回Azure DevOps > 您的项目 > Repos > Files > Import,并进行以下操作: a) 链接到我的私有Github repo; b) 选中“要求身份验证”; c) 我的GitHub用户名; d) 在步骤2中生成的我的PAT代替我的实际密码。

  4. 然后就像魔术般地运行了,我的私有Github仓库被克隆到Azure Repos中。


4
设置PAT所需的步骤是我所需要的。我授予了"repo"和"user"权限,复制了密钥,之后导入就毫无问题了。 - Brandon Petty
1
同样的情况,我只需要创建一个PAT就可以了,现在它可以正常工作了。谢谢! - danmbuen
1
谢谢!生成令牌对我也起作用了。这个问题让我苦恼了一整天。 - GrahamJRoy
1
非常感谢@BrandonPetty!!! 是的,你不仅需要创建一个PAT,而且绝对需要检查“repo”和“user”权限。还要确保复制令牌。 - Rich Ward

15

我找到了解决方案!

  1. 在您的GitHub账户中,点击右上角的图标,然后点击设置(Settings)

  2. 在左侧边栏中,点击开发人员设置(Developer settings)

  3. 然后再次在左侧边栏中,点击个人访问令牌(Personal access tokens)

  4. 单击生成新令牌(Generate new token)

  5. 为令牌命名,例如“移动到Azure”

  6. 到期时间(Expiration)设置为您需要的时间长度来进行移动操作

  7. 选择作用域(Select scopes)下,勾选repo

  8. 单击标有生成令牌(Generate token)的绿色按钮

  9. 复制您的令牌(如果您有多个存储库,请将其保存在密码保险箱中)

  10. 在Azure中,将其粘贴到密码/PAT(Password / PAT)字段中

  11. 在移动所有存储库之后,请不要忘记从GitHub中删除您的个人访问令牌


3
这个问题是因为GitHub于2021年8月31日禁用了密码验证引起的。 - sohnemann

10

我刚才才意识到,“生成Git凭证”就能解决问题!

在源仓库中,您必须“生成Git凭证” 在此输入图片描述

在目标仓库中,点击导入时,请使用源仓库中的“Clone Url”,并输入生成的Git凭据!


3
这不是从GitHub到Azure DevOps的,对吧? - GettingItDone
谢谢! 这个操作非常顺利。 我的目标是将一个仓库从一个项目移动到同一组织中的另一个项目。 - Jean-Daniel Gasser
1
此答案涉及将 Azure DevOps 存储库克隆到其他位置,与本主题无关。 - Camilo
这对我有用。 我的情况不涉及GitHub。我正在将在Azure DevOps中构建的git存储库导入到另一个仍在Azure DevOps中的存储库(但不同的项目)中。 - Luca
是的,这是 Az DevOps 项目-> DevOps 项目的过程。当我不知道应该提供哪个用户/密码时(因为我的 Az 用户是所有者)时,它非常有效。+1 - robs

5

我在多种情况下测试了 导入 Git 仓库 功能:公共或私有 Github 仓库,是否拥有 PAT 权限以及 Github 仓库中是否有文件。

只有两种情况下我能够重现问题:

enter image description here

  1. Github 仓库中没有文件,如果 Github 仓库中没有任何内容,则似乎无法成功识别 URL https://github.com/****/*****.git

    在这种情况下,您需要至少上传一个文件到仓库中,然后 URL 就会被识别。

  2. PAT 是错误的,我们从一个地方复制 PAT 到另一个地方时,可能会包含意外的字符,例如空格。

    在这种情况下,您需要点击输入框中的小眼睛图标检查 PAT,删除或添加字符使其正确。

    enter image description here


3
这应该是答案:
您必须提供用户名。但星号 * 缺失了。

2
对我来说,问题出在我想复制的GitHub仓库是“私有”的。将其更改为“公共”的,然后再试一次。
以下是操作步骤:
  1. 前往您要导入的GitHub仓库,在设置页面将可见性更改为“公共”。
  2. 复制仓库的.git(HTTPS)URL。
  3. 在Azure上,粘贴链接并单击“导入”。
  • 警告:请注意将您的仓库设为公共的可能会带来的影响。
我的GitHub仓库设置页面

在我看来,这应该只是一条推荐,不解释其安全影响。 :/ - GettingItDone

0
即使我想从同一帐户的另一个项目复制存储库,我仍然会收到此消息。没有机会!我想知道为什么克隆网址引用“*.git”文件?如果我从源代码库中获取“Clone Repos URL”,末尾没有“.git”。

0

当我尝试导入私有存储库时,我遇到了同样的问题。 在设置个人访问令牌(Github > 设置 > 开发者设置 > 细粒度令牌)时,我错过了一步。 在存储库访问部分,我选择了“所有存储库”,但没有意识到我还需要在权限部分设置“存储库权限”。现在我的设置如下: 存储库访问 其中,“内容”设置为只读访问: 只读访问内容 (当上述设置生效时,元数据也被设置为只读)

在不设置权限的情况下,PAT将恢复为“公共存储库(只读)”。还可以编辑现有的PAT,因此很容易检查权限是否正确设置。


0

我遇到了同样的问题,当我输入我的确切Github用户名和PAT时它可以工作。在创建PAT时,请确保选择github scopes:repo和projects。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接