在 MacOS 上使用 sourcetree 连接到 Azure devops 存储库

Connect to Azure devops repo using sourcetree on MacOS

我在 azure devops 上创建了一个新项目,现在我正在尝试向 sourcetree 添加一个帐户:

我按以下方式设置选项:

主持人:Azure devops

Link 主持人旁边:https://myuser@dev.azure.com/myuser
还尝试使用 https://dev.azure.com/myuser

授权类型:锁定为私人令牌,无法更改。

用户名:尝试使用我的电子邮件,还启用了备用凭据并尝试使用该用户名。

密码:尝试使用真实密码和个人访问令牌

协议:HTTPS

我不断收到错误消息:We couldn't connect to Azure DevOps with your credentials. 这可能是什么原因造成的?

您需要设置个人访问令牌。

The below is from the documentation

个人访问令牌 (PAT) 是备用密码,可用于在 Azure DevOps 和 Team Foundation Server (TFS) 中进行身份验证。在本文中,我们将向您介绍如何创建或撤销 PATS。

A​​zure DevOps 服务和 TFS 使用企业级身份验证来帮助保护您的数据。 Visual Studio 和 Eclipse(带有 Team Explorer Everywhere 插件)等客户端也支持 Microsoft 帐户和 Azure AD 身份验证。

对于集成到 Azure DevOps 但不支持 Microsoft 帐户或 Azure AD 身份验证的非 Microsoft 工具,您必须使用 PAT。示例包括 Git、NuGet 或 Xcode。要为非 Microsoft 工具设置 PAT,请使用 Git 凭据管理器或手动创建它们。

尽管适用于 macOS 的 SourceTree 更新了 Azure DevOps 的名称(来自 "Visual Studio Team Services"),但它似乎不支持新的 Azure DevOps URL。

您可以使用旧格式(VSTS 样式)的 URL。您可以使用 https://username.visualstudio.com.

而不是 https://dev.azure.com/username

具有讽刺意味的是,Windows 的 SourceTree 似乎仍调用产品 "Visual Studio Team Services" 但支持新式 Azure DevOps URL。)

基本上,您需要:

  1. 生成 PAT
  2. 在 Sourcetree 中,使用 PAT 作为用户名和密码添加一个新帐户
  3. 如果 Sourcetree 似乎让您感到困惑(如果您有多个帐户,则缓存或不选择正确的帐户)只需添加:yourorgname.visualstudio.com/projectname

PS: 我在上面写了一个post(this one),如果你想要完整的细节,请查看它。

在浏览了整个互联网后,我找到了答案。

参考this link,在第4点,记得添加有效期。默认情况下它 select 存在日期,您需要 select 到期日期。这是我没有 select 到期日期的地方,它不断抛出登录错误消息。

我 select 从今天起 1 年作为到期日期,在 ScopesFull Access

您的克隆 > HTTPS Link 将无法工作。 Like this URL

按照@Edward Thomson格式输入URL

用户名:您生成的Token

密码:您生成的令牌(与用户名相同)

用户名:您发送给 Azure DevOps 的电子邮件

密码:您生成的Token

@taigi100 您可以在 Azure DevOps

上通过 selecting revoke 删除令牌

@taigi100 @Murray Foxcroft - 希望这有帮助。

我在 Preferences/Accounts/Azure DevOps

方面取得了成功
https://dev.azure.com/{organisation}/
{username}
{token}
HTTPS

并使用此遥控器url

https://{username}@dev.azure.com/{organisation}/{projectname}/_git/{repository}

经过多次试验,这是我今天的经验:

  • 您需要创建 DevOps 个人访问令牌进行身份验证,SourceTree 无法使用您的普通 Azure username/password 组合进行身份验证。
  • 删除 SourceTree > 首选项 > 帐户中显示的所有 DevOps 相关条目。
  • 在本地 SourceTree 存储库 > 设置 > 远程 > origin 的属性中输入:
    • URL / 路径:https://{yourAzureUsernameOrEmailAddress}@dev.azure.com/{orgName}/{projectName}/_git/{repoName}
      • 重要:如果您的 AzureUsernameOrEmailAddress 是电子邮件地址,请务必将其 @ 符号替换为 %40 URI 编码,否则它将发送域 -部分作为您的用户名。例如:https://foo%40example.com@dev.azure.com/...
    • 主机类型:Unknown

现在,当您 Pull/Push/Fetch 时,您应该会看到“需要密码”对话框“对于主机 dev.azure.com 上的用户 yourAzureUsernameOrEmailAddress”:

  • 密码:{yourPersonalAccessToken}

请务必输入您的 PAT,而不是密码。

应该会成功,如果您选择“将密码存储在钥匙串中”,那么您应该能够转到钥匙串访问 > 登录 > 密码并查看并列出 dev.azure.com Access Key for yourAzureUsernameOrEmailAddress 的条目。