A closer look at how GitHub engineers put Copilot to work

Even inside GitHub, the team that builds Copilot keeps finding new ways to use it. A recent project serves as a good example: making Copilot Chat aware of a user's project dependencies so it could answer questions about them. Listing every dependency would have flooded the prompt with context and confused the model, so the challenge was to pre-process that list and pick only what mattered. Creating machine-processable formats for the most prominent frameworks across many languages would have taken days. Instead, a single chat query helped generate that data in about 30 minutes, complete with parameterized unit tests.

That experience raised a question: what other "Copilot moments" do engineers at GitHub have? Here are four patterns that came out of asking around.

Automating the boring parts of protocol buffer maintenance

One team maintains several live services that communicate via protocol buffers. During maintenance, they frequently need to increment ID numbers in their protobuf definitions:

protobuf

google.protobuf.StringValue fetcher = 130

  [(opts.cts_opt)={src:"Properties" key:"fetcher"}];

google.protobuf.StringValue proxy_enabled = 131

  [(opts.cts_opt)={src:"Properties" key:"proxy_enabled"}];

google.protobuf.StringValue proxy_auth = 132

  [(opts.cts_opt)={src:"Properties" key:"proxy_auth"}];

Copilot's inline completions are the main time-saver here. Instead of manually generating each ID, an engineer can tab through the suggestions until the update is done. It turns a tedious, error-prone chore into a quick pass through the editor.

Staying in flow when you need a regex

One engineer needed a regular expression to capture a Markdown code block and extract its language identifier. Switching to chat would have broken his concentration, so he formalized the request as a code comment instead:

// The string above contains a code block with a language identifier.
// Create a regexp that matches the code block and captures the language 
identifier.
// Use tagged capture groups for the language and the code. 

Copilot answered with the regex as the next statement in the editor:

const re = /```(?<lang>\w+)(?<code>[\s\S]+?)```/;

After deleting the comment, the task was complete.

Screenshot of GitHub engineer prompting GitHub Copilot, and GItHub Copilot returning a useful response

Turning troubleshooting notes into shared documentation

A support engineer and a colleague spent a Friday afternoon debugging an issue for a specific customer, keeping their notes in VS Code. Resolving the problem wasn't the end of it, though. At GitHub, remote collaboration matters, so they needed to document the entire process for future customer requests.

Instead of manually rewriting their scatter of notes, she opened Copilot Chat and asked it to organize the notes, structure them, and compile the editor's content into Markdown tables. The task was done in seconds, which meant the documentation was ready without eating into the weekend.

Learning a new language with Copilot as a tutor

Engineer John Berryman wanted to use Copilot to tackle a non-trivial coding task in a language he didn't know: Rust. Over the course of a Sunday, he worked with GitHub Copilot Chat to build a program that converts any numeric input into its written English equivalent. What sounds simple has real edge cases, including teen numbers, naming conventions for tens, and where to place "and."

Twenty-three minutes and nine seconds after starting, he had a working version in Rust, despite having no prior experience with the language. He recorded the whole process:

Berryman uses an older, experimental version of GitHub Copilot to write a program in Rust.

Finding your own workflow

Seeing how other engineers apply Copilot—whether to speed up repetitive edits, keep momentum during deep work, structure scattered notes, or explore an unknown language—makes it clear the tool is only as useful as the workflows built around it. If you want to try it yourself, installing Copilot in your editor is all it takes to start asking.