diff --git a/content/copilot/using-github-copilot/code-review/using-copilot-code-review.md b/content/copilot/using-github-copilot/code-review/using-copilot-code-review.md index cf555509794d..20c904e90e90 100644 --- a/content/copilot/using-github-copilot/code-review/using-copilot-code-review.md +++ b/content/copilot/using-github-copilot/code-review/using-copilot-code-review.md @@ -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  +## 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 %} diff --git a/content/get-started/learning-to-code/developing-your-project-locally.md b/content/get-started/learning-to-code/developing-your-project-locally.md new file mode 100644 index 000000000000..19e5de650b45 --- /dev/null +++ b/content/get-started/learning-to-code/developing-your-project-locally.md @@ -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. +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. + + ```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 Ctrl+Shift+P (Windows/Linux) or Cmd+Shift+P (Mac). + +1. Type `Terminal: Create New Terminal` and press Enter. + +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. + +```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. + +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. diff --git a/content/get-started/learning-to-code/index.md b/content/get-started/learning-to-code/index.md index 67f866e5f4df..aa549d9c7622 100644 --- a/content/get-started/learning-to-code/index.md +++ b/content/get-started/learning-to-code/index.md @@ -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 diff --git a/data/reusables/copilot/code-review/custom-instructions-information.md b/data/reusables/copilot/code-review/custom-instructions-information.md new file mode 100644 index 000000000000..90c8ffbdb162 --- /dev/null +++ b/data/reusables/copilot/code-review/custom-instructions-information.md @@ -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. +``` diff --git a/data/reusables/copilot/policies-for-dotcom.md b/data/reusables/copilot/policies-for-dotcom.md index ae2e4cf35077..4c26aa1174d3 100644 --- a/data/reusables/copilot/policies-for-dotcom.md +++ b/data/reusables/copilot/policies-for-dotcom.md @@ -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). diff --git a/src/graphql/data/fpt/changelog.json b/src/graphql/data/fpt/changelog.json index de6de910d43c..e9996808119c 100644 --- a/src/graphql/data/fpt/changelog.json +++ b/src/graphql/data/fpt/changelog.json @@ -1,4 +1,18 @@ [ + { + "schemaChanges": [ + { + "title": "The GraphQL schema includes these changes:", + "changes": [ + "
Type BotOrUser was removed
Input field botIds of type '[ID!]was added to input object typeRequestReviewsInput'
A contributions collection aggregates contributions such as opened issues and commits created by a user.
", + "description": "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.
", "fields": [ { "name": "commitContributionsByRepository", @@ -94746,25 +94746,6 @@ } ] }, - { - "name": "BotOrUser", - "kind": "unions", - "id": "botoruser", - "href": "/graphql/reference/unions#botoruser", - "description": "Used when either Bot or User are accepted.
", - "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": "Autogenerated input type of RequestReviews.
", "inputFields": [ + { + "name": "botIds", + "description": "The Node IDs of the bot to request.
", + "type": "[ID!]", + "id": "id", + "kind": "scalars", + "href": "/graphql/reference/scalars#id", + "isDeprecated": false + }, { "name": "clientMutationId", "description": "A unique identifier for the client performing the mutation.
", diff --git a/src/graphql/data/ghec/schema.docs.graphql b/src/graphql/data/ghec/schema.docs.graphql index 20d2376cb668..e54fd6fb84fc 100644 --- a/src/graphql/data/ghec/schema.docs.graphql +++ b/src/graphql/data/ghec/schema.docs.graphql @@ -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"]) } """ diff --git a/src/graphql/data/ghec/schema.json b/src/graphql/data/ghec/schema.json index a122c397aadc..15e4734ea42c 100644 --- a/src/graphql/data/ghec/schema.json +++ b/src/graphql/data/ghec/schema.json @@ -16179,7 +16179,7 @@ "kind": "objects", "id": "contributionscollection", "href": "/graphql/reference/objects#contributionscollection", - "description": "A contributions collection aggregates contributions such as opened issues and commits created by a user.
", + "description": "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.
", "fields": [ { "name": "commitContributionsByRepository", @@ -94746,25 +94746,6 @@ } ] }, - { - "name": "BotOrUser", - "kind": "unions", - "id": "botoruser", - "href": "/graphql/reference/unions#botoruser", - "description": "Used when either Bot or User are accepted.
", - "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": "Autogenerated input type of RequestReviews.
", "inputFields": [ + { + "name": "botIds", + "description": "The Node IDs of the bot to request.
", + "type": "[ID!]", + "id": "id", + "kind": "scalars", + "href": "/graphql/reference/scalars#id", + "isDeprecated": false + }, { "name": "clientMutationId", "description": "A unique identifier for the client performing the mutation.
",