This week, Amazon released the preview of Amazon Q Developer in GitHub, allowing support across the software development lifecycle from coding, testing, and deploying to troubleshooting and modernizing applications.
I tested it, and I have to say—it's awesome! In this article, I will share my impressions and explain everything you can and can not do with the current version.
Introduction
Amazon Q Developer is a generative AI–powered assistant that helps developers and IT professionals build, operate, and transform software. It assists in writing, debugging, and optimizing code, as well as managing AWS resources and performing code transformations.
What's new?
The preview release of Amazon Q Developer in GitHub brings several new capabilities:
- Feature development: Amazon Q Developer lets you generate code from natural language prompts, helping you build features, fix bugs, add tests, and refine logic directly within GitHub issues—saving time and reducing errors.
- Code transformation: It modernizes outdated Java codebases by updating tech stacks and improving performance, all while maintaining original functionality and minimizing technical debt.
- Code review: Amazon Q Developer automates code reviews in GitHub by analyzing pull requests, offering feedback, and suggesting fixes you can easily apply.
My experiment
Using Amazon Q Developer in GitHub feels just like assigning tasks to a real human being. It understands the context of repository issues, provides relevant code changes, and you can even interact with the assistant in the pull request. If you have a clear goal and you can give the proper instructions, Amazon Q Developer will most probably achieve it, of course, with some caveats.
To experiment with the agent, I have created two issues in a repository that uses Hexagonal Architecture (not like that matters, but I wanted to try somewhere as close as possible to a real-life repository). If you want to understand more about this design pattern, check out my blog post about it.
Creating a new issue
The first thing I wanted to try was to add a new adapter for SSM Parameter Store to my repository.
For this issue, I tried to be as much as clear as possible, but did not write much text. Remember, it is all about the prompt!
I selected "Amazon Q Developer Agent" under "Labels". For me, it felt like assigning this issue to a peer, but this time, not to a human but to an agent.
As soon as you add, you can see the update from the Amazon Q Developer agent:
In less than 2 minutes, I could see a new comment from the agent on the issue, and a link to a pull request!
Pull-request interaction
Amazon Q Developer created the pull request the way I usually do (and like): Clear description and link to which issue this PR resolves:
It also explains how to interact with the agent and how to request changes:
Reviewing the changes, there were only 4 files changed, so it was a very straightforward PR since this repository is not very complex.
The only thing I noticed was a violation of Hexagonal Architecture - the port (interface) created by Amazon Q Developer has "SSM" name on it, whereas it should not contain any service specifics in this layer. I was not expecting the agent to know this design pattern, so no big issue here. Then, I asked the agent to update it:
A few seconds after clicking on "Request changes", Amazon Q Developer added a comment to the PR:
And again, a couple of minutes later, voila:
Code review
Assigning the issue to Amazon Q Developer also gives it the freedom to review its code changes against security vulnerabilities:
And if something is found, Amazon Q Developer will suggest a change, and you can decide whether you accept or not:
Not perfect (yet)
I have to say, for its preview version, Amazon Q Developer in GitHub is awesome. There were a couple of things I personally would like to see improved in a later version, not in any specific order:
- Code review for security issues and vulnerabilities happens on every iteration with the agent in a pull request, so you can eventually expect new suggestions every time you ask for a change.
- Renaming files during your code review can be an issue for the agent. I asked a couple of times to rename/remove a file, but it can not understand the purpose of it really well.
- Branch name can be an issue if you want your repository to follow branch name standards.
- Source of issues now it is only GitHub. However, I wish to register issues in a third-party tool and have Amazon Q Developer pool them to GitHub somehow.
You can check both issues I've created for this experiment and its pull requests here.
Start using it now!
The first (and only) thing you need to do is install the Amazon Q Developer application in GitHub. There is no need to connect an AWS account.
You can choose to install it in all of your repositories or select the ones you want, and that is it! You can now create issues and assign them to Amazon Q Developer.
Conclusion
Amazon Q Developer in GitHub marks a significant step towards integrating AI into the software development lifecycle, not only in your IDE, but also in resolving issues defined in GitHub.
The interaction with the tool is great. If you are already used to GitHub issues and pull requests, using Amazon Q Developer will feel 100% natural to you.
While there are areas for improvement, it is good to remember that this is the preview mode, but the current capabilities are worth trying.
Have you tried it already? How was your experience? Leave a comment below, I would love to hear!