连接SourceTree到AWS CodeCommit失败。

5
我正在使用Atlassian的SourceTree在Mac OS上与git一起工作,并选择AWS CodeCommit作为远程托管服务器。
按照这些步骤进行AWS和本地repo之间的HTTPs连接,
这是我的git config --global --edit的样子:

enter image description here

然后尝试从AWS克隆一个创建的空仓库到SourceTree: enter image description here 然后我打印出错误信息:
abort: HTTP Error 403: Forbidden aws --profile default codecommit credential-helper $@ get: aws: command not found fatal: unable to access 'https://git-codecommit.us-east-1.amazonaws.com/v1/repos/my-git-repo/': 请求的URL返回错误:403 更新 尝试了@Steffen Opel提供的答案,得到更多内容:

enter image description here

我错过了什么吗?


你解决了这个问题吗? - agp
4个回答

7

我刚刚在这里发现了一个答案(https://geekprotem.com/2015/07/10/aws-codecommit-with-sourcetree/)

按照亚马逊官网上的AWS CLI设置步骤后,使其正常工作的最后一步是在SourceTree中编辑我的存储库配置文件,包括以下内容:

[credential]
helper = /usr/local/bin/aws codecommit credential-helper $@
UseHttpPath = true

1
谢谢。对于Windows系统,我必须输入helper = "C:/Progra~1/Amazon/AWSCLI/aws.exe" codecommit credential-helper $@。希望对大家有所帮助。 - Diego Jancic
@DiegoJancic,你的评论帮助我解决了这个问题,谢谢。 - Amol B Jamkar

1

看起来是这样的。"command not found"就是问题所在。我会说aws不在路径中,当凭证助手试图帮助时找不到它。通过执行which aws来仔细检查它是否在路径中。


顺便说一下,它是 usr/local/bin/aws。我尝试使用命令行工具将远程 repo 克隆到本地机器,并手动将其添加到 SourceTree 中,这样做可以正常工作,我成功地在 SourceTree 中将文件推送到 AWS。这意味着什么? - bluenowhere

1
我没有测试过这个,但考虑到AWS CodeCommit也提供了凭据助手并且错误显示为命令未找到,我认为你受到了SourceTree知识库文章凭据助手 "git:'credential-osxkeychain'不是git命令。请参阅'git --help'。"中描述的相同问题的影响。
错误[...]是由于Git调用了该辅助程序,但找不到它,这意味着它已被定义但在PATH中未找到。就SourceTree而言,自1.6.3版本以来,无需担心此问题。有两种方法可以防止发生这种情况: 1. 不建议使用,但如果您仅使用SourceTree进行所有操作,则可以从/usr/local/git/etc/gitconfig配置中删除“凭据”设置。这是一种快速简便的方法,但这意味着终端上的操作可能无法进行身份验证。 2. 建议使用,创建一个符号链接在SourceTree应用程序资源和本地git安装之间的git-credential-osxkeychain之间。 ln -s /usr/local/git/bin/git-credential-osxkeychain /Applications/SourceTree.app/Contents/Resources/git_local/bin/git-credential-osxkeychain 当然,由于AWS CodeCommit需要凭据助手处于就绪状态,因此只有第二种解决方案在概念上适用于您的情况,并且您需要根据CodeCommit凭据助手的要求适当调整链接源和目标。

1
不知道这是否有帮助,但我使用的是 Tower 2。我也遇到了同样的错误。我进入了 git 的配置设置,并告诉 Tower 使用我用 brew 安装的 git:/usr/local/bin/git (v2.6.3),这个方法对于我来说起效了。 - chris

0
如果您是通过Homebrew安装了AWS CLI(而不是pkg),并且在.gitconfig凭据中没有路径,您可以进行以下简单修复:链接到pkg安装路径,在Sourctree上测试并运行。
sudo ln -s /opt/homebrew/bin/aws /usr/local/bin/aws

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