Arctiq Main Blog

GitHub Universe 2023 Recap - Charting the Path Forward with Copilot

Written by Sohraub Pazuki | Dec 15, 2023 9:33:00 PM

Over the past couple of years, it can feel like it’s impossible to open an article, attend a talk, or even just have a conversation without the topic of generative AI coming up. It was no different at GitHub Universe 2023, where GitHub’s Copilot product took center stage. With thousands of interested onlookers gathered in sunny San Francisco, speakers including everyone from Satya Nadella, the CEO of Microsoft, to Thomas Dohmke, the CEO of GitHub, delivered talks extolling the virtues of this new wave of AI “assistants”, specifically Copilot, and how they would revolutionize the way software was developed moving forward. 

With this in mind, as GitHub’s premier partner in Canada, Arctiq sent a reconnaissance team to the conference to learn all they could about the shifting paradigm, GitHub’s place in it, and what the future holds for Arctiq and our clients

Copilot Today

For those who may be unfamiliar, Copilot is being touted as an “AI pair-programmer”, available to developers directly in their editing platform of choice. Pair-programming is a practice in software development where two developers gather around the screen of one of them, with one developer writing code and the second developer offering guidance, suggestions, and feedback in real-time. It’s a practice that many developers find incredibly useful, especially when it comes to languages or frameworks that may be unfamiliar, but there are limitations when it comes to developer time.

Enter the aptly named Copilot, a tool that analyzes the code you’re writing in real-time and offers suggestions based on it’s training data, which is pulled from repositories all across GitHub (which happens to be, by far, the largest open-source code repository platform in the world). This has proven to be invaluable as a time-saving device, especially when it comes to writing boilerplate code that can be tedious and repetitive while lacking much nuance. Copilot still provides a lot of value when it comes to more complex development, but the acceptance rates of its suggestions tend to decrease as development becomes more involved.

This is to be expected when your pair programmer can only see what’s directly in your editor window without any wider context provided, which is why GitHub is exploring alternate methods to interact and iterate with the assistance of Copilot.

Copilot Chat

The next step in the evolution of Copilot is a chat interface, likely inspired by the success of tools such as ChatGPT. Instead of being limited to just the code it can see in a few text files, Copilot Chat allows for a dialogue between developers and the generative model. Instead of relying on inference based on the names of functions or a few lines of comments, questions can be asked such as “How do I write a module that performs X, Y, and Z while maintaining compatibility with our other application ABC and avoiding security vulnerabilities like CWE-789”. 

This opens up an experience much more aligned with the dream of an AI pair-programmer, and in a way that isn’t limited solely to the writing of code. Just like the original Copilot extension, Copilot Chat is available directly in the developer’s IDE, but that is no longer its only home. 

Copilot in GitHub.com

On GitHub.com, Copilot can now be accessed and used for an ever-increasing range of tasks (NOTE: this feature is still waitlist-only, and will likely be made available to the wider public within the coming months). This allows Copilot to do things like automatically generate summaries of pull requests based on the files being changed, or explain a snippet of code that is highlighted directly within the repository browser.

One of the most interesting applications of Copilot that was demonstrated at GitHub Universe was the integration with GitHub Advanced Security’s code scanning tool. This tool will analyze the code in your repository and flag any bits that introduce a known security vulnerability, raising an issue in the repository. At this point the issue would normally be brought to a developer’s attention, and a fix would need to be made and pushed back to the repository. Copilot allows for skipping a step here, by suggesting a code fix that can address the vulnerability and directly opening a pull request to introduce the fix.

Tailoring Copilot for your Enterprise

For a conference filled with exciting talks and possibilities surrounding Copilot, perhaps the most exciting was the revelation that developers would soon have the ability to fine-tune Copilot to be a better match for their specific use cases. It’s great to have a model that is trained on the sum total of human-written open-source code, but at the end of the day no one really understands the specific nuance or context surrounding what you’re trying to accomplish like you or your coworkers. In order to address that, GitHub is planning to introduce two methods through which developers can tailor Copilot’s suggestions to their use-cases.

The first of these methods is called Retrieval Augmented Generation, or RAG for short. Essentially, RAG allows you to create a set of documents, including things such as existing repositories for software your company has developed which demonstrates internal best practices, or documentation describing the architecture that your company uses for deploying software. This set of documents, referred to internally as a ‘docset’, can then be selected when you’re interacting with Copilot, and this allows the results of the model to basically be filtered through the lens of the docset, so that the ultimate result is more closely aligned with the way your company develops code.

The second method enterprises can use to customize Copilot is fine-tuning the model based on their own codebase. We mentioned how Copilot was already trained using all of the open-source code available on GitHub.com, but this allows you to essentially create your own model, based off of the vanilla Copilot, that has a specific training emphasis on your own codebase. This can provide tremendous benefit to companies that develop software using non-standard languages or proprietary frameworks that wouldn’t have been commonplace in the original training data. This feature is currently also waitlist-only, and when public will only be made available to Copilot for Enterprise users. You can join the waitlist at https://gh.io/fine-tuning

Conclusion

In an era where generative AI seems to be the new hotness taking over productivity-optimisation, GitHub is standing tall with their Copilot offering. Between new ways to interact with the model, new platforms through which to access and take advantage of the model, or the ability to essentially spin off your own model that is tailored to your needs, there exists a use case for any developer to take advantage of this new tool. 

If you think your company’s development team has room to grow when it comes to the utilization or socialization of Copilot, or if you’re looking for guidance around adoption plans and tweaking the models for your enterprise, then don't be a stranger.

Copilot plans for individuals start at $10/month (or $100/year), whereas Business plans start at $19/user/month. Copilot Enterprise will be available Feb. 2024, starting at $39/user/month.