Skip to content

Latest commit

 

History

History
192 lines (112 loc) · 16.7 KB

using-copilot-code-review.md

File metadata and controls

192 lines (112 loc) · 16.7 KB
title shortTitle intro allowTitleToDifferFromFilename versions topics redirect_from
Using GitHub Copilot code review
Using code review
Learn how to request a code review from {% data variables.product.prodname_copilot %}.
true
feature
copilot
Copilot
/early-access/copilot/code-review/using-copilot-code-review
/early-access/copilot/code-reviews/using-copilot-code-review
/early-access/copilot/code-reviews/using-copilot-code-reviews

Note

  • {% data variables.copilot.copilot_code-review %} is in {% data variables.release-phases.public_preview %} and subject to change. Some functionality is available to all {% data variables.product.prodname_copilot_short %} subscribers, but other functionality is only available to a limited number of users. To join the waitlist, see "Join the {% data variables.copilot.copilot_code-review_short %} waitlist."
  • The "AUTOTITLE" apply to your use of this product.

About {% data variables.copilot.copilot_code-review_short %}

{% data variables.product.prodname_copilot %} can review your code and provide feedback. Where possible, {% data variables.product.prodname_copilot_short %}'s feedback includes suggested changes which you can apply with a couple of clicks.

{% data variables.copilot.copilot_code-review_short %} supports two types of review:

  • Review selection: Highlight code and ask for an initial review ({% data variables.product.prodname_vscode %} only)
  • Review changes: Request a deeper review of all your changes ({% data variables.product.github %} website and {% data variables.product.prodname_vscode %})

The current functionality and availability of the two types of review is summarized in the following table:

{% rowheaders %}

Feature Review selection Review changes
Description Initial review of a highlighted section of code with feedback and suggestions Deeper review of all changes
Language support All C#, Go, Java, JavaScript, Markdown, Python, Ruby, TypeScript
Custom coding guidelines support No Yes, see Customizing {% data variables.product.prodname_copilot_short %}'s reviews with coding guidelines
Environment {% data variables.product.prodname_vscode %} {% data variables.product.prodname_vscode %} and the {% data variables.product.github %} website
Availability {% data variables.release-phases.public_preview_caps %}, available to all {% data variables.product.prodname_copilot_short %} subscribers {% data variables.release-phases.public_preview_caps %} with waitlist, see "Join the {% data variables.copilot.copilot_code-review_short %} waitlist"

{% endrowheaders %}

[!WARNING] {% data variables.product.prodname_copilot_short %} isn't guaranteed to spot all problems or issues in a pull request, and sometimes it will make mistakes. Always validate {% data variables.product.prodname_copilot_short %}'s feedback carefully, and supplement {% data variables.product.prodname_copilot_short %}'s feedback with a human review.

For more information, see "AUTOTITLE."

Requesting a review from {% data variables.product.prodname_copilot_short %}

{% webui %}

These instructions explain how to use {% data variables.copilot.copilot_code-review_short %} in the {% data variables.product.github %} website. To see instructions for {% data variables.product.prodname_vscode %}, use the "{% data variables.product.prodname_vscode %}" tool switcher at the top of the page.

Requesting a pull request review from {% data variables.product.prodname_copilot_short %}

[!NOTE] Requesting a pull request review from {% data variables.product.prodname_copilot_short %} is currently only available to a limited number of {% data variables.product.prodname_copilot_short %} subscribers. To join the waitlist, see "Join the {% data variables.copilot.copilot_code-review_short %} waitlist."

  1. On {% data variables.product.prodname_dotcom_the_website %}, create a pull request or navigate to an existing pull request.

  2. Open the Reviewers menu, then select {% data variables.product.prodname_copilot_short %}.

    Screenshot of selecting '{% data variables.product.prodname_copilot_short %}' from the 'Reviewers' menu.

  3. Wait for {% data variables.product.prodname_copilot_short %} to review your pull request. This usually takes less than 30 seconds.

  4. Scroll down and read through {% data variables.product.prodname_copilot_short %}'s comments.

    Screenshot of a code review left by {% data variables.product.prodname_copilot_short %}.

    {% data variables.product.prodname_copilot_short %} always leaves a "Comment" review, not an "Approve" review or a "Request changes" review. This means that {% data variables.product.prodname_copilot_short %}'s reviews do not count toward required reviews for the pull request, and {% data variables.product.prodname_copilot_short %}'s reviews will not block merging changes. For more details, see "AUTOTITLE."

  5. {% data variables.product.prodname_copilot_short %}'s review comments behave like review comments from humans. You can add reactions to them, comment on them, resolve them and hide them.

    Any comments you add to {% data variables.product.prodname_copilot_short %}'s review comments will be visible to humans, but they won't be visible to {% data variables.product.prodname_copilot_short %}, and {% data variables.product.prodname_copilot_short %} won't reply.

Working with suggested changes provided by {% data variables.product.prodname_copilot_short %}

Where possible, {% data variables.product.prodname_copilot_short %}'s feedback includes suggested changes which you can apply with a couple of clicks.

If you're happy with the changes, you can accept a single suggestion from {% data variables.product.prodname_copilot_short %} and commit it, or accept a group of suggestions together in a single commit. For more information, see "AUTOTITLE."

If you want to validate {% data variables.product.prodname_copilot_short %}'s suggested changes (for example by running automated tests or your linter), or if you want to make modifications before committing the suggested changes, click the Open in Workspace button. For more information, see "AUTOTITLE."

Providing feedback on {% data variables.product.prodname_copilot_short %}'s reviews

You can provide feedback on {% data variables.product.prodname_copilot_short %}'s comments directly within each comment. We use this information to improve the product and the quality of {% data variables.product.prodname_copilot_short %}'s suggestions.

  1. On a pull request review comment from {% data variables.product.prodname_copilot_short %}, click the thumbs up (:+1:) or thumbs down (:-1:) button.

    Screenshot showing a {% data variables.copilot.copilot_code-review_short %} comment with the thumbs up and thumbs down buttons.

  2. If you click the thumbs down button, you're asked to provide additional information. You can, optionally, pick the reason for your negative feedback and leave a comment before clicking Submit feedback.

    Screenshot of the form for providing additional information when you give negative feedback on a comment from {% data variables.product.prodname_copilot_short %}.

Requesting a re-review from {% data variables.product.prodname_copilot_short %}

When you push changes to a pull request that {% data variables.product.prodname_copilot_short %} has reviewed, it won't automatically re-review your changes.

To request a re-review from {% data variables.product.prodname_copilot_short %}, click the {% octicon "sync" aria-label="Re-request review" %} button next to {% data variables.product.prodname_copilot_short %}'s name in the Reviewers menu. For more information, see "AUTOTITLE."

[!NOTE] When re-reviewing a pull request, {% data variables.product.prodname_copilot_short %} may repeat the same comments again, even if they have been dismissed with the "Resolve conversation" button or downvoted with the thumbs down (:-1:) button.

Enabling automatic reviews from {% data variables.product.prodname_copilot_short %}

By default, you will have to manually request a review from {% data variables.product.prodname_copilot_short %} on each pull request.

You can enable automatic reviews from {% data variables.product.prodname_copilot_short %} on all pull requests using rulesets configured at the repository level or organization level. For more information, see "AUTOTITLE."

To turn this on, enable the Request pull request review from {% data variables.product.prodname_copilot_short %} branch rule, nested under Require a pull request before merging.

Screenshot of the "Request pull request review from {% data variables.product.prodname_copilot_short %}" branch rule.

Customizing {% data variables.product.prodname_copilot_short %}'s reviews with coding guidelines

{% data reusables.copilot.code-review.custom-coding-guidelines %}

Screenshot of a comment produced from a custom coding guideline.

{% endwebui %}

{% vscode %}

These instructions explain how to use {% data variables.copilot.copilot_code-review_short %} in {% data variables.product.prodname_vscode %}. To see instructions for the {% data variables.product.github %} website, use the "Web browser" tool switcher at the top of the page.

[!NOTE] {% data variables.copilot.copilot_code-review_short %} is only available in {% data variables.product.prodname_vscode %} with version 0.22 or later of the {% data variables.product.prodname_copilot_chat %} extension.

Reviewing a selection of code

You can request an initial review of a highlighted selection of code in {% data variables.product.prodname_vscode %}.

  1. In {% data variables.product.prodname_vscode %}, select the code you want to review.

  2. Open the {% data variables.product.prodname_vscode_command_palette_shortname %}

    • For Mac:
      • Use: Shift+Command+P
    • For Windows or Linux:
      • Use Ctrl+Shift+P
  3. In the command palette, search for and select {% data variables.product.prodname_copilot %}: Review and Comment.

    Screenshot of the command palette in {% data variables.product.prodname_vscode %} with the {% data variables.product.prodname_copilot %}: Review and Comment command selected.

  4. Wait for {% data variables.product.prodname_copilot_short %} to review your changes. This usually takes less than 30 seconds.

    Screenshot of the progress indicator when {% data variables.product.prodname_copilot_short %} is performing a review in {% data variables.product.prodname_vscode %}.

  5. If {% data variables.product.prodname_copilot_short %} has any comments, they will be shown inline in your file, and in the Problems tab.

    Screenshot of a comment from {% data variables.product.prodname_copilot_short %} in {% data variables.product.prodname_vscode %}.

Reviewing changes

[!NOTE] Reviewing changes is currently only available to a limited number of {% data variables.product.prodname_copilot_short %} subscribers. To join the waitlist, see "Join the {% data variables.copilot.copilot_code-review_short %} waitlist."

You can request a review for your staged or unstaged changes in {% data variables.product.prodname_vscode %}.

  1. In {% data variables.product.prodname_vscode_shortname %}, switch to the Source Control tab.

  2. To request a review on your unstaged changes, hover over Changes in the sidebar, and then click the {% data variables.copilot.copilot_code-review_short %} - Changes button.

    Screenshot of the "{% data variables.copilot.copilot_code-review_short %} - Changes" button in {% data variables.product.prodname_vscode %}. The code review button is outlined in dark orange.

  3. To request a review on your staged changes, hover over Staged Changes in the sidebar, and then click the {% data variables.copilot.copilot_code-review_short %} - Staged Changes button.

  4. Wait for {% data variables.product.prodname_copilot_short %} to review your changes. This usually takes less than 30 seconds.

    Screenshot of the progress indicator when {% data variables.product.prodname_copilot_short %} is performing a review in {% data variables.product.prodname_vscode %}.

  5. If {% data variables.product.prodname_copilot_short %} has any comments, they will be shown inline in your file(s), and in the Problems tab.

    Screenshot of a comment from {% data variables.product.prodname_copilot_short %} in {% data variables.product.prodname_vscode %}.

Working with suggested changes provided by {% data variables.product.prodname_copilot_short %}

Where possible, {% data variables.product.prodname_copilot_short %}'s feedback includes suggested changes which you can apply with a single click.

Screenshot of a comment from {% data variables.product.prodname_copilot_short %} in {% data variables.product.prodname_vscode %} with a suggested change.

If you're happy with the change, you can accept a suggestion from {% data variables.product.prodname_copilot_short %} by clicking the Apply and Go To Next button. Any changes you apply will not be automatically committed.

If you don't want to apply {% data variables.product.prodname_copilot_short %}'s suggested change, click the Discard and Go to Next button.

Providing feedback on {% data variables.product.prodname_copilot_short %}'s reviews

You can provide feedback on {% data variables.product.prodname_copilot_short %}'s comments directly within each comment. We use this information to improve the product and the quality of {% data variables.product.prodname_copilot_short %}'s suggestions.

To provide feedback, hover over the comment and click the thumbs up or thumbs down button.

Screenshot of a comment from {% data variables.product.prodname_copilot_short %} in {% data variables.product.prodname_vscode %} with feedback buttons displayed. The buttons are outlined in dark orange.

Customizing {% data variables.product.prodname_copilot_short %}'s reviews with coding guidelines

{% data reusables.copilot.code-review.custom-coding-guidelines %}

{% endvscode %}