GitHub Copilot – November 30th Update

This month, we made some big improvements to GitHub Copilot! Copilot Chat is now powered by GPT-4 and we updated the model used to detect off-topic chat queries. In VS Code, we are announcing the public beta of code referencing. We also introduced “agents” and the ability to generate commit messages with Copilot. In addition, we improved the context for explaining code and updated the Copilot menu UI. In JetBrains IDEs, we introduced partial acceptance of code suggestions.

Copilot Chat is powered by GPT4

We upgraded the Copilot Chat experience, bringing more accurate and useful code suggestions with OpenAI‘s GPT4 model.

Offtopic model improvements for Copilot Chat

As part of our safety featuresweve improved our off-topic model to detect chat queries which do not relate to programming. This should result in significantly fewer filtered responses.

Code referencing in VS Code is now in Public Beta

In August, we announced the Private Beta of code referencing in VS CodeThis feature searches across billions of files on public GitHub repositories for code that matches a Copilot suggestionSince then, we’ve heard your feedback, and we’re shipping with a new and redesigned experience. One of the top points of feedback was that the original flow resulted in too many notifications. To fix this, if theres a matchusers will find its information displayed in the Copilot console log, including where the match occurred, any applicable licensesand a deep link to learn more. If you are interested in code references, you can refer to the window, otherwise, it won’t be in your way.

The deep link will now take you to a navigable page on GitHub.com to browse examples of the code match and their repository licensesand see how many repositories — including ones without licenses — that code appears in, as well as links to those repositories.

Learn more about Copilot code referencing and let us know your thoughts in the GitHub Community!

Introducing “agents” in Copilot Chat in VS Code

We have introduced a new capability called “agents” to enhance your interaction with Copilot Chat. Agents are like specialized experts who can assist you with specific tasks. You can mention them in the chat using the @ symbol. Currently, there are two agents available:

  • @workspace: This agent has knowledge about the code in your workspace and can help you navigate it by finding relevant files or classes. The @workspace agent uses a meta prompt to determine what information to collect from the workspace to help answer your question.
  • @vscode: This agent is knowledgeable about commands and features in the VS Code editor itself, and can assist you in using them.

Each agent also supports slash commandsThe slash commands you may have used before should now be used with an agent. For example, /explain is now @workspace /explain.

Read more in the VS Code release notes.

Improved explanation context in Copilot Chat in VS Code

You can ask Copilot Chat to explain a code selection in your active editor either through the @workspace /explain command or through the “Explain with Copilot” action in the context menu. Copilot Chat has now integrated implementations of referenced symbolssuch as functions and classes, which leads to explanations that are more precise and useful. This works best across files when you have an extension contributing language services installed for one of the following languages: TypeScript/JavaScript, Python, Java, C#, C++, Go, or Ruby.

Commit message generation using Copilot in VS Code

Copilot can now generate commit messages based on the pending changes using the new “sparkle” action in the Source Control input box.

Updated Copilot menu in VS Code

Our Copilot menu in VS Code is now more visible and aligned with our design for JetBrains IDEs. It is now easier to understand the current status of Copilot, access the various settings or documentation.

The new menu is displayed when clicking on the Copilot icon in the lower right corner in the statusbar of VS Code.

JetBrains partial acceptance for code suggestions

The Copilot extension for JetBrains IDEs has leveled up! You now have the flexibility to incorporate code suggestions piece by piece, whether that’s word-by-word or line-by-line. Feel free to customize these shortcuts as you preferHappy coding!

We welcome your feedback on Copilot! Please join the discussion in the GitHub Community.

A GitHub codespace is a development environment provided by a container that runs on a virtual machine (VM). The development environment that the developer works within is defined by the dev container configuration. The VM configuration defines the operating system which builds and runs the dev container. GitHub maintains this VM configuration, and regularly upgrades it to improve security, functionality, and performance.

While our regular security patching does not impact capabilities, occasionally we need to upgrade components that may have an impact on the way the container environment functions in certain cases. Therefore, we are introducing a way to opt into the beta image configuration, allowing you to test the changes in your specific environments and provide feedback before we ship the changes to the stable image.

host image preference screenshot

The upgraded host image is initially made available as a beta release, which enables you to ensure your existing dev container configurations are compatible with the next iteration of the VM configuration. Once enabled, all newly created or resumed codespaces will use the specified host configuration. This enables you to test your configurations without impacting other developers who use the same dev container. You may switch between the beta and stable host configurations at any time. Whenever you switch, all of your subsequently created or resumed codespaces will receive the configuration you specified. Changing this setting does not impact currently running codespaces.

Additional Resources

See more

Beginning January 8th, 2024, we will be making changes to the repository insights UI and API on GitHub for repositories with over 10,000 commits. The targeted UI and API have very low usage and rely on a legacy service we’re moving away from.

User Interface Updates

We are removing the following data:

  1. Under Insights > Contributors, we are removing addition/deletion counts for repositories with over 10,000 commits, as well as the dropdown that shows the graphs associated with additions and deletions. All the commit counts and commit count graphs will remain unchanged.
Current page Repos with over 10,000 commits after the change is made
The current Insights > Contributors tab The new tab which shows no dropdown for additions and deletions, and no addition and deletion counts
  1. Under Insights > Code Frequency, we will only show data for repos with under 10k commits.
Current page Repos with over 10,000 commits after the change is made
The current Insights > Code Frequency tab which shows a graph of additions and deletions over time The new tab which shows that there are too many commits to generate this graph

REST API Modifications

Alongside the UI changes, the following API changes will be implemented:

  1. The REST API responses for repositories with 10,000+ commits will report 0 values for the addition and deletion counts to improve performance. This impacts the /repos/{owner}/{repo}/stats/contributors endpoint to get all contributor commit activity
  2. The /repos/{owner}/{repo}/stats/code_frequency API endpoint will return a 422 status code for repos with 10,000 or more commits.
    • This is different from the previous two because this endpoint only returns additions/deletions, which we will no longer return for repos with over 10k commits. The previous two endpoints also return the total number of commits, which we will continue to generate.

For users who continue to need detailed addition and deletion statistics for large-scale repositories, we suggest using the following Git command, as described in the Git documentation:

git log --pretty="format:%m%ad----%ae%n%-(trailers:only,unfold)" --date=raw --shortstat --no-renames --no-merges

See more