10

Is there any good GUI that I can use with AWS CodeCommit (Amazon's new Git Service)?

I've tried SmathGit and GitHub for windows.

Steffen Opel
  • 63,899
  • 11
  • 192
  • 211
Teo
  • 139
  • 1
  • 1
  • 8
  • Isn't CodeCommit like any other Git service out there? my guess is that you could use any Git GUI, what problems are you having with GitHub client? – gerosalesc Aug 21 '15 at 19:19
  • I am kinda new on git, I don't know how to configure Github for windows in order to access CodeCommit repo. – Teo Aug 21 '15 at 20:00

1 Answers1

16

While AWS CodeCommit supports the common Git connection protocols HTTPS and SSH, the details can be slightly peculiar and Setting Up for AWS CodeCommit will vary depending on what connection protocol you want to use when connecting to an AWS CodeCommit repository, and on the operating system you use, as usual:

If you have not yet created any AWS CodeCommit repositories, [...] then the following list can help you decide which type of connection to set up for.

  • HTTPS: With HTTPS connections, you allow Git to use a cryptographically signed version of your IAM user credentials or Amazon EC2 instance role whenever Git needs to authenticate with AWS in order to interact with repositories in AWS CodeCommit. To do this, you configure a credential helper for Git on your local machine. A credential helper is included in the AWS CLI on Linux, OS X, or Unix, and included as part of the AWS AWS SDK for .NET for Windows operating systems. [...]

  • SSH: With SSH connections, you create public and private key files on your local machine that Git and AWS CodeCommit use for SSH authentication. You associate the public key with your IAM user. You store the private key on your local machine. Because SSH requires manual creation and management of public and private key files, you might find HTTPS simpler and easier to use with AWS CodeCommit.

[emphasis mine]

The two emphasized fragments highlight the minor yet relevant differences to using either connection protocol with most other hosted Git providers like Bitbucket or GitHub.

In contrast to the recommendation by AWS, I personally consider setting up the mentioned credentials helper for HTTPS more involved than simply adding your public SSH key(s) to your AWS IAM user (step 5.), after all, I'm using them for Git all over the place anyway - this depends on what you are used to and personal preference of course.

  • The important aspect to be aware of for SSH usage on Windows (for example with SourceTree, see below) is that you need to embed the SSH key id into the clone URL:
    git clone ssh://Your-SSH-Key-ID@git-codecommit.us-east-1.amazonaws.com/v1/repos/MyDemoRepo my-demo-repo

Generic GUI client

Any sufficiently open/generic client for Git that supports SSH should be able to use AWS CodeCommit in turn (no matter whether the client is GUI or CLI based), though usability and versatility varies.

A popular GUI client that nicely supports Bitbucket, GitHub and most other public Git providers including AWS CodeCommit is Atlassian's free Git & Mercurial client for Windows or Mac, SourceTree.

  • Please note that in contrast to SourceTree, GitHub Desktop does not seem to support directly connecting to any Git provider other than GitHub itself at this point (at least it seems possible to add any local repository that has previously been cloned via some other client though).
Steffen Opel
  • 63,899
  • 11
  • 192
  • 211
  • Thanks man, that helped a lot. I 'll try the ssh in the clone url and also the source tree. – Teo Aug 23 '15 at 16:17
  • 3
    For any future visitors, it is now possible to use GitHub Desktop to directly clone a remote repository by entering the URL, there are options for 'GitHub.com', 'GitHub Enterprise Server' and 'URL'. The URL option works well with AWS CodeCommit – Adam Marshall Apr 06 '20 at 08:55