Skip to content

Repo sync #38904

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jun 13, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -152,6 +152,10 @@ To request a re-review from {% data variables.product.prodname_copilot_short %},

By default, you manually request a review from {% data variables.product.prodname_copilot_short %} on each pull request, in the same way you would request a review from a human. However, you can set up {% data variables.product.prodname_copilot_short %} to automatically review all pull requests. See [AUTOTITLE](/copilot/using-github-copilot/code-review/configuring-automatic-code-review-by-copilot).

## Customizing {% data variables.product.prodname_copilot_short %}'s reviews with custom instructions

{% data reusables.copilot.code-review.custom-instructions-information %}

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

{% data reusables.copilot.code-review.custom-coding-guidelines %}
@@ -223,6 +227,10 @@ To provide feedback, hover over the comment and click the thumbs up or thumbs do

![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.](/assets/images/help/copilot/code-review/vscode-comment-feedback@2x.png)

## Customizing {% data variables.product.prodname_copilot_short %}'s reviews with custom instructions

{% data reusables.copilot.code-review.custom-instructions-information %}

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

{% data reusables.copilot.code-review.custom-coding-guidelines %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
---
title: Developing your project locally
intro: 'Learn how to create a local development environment by working with an example client-side application built on HTML, CSS, and JavaScript.'
versions:
fpt: '*'
shortTitle: Local development
---

## Overview

Local development means setting up and **running your project on your own computer** instead of in the cloud or on a remote server. When you develop locally, you can work on your code without an internet connection and experiment without affecting the live application.

The steps required to configure a local development environment are different for each project, based on its programming languages, frameworks, tools, and dependencies. In this guide, you'll learn **core skills** needed to set up any project by working with an example client-side application built on HTML, CSS, and JavaScript. You can then apply those same skills to other projects in the future.

## Installing essential development tools

Before you can start, you'll need to install some essential tools that are widely used for local development.

1. [Set up {% data variables.product.prodname_vscode_shortname %} with {% data variables.product.prodname_copilot %}](https://code.visualstudio.com/docs/copilot/setup-simplified).
1. [Install Git](https://git-scm.com/downloads).

## Cloning and opening the repository in {% data variables.product.prodname_vscode_shortname %}

First, make a copy of the repository on your computer by cloning it.

1. [Start by cloning the new2code/client-side-web-application repository](vscode://vscode.git/clone?url=https://github.com/new2code/client-side-web-application). This link opens a dialog in {% data variables.product.prodname_vscode_shortname %} to clone the repository. <!-- markdownlint-disable-line GHD003 -->
1. Choose a location to save the repository on your computer, then click **Select as Repository Destination**.
1. When prompted, open the repository.

## Installing project requirements

1. [Open {% data variables.copilot.copilot_chat_short %}](vscode://GitHub.Copilot-Chat), then ask it to identify what you need to install with the following prompt. <!-- markdownlint-disable-line GHD003 -->

```text copy
What do I need to install to develop this project locally?
```

For this example, {% data variables.product.prodname_copilot_short %} will say that this project needs Node.js. Node.js allows you to run JavaScript code on your computer and provides tools for web development.

1. Ask {% data variables.product.prodname_copilot_short %} how to install the project requirements, then follow the steps to install them on your computer.

For this example, we could ask "How do I install Node.js?" {% data variables.product.prodname_copilot_short %} will provide instructions for visiting https://nodejs.org/ and downloading the installer.

## Installing project dependencies

Now that you have the required software installed, you need to understand how to use it for this specific project.

**Check the README file first**. Most projects include a README file in the root directory that explains how to set up and run the project. For this project, both the README file and asking {% data variables.product.prodname_copilot_short %} will tell you that the next step is to install the project's dependencies using npm, the Node.js package manager.

1. Open the Command Palette by pressing <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> (Windows/Linux) or <kbd>Cmd</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> (Mac).

1. Type `Terminal: Create New Terminal` and press <kbd>Enter</kbd>.

1. In the terminal tab, paste the following command.

```bash copy
npm install
```

Because this project uses Node.js, we used `npm install` to read the `package.json` file and download all the dependencies the project needs to work properly. Other types of projects will use different commands. For example, Python projects might use `pip install -r requirements.txt`, and Ruby projects might use `bundle install`.

If the README doesn't include information about installing dependencies, you can:

* **Look for configuration files**: Different projects use different files to list their dependencies—for example, Node.js projects use `package.json`, Python projects use `requirements.txt`, and Ruby projects use `Gemfile`.
* **Ask {% data variables.product.prodname_copilot_short %}**: Try a prompt like, "Now that I have Node.js installed, what's the next step to set up this project?"

## Running and developing your project

Now that your development environment is set up, you can start the development server and use it to preview changes to your code.

1. Find out how to start the project by checking the README file in your project folder.

For this example, the "Steps for running locally" section of the README explains that you can start the development server with the `npm start` command. Enter the following command in your terminal.

```bash copy
npm start
```

1. To identify where the local server is available, review the terminal output. You'll see that the local server is available on http://localhost:8080. Navigate to that address in your browser.
1. Make a small change to the code, such as editing some text in the HTML file or changing a color in the CSS file. Save your changes.
1. Check the project documentation or terminal output to understand how to see your changes. Some projects automatically refresh after you save the changes, while others require refreshing your browser window.

For this project, refresh your browser window to see your changes.

If the README doesn't contain the information you need, check the configuration files for available commands. You can also ask [{% data variables.copilot.copilot_chat_short %}](vscode://GitHub.Copilot-Chat) with the following prompt. <!-- markdownlint-disable-line GHD003 -->

```text copy
How do I start this project locally?
```

## What's next?

Now that you've successfully set up your first local development environment, it's time to apply these skills to different types of projects.

**Practice with a different project**: Try setting up another project with different requirements. For example, [@new2code's Python web application](https://github.com/new2code/python-web-application) uses Python and Flask instead of Node.js. <!-- markdownlint-disable-line GHD003 -->

Use what you learned in this tutorial to:

* Clone the repository using {% data variables.product.prodname_vscode_shortname %}
* Ask {% data variables.product.prodname_copilot_short %} what tools and dependencies you need to install
* Read the README file to understand how to run the project
* Get the application running in your browser

This practice will help you recognize patterns across different technologies and build confidence in your ability to set up any project locally.
1 change: 1 addition & 0 deletions content/get-started/learning-to-code/index.md
Original file line number Diff line number Diff line change
@@ -8,6 +8,7 @@ children:
- /finding-and-understanding-example-code
- /reusing-other-peoples-code-in-your-projects
- /setting-up-copilot-for-learning-to-code
- /developing-your-project-locally
- /learning-to-debug-with-github-copilot
- /storing-your-secrets-safely
- /finding-and-fixing-your-first-code-vulnerability
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
> [!NOTE]
> Custom instructions for {% data variables.copilot.copilot_code-review_short %} are in {% data variables.release-phases.public_preview %} and are subject to change.
>
> This feature is available with the {% data variables.copilot.copilot_pro_short %}, {% data variables.copilot.copilot_pro_plus_short %} {% data variables.copilot.copilot_business_short %}, and {% data variables.copilot.copilot_enterprise_short %} plan.
>
> During the {% data variables.release-phases.public_preview %}, if you're using a {% data variables.copilot.copilot_business_short %} or {% data variables.copilot.copilot_enterprise_short %} plan, the organization or enterprise that provides your plan must have the **Opt in to preview features** setting enabled. See [AUTOTITLE](/enterprise-cloud@latest/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-policies-for-copilot-in-your-organization#enabling-copilot-features-in-your-organization) or [AUTOTITLE](/enterprise-cloud@latest/copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-policies-and-features-for-copilot-in-your-enterprise#copilot-in-githubcom)

Customize {% data variables.copilot.copilot_code-review_short %} behavior by adding a repository custom instructions file. To do this, create a `.github/copilot-instructions.md` file in your repository and add natural language text that you want {% data variables.product.prodname_copilot_short %} to consider when reviewing code. This is the same `copilot-instructions.md` used by {% data variables.copilot.copilot_chat_short %}. See [AUTOTITLE](/copilot/customizing-copilot/adding-repository-custom-instructions-for-github-copilot).

To enable or disable custom instructions for code review, go to your repository’s settings, then navigate to **Code Review** under **Copilot**, and toggle the “Use custom instructions when reviewing pull requests” option.

### Example

This example of a `.github/copilot-instructions.md` file contains three instructions that will be applied to all {% data variables.copilot.copilot_code-review_short %}s in the repository.

```text
When performing a code review, respond in Spanish.

When performing a code review, follow our internal security checklist.

When performing a code review, focus on readability and avoid nested ternary operators.
```
5 changes: 4 additions & 1 deletion data/reusables/copilot/policies-for-dotcom.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
* **Opt in to user feedback collection:** If enabled, users can provide feedback on {% data variables.product.prodname_copilot_short %} pull request summaries. For more information, see [AUTOTITLE](/enterprise-cloud@latest/copilot/github-copilot-enterprise/copilot-pull-request-summaries/creating-a-pull-request-summary-with-github-copilot).
* **Opt in to preview features:** If enabled, users can test new {% data variables.product.prodname_copilot_short %} features that are not yet generally available. Be aware that previews of features may have flaws, and the features may be changed or discontinued at any time. Current previews of {% data variables.product.prodname_copilot_short %} features include {% data variables.copilot.copilot_spaces %}. See [AUTOTITLE](/copilot/using-github-copilot/copilot-spaces/about-organizing-and-sharing-context-with-copilot-spaces).
* **Opt in to preview features:** If enabled, users can test new {% data variables.product.prodname_copilot_short %} features that are not yet generally available. Be aware that previews of features may have flaws, and the features may be changed or discontinued at any time. Current previews of {% data variables.product.prodname_copilot_short %} features include:

* {% data variables.copilot.copilot_spaces %}. See [AUTOTITLE](/copilot/using-github-copilot/copilot-spaces/about-organizing-and-sharing-context-with-copilot-spaces).
* Repository custom instructions for {% data variables.copilot.copilot_code-review_short %}. See [Customizing {% data variables.product.prodname_copilot_short %}'s reviews with custom instructions](/copilot/using-github-copilot/code-review/using-copilot-code-review#customizing-copilots-reviews-with-custom-instructions).
14 changes: 14 additions & 0 deletions src/graphql/data/fpt/changelog.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,18 @@
[
{
"schemaChanges": [
{
"title": "The GraphQL schema includes these changes:",
"changes": [
"<p>Type <code>BotOrUser</code> was removed</p>",
"<p>Input field <code>botIds</code> of type '[ID!]<code>was added to input object type</code>RequestReviewsInput'</p>"
]
}
],
"previewChanges": [],
"upcomingChanges": [],
"date": "2025-06-13"
},
{
"schemaChanges": [
{
15 changes: 8 additions & 7 deletions src/graphql/data/fpt/schema.docs.graphql
Original file line number Diff line number Diff line change
@@ -2413,11 +2413,6 @@ type Bot implements Actor & Node & UniformResourceLocatable {
url: URI!
}

"""
Used when either Bot or User are accepted.
"""
union BotOrUser = Bot | User

"""
Types which can be actors for `BranchActorAllowance` objects.
"""
@@ -6469,7 +6464,8 @@ input ContributionOrder {
}

"""
A contributions collection aggregates contributions such as opened issues and commits created by a user.
A collection of contributions made by a user, including opened issues, commits, and pull requests.
Contributions in private and internal repositories are only included with the optional read:user scope.
"""
type ContributionsCollection {
"""
@@ -53600,6 +53596,11 @@ type ReprioritizeSubIssuePayload {
Autogenerated input type of RequestReviews
"""
input RequestReviewsInput {
"""
The Node IDs of the bot to request.
"""
botIds: [ID!] @possibleTypes(concreteTypes: ["Bot"])

"""
A unique identifier for the client performing the mutation.
"""
@@ -53623,7 +53624,7 @@ input RequestReviewsInput {
"""
The Node IDs of the user to request.
"""
userIds: [ID!] @possibleTypes(concreteTypes: ["Bot", "User"])
userIds: [ID!] @possibleTypes(concreteTypes: ["User"])
}

"""
30 changes: 10 additions & 20 deletions src/graphql/data/fpt/schema.json
Original file line number Diff line number Diff line change
@@ -16179,7 +16179,7 @@
"kind": "objects",
"id": "contributionscollection",
"href": "/graphql/reference/objects#contributionscollection",
"description": "<p>A contributions collection aggregates contributions such as opened issues and commits created by a user.</p>",
"description": "<p>A collection of contributions made by a user, including opened issues, commits, and pull requests.\nContributions in private and internal repositories are only included with the optional read:user scope.</p>",
"fields": [
{
"name": "commitContributionsByRepository",
@@ -94746,25 +94746,6 @@
}
]
},
{
"name": "BotOrUser",
"kind": "unions",
"id": "botoruser",
"href": "/graphql/reference/unions#botoruser",
"description": "<p>Used when either Bot or User are accepted.</p>",
"possibleTypes": [
{
"name": "Bot",
"id": "bot",
"href": "/graphql/reference/objects#bot"
},
{
"name": "User",
"id": "user",
"href": "/graphql/reference/objects#user"
}
]
},
{
"name": "BranchActorAllowanceActor",
"kind": "unions",
@@ -106047,6 +106028,15 @@
"href": "/graphql/reference/input-objects#requestreviewsinput",
"description": "<p>Autogenerated input type of RequestReviews.</p>",
"inputFields": [
{
"name": "botIds",
"description": "<p>The Node IDs of the bot to request.</p>",
"type": "[ID!]",
"id": "id",
"kind": "scalars",
"href": "/graphql/reference/scalars#id",
"isDeprecated": false
},
{
"name": "clientMutationId",
"description": "<p>A unique identifier for the client performing the mutation.</p>",
15 changes: 8 additions & 7 deletions src/graphql/data/ghec/schema.docs.graphql
Original file line number Diff line number Diff line change
@@ -2413,11 +2413,6 @@ type Bot implements Actor & Node & UniformResourceLocatable {
url: URI!
}

"""
Used when either Bot or User are accepted.
"""
union BotOrUser = Bot | User

"""
Types which can be actors for `BranchActorAllowance` objects.
"""
@@ -6469,7 +6464,8 @@ input ContributionOrder {
}

"""
A contributions collection aggregates contributions such as opened issues and commits created by a user.
A collection of contributions made by a user, including opened issues, commits, and pull requests.
Contributions in private and internal repositories are only included with the optional read:user scope.
"""
type ContributionsCollection {
"""
@@ -53600,6 +53596,11 @@ type ReprioritizeSubIssuePayload {
Autogenerated input type of RequestReviews
"""
input RequestReviewsInput {
"""
The Node IDs of the bot to request.
"""
botIds: [ID!] @possibleTypes(concreteTypes: ["Bot"])

"""
A unique identifier for the client performing the mutation.
"""
@@ -53623,7 +53624,7 @@ input RequestReviewsInput {
"""
The Node IDs of the user to request.
"""
userIds: [ID!] @possibleTypes(concreteTypes: ["Bot", "User"])
userIds: [ID!] @possibleTypes(concreteTypes: ["User"])
}

"""
30 changes: 10 additions & 20 deletions src/graphql/data/ghec/schema.json
Original file line number Diff line number Diff line change
@@ -16179,7 +16179,7 @@
"kind": "objects",
"id": "contributionscollection",
"href": "/graphql/reference/objects#contributionscollection",
"description": "<p>A contributions collection aggregates contributions such as opened issues and commits created by a user.</p>",
"description": "<p>A collection of contributions made by a user, including opened issues, commits, and pull requests.\nContributions in private and internal repositories are only included with the optional read:user scope.</p>",
"fields": [
{
"name": "commitContributionsByRepository",
@@ -94746,25 +94746,6 @@
}
]
},
{
"name": "BotOrUser",
"kind": "unions",
"id": "botoruser",
"href": "/graphql/reference/unions#botoruser",
"description": "<p>Used when either Bot or User are accepted.</p>",
"possibleTypes": [
{
"name": "Bot",
"id": "bot",
"href": "/graphql/reference/objects#bot"
},
{
"name": "User",
"id": "user",
"href": "/graphql/reference/objects#user"
}
]
},
{
"name": "BranchActorAllowanceActor",
"kind": "unions",
@@ -106047,6 +106028,15 @@
"href": "/graphql/reference/input-objects#requestreviewsinput",
"description": "<p>Autogenerated input type of RequestReviews.</p>",
"inputFields": [
{
"name": "botIds",
"description": "<p>The Node IDs of the bot to request.</p>",
"type": "[ID!]",
"id": "id",
"kind": "scalars",
"href": "/graphql/reference/scalars#id",
"isDeprecated": false
},
{
"name": "clientMutationId",
"description": "<p>A unique identifier for the client performing the mutation.</p>",
Loading