# Tutorials for GitHub Copilot

Build skills and knowledge about GitHub Copilot through examples and hands-on activities.

## Recommended

* [GitHub Copilot Chat Cookbook](/en/copilot/tutorials/copilot-chat-cookbook)

  Find examples of prompts to use with GitHub Copilot Chat.

* [Customization library](/en/copilot/tutorials/customization-library)

  Discover a curated collection of customizations, including custom instructions, custom agents, and prompt files, to enhance your GitHub Copilot experience.

* [Rolling out GitHub Copilot at scale](/en/copilot/tutorials/roll-out-at-scale)

  Learn how to manage a Copilot rollout in your organization or enterprise.

## Articles

* [Creating templates](/en/copilot/tutorials/copilot-chat-cookbook/communicate-effectively/creating-templates)

  Copilot Chat can help you create templates to streamline your workflow and ensure consistency across your projects.

* [Extracting information](/en/copilot/tutorials/copilot-chat-cookbook/communicate-effectively/extracting-information)

  Copilot Chat in GitHub can help you extract key information from issues and discussions.

* [Synthesizing research](/en/copilot/tutorials/copilot-chat-cookbook/communicate-effectively/synthesizing-research)

  Copilot Chat can help you synthesize research findings and insights from multiple sources into a cohesive summary.

* [Creating diagrams](/en/copilot/tutorials/copilot-chat-cookbook/communicate-effectively/creating-diagrams)

  GitHub Copilot Chat can help you create diagrams to better understand your data and communicate insights.

* [Generating tables](/en/copilot/tutorials/copilot-chat-cookbook/communicate-effectively/generating-tables)

  Copilot Chat can help you create tables to organize information and present it clearly.

* [Debugging invalid JSON](/en/copilot/tutorials/copilot-chat-cookbook/debug-errors/debug-invalid-json)

  Copilot Chat can identify and resolve syntax errors or structural issues in JSON data.

* [Handling API rate limits](/en/copilot/tutorials/copilot-chat-cookbook/debug-errors/handle-api-rate-limits)

  Copilot Chat can help handle API rate limits by suggesting code that detects them and implements retry logic.

* [Diagnosing test failures](/en/copilot/tutorials/copilot-chat-cookbook/debug-errors/diagnose-test-failures)

  Copilot Chat can help you understand why a test is failing and suggest how to fix it.

* [Exploring potential feature implementations](/en/copilot/tutorials/copilot-chat-cookbook/analyze-functionality/explore-implementations)

  Copilot Chat can help explore different approaches for implementing a single feature.

* [Analyzing and incorporating user feedback](/en/copilot/tutorials/copilot-chat-cookbook/analyze-functionality/analyze-feedback)

  Copilot Chat can enhance the process of incorporating user feedback into your project.

* [Improving code readability and maintainability](/en/copilot/tutorials/copilot-chat-cookbook/refactor-code/improve-code-readability)

  Copilot Chat can suggest ways to make your code easier to understand and maintain.

* [Fixing lint errors](/en/copilot/tutorials/copilot-chat-cookbook/refactor-code/fix-lint-errors)

  Copilot Chat can suggest ways to fix issues identified by a code linter.

* [Refactoring for performance optimization](/en/copilot/tutorials/copilot-chat-cookbook/refactor-code/refactor-for-optimization)

  Copilot Chat can suggest ways to speed up slow-running code.

* [Refactoring for environmental sustainability](/en/copilot/tutorials/copilot-chat-cookbook/refactor-code/refactor-for-sustainability)

  Copilot Chat can suggest ways to make code more environmentally friendly.

* [Refactoring to implement a design pattern](/en/copilot/tutorials/copilot-chat-cookbook/refactor-code/refactor-design-patterns)

  Copilot Chat can suggest design patterns that you can use to improve your code.

* [Refactoring data access layers](/en/copilot/tutorials/copilot-chat-cookbook/refactor-code/refactor-data-access-layers)

  Copilot Chat can suggest ways to decouple your data access code from your business logic, making an application easier to maintain and scale.

* [Decoupling business logic from UI components](/en/copilot/tutorials/copilot-chat-cookbook/refactor-code/decouple-business-logic)

  Copilot Chat can help you separate your business logic from your user interface code, making it easier to maintain and scale your application.

* [Handling cross-cutting concerns](/en/copilot/tutorials/copilot-chat-cookbook/refactor-code/handle-cross-cutting)

  Copilot Chat can help you avoid code that relates to a concern other than the core concern of the method or function in which the code is located.

* [Simplifying complex inheritance hierarchies](/en/copilot/tutorials/copilot-chat-cookbook/refactor-code/simplify-inheritance-hierarchies)

  Copilot Chat can help you to refactor code to avoid classes with multiple layers of inheritance.

* [Fixing database deadlocks or data integrity issues](/en/copilot/tutorials/copilot-chat-cookbook/refactor-code/fix-database-deadlocks)

  Copilot Chat can help you avoid code that causes slow or blocked database operations, or tables with missing or incorrect data.

* [Translating code to a different programming language](/en/copilot/tutorials/copilot-chat-cookbook/refactor-code/translate-code)

  Copilot Chat can help you rewrite code to perform the same operations but in a different programming language.

* [Creating issues](/en/copilot/tutorials/copilot-chat-cookbook/document-code/creating-issues)

  Copilot Chat can help you quickly create issues without filling out every field manually.

* [Documenting legacy code](/en/copilot/tutorials/copilot-chat-cookbook/document-code/document-legacy-code)

  Copilot Chat can help with documenting legacy code.

* [Explaining legacy code](/en/copilot/tutorials/copilot-chat-cookbook/document-code/explain-legacy-code)

  Copilot Chat can help with explaining unfamiliar code.

* [Explaining complex algorithms or logic](/en/copilot/tutorials/copilot-chat-cookbook/document-code/explain-complex-logic)

  Copilot Chat can help add clear and concise documentation on complex algorithms or logic.

* [Syncing documentation with code changes](/en/copilot/tutorials/copilot-chat-cookbook/document-code/sync-documentation)

  Copilot Chat can help with keeping code documentation up-to-date.

* [Writing discussions or blog posts](/en/copilot/tutorials/copilot-chat-cookbook/document-code/write-discussions-or-blog-posts)

  Copilot Chat can help you generate ideas, outline, or draft discussions or blog posts.

* [Generating unit tests](/en/copilot/tutorials/copilot-chat-cookbook/testing-code/generate-unit-tests)

  Copilot Chat can help with generating unit tests for a function.

* [Creating mock objects to abstract layers](/en/copilot/tutorials/copilot-chat-cookbook/testing-code/create-mock-objects)

  Copilot Chat can help with creating mock objects that you can use for unit tests.

* [Creating end-to-end tests for a webpage](/en/copilot/tutorials/copilot-chat-cookbook/testing-code/create-end-to-end-tests)

  Copilot Chat can help with generating end-to-end tests.

* [Updating unit tests to match code changes](/en/copilot/tutorials/copilot-chat-cookbook/testing-code/update-unit-tests)

  Copilot Chat can help with updating your tests.

* [Securing your repository](/en/copilot/tutorials/copilot-chat-cookbook/analyze-security/secure-your-repository)

  Copilot Chat can help you to secure your repository and your code.

* [Managing dependency updates](/en/copilot/tutorials/copilot-chat-cookbook/analyze-security/manage-dependency-updates)

  Copilot Chat can help you get set up with Dependabot to streamline dependency updates.

* [Finding existing vulnerabilities in code](/en/copilot/tutorials/copilot-chat-cookbook/analyze-security/find-vulnerabilities)

  Copilot Chat can help find common vulnerabilities in your code and suggest fixes.

* [Your first custom instructions](/en/copilot/tutorials/customization-library/custom-instructions/your-first-custom-instructions)

  Create and test your first custom instruction with this simple example.

* [Concept explainer](/en/copilot/tutorials/customization-library/custom-instructions/concept-explainer)

  Instructions for breaking down complex technical concepts.

* [Debugging tutor](/en/copilot/tutorials/customization-library/custom-instructions/debugging-tutor)

  Instructions for systematic debugging and troubleshooting.

* [Code reviewer](/en/copilot/tutorials/customization-library/custom-instructions/code-reviewer)

  Instructions for thorough and constructive code reviews.

* [GitHub Actions helper](/en/copilot/tutorials/customization-library/custom-instructions/github-actions-helper)

  Generate and improve GitHub Actions workflows.

* [Pull request assistant](/en/copilot/tutorials/customization-library/custom-instructions/pull-request-assistant)

  Generate comprehensive pull request descriptions and reviews.

* [Issue manager](/en/copilot/tutorials/customization-library/custom-instructions/issue-manager)

  Create well-structured issues and responses.

* [Accessibility auditor](/en/copilot/tutorials/customization-library/custom-instructions/accessibility-auditor)

  Instructions for comprehensive web accessibility testing and compliance.

* [Testing automation](/en/copilot/tutorials/customization-library/custom-instructions/testing-automation)

  File-specific instructions for writing unit tests.

* [Your first prompt file](/en/copilot/tutorials/customization-library/prompt-files/your-first-prompt-file)

  Create your first Copilot prompt file with this simple code explanation example that works for any programming language.

* [Create README](/en/copilot/tutorials/customization-library/prompt-files/create-readme)

  Generate comprehensive README files for your projects.

* [Onboarding plan](/en/copilot/tutorials/customization-library/prompt-files/onboarding-plan)

  A prompt file for getting personalized help with team onboarding.

* [Document API](/en/copilot/tutorials/customization-library/prompt-files/document-api)

  Generate comprehensive API documentation from your code.

* [Review code](/en/copilot/tutorials/customization-library/prompt-files/review-code)

  Perform comprehensive code reviews with structured feedback.

* [Generate unit tests](/en/copilot/tutorials/customization-library/prompt-files/generate-unit-tests)

  Create focused unit tests for your code.

* [Your first custom agent](/en/copilot/tutorials/customization-library/custom-agents/your-first-custom-agent)

  Create and test your first custom agent with this simple README specialist example.

* [Implementation planner](/en/copilot/tutorials/customization-library/custom-agents/implementation-planner)

  A custom agent that breaks down features into actionable tasks and creates detailed implementation plans.

* [Bug fix teammate](/en/copilot/tutorials/customization-library/custom-agents/bug-fix-teammate)

  A custom agent that identifies critical bugs in your project and implements targeted fixes.

* [Cleanup specialist](/en/copilot/tutorials/customization-library/custom-agents/cleanup-specialist)

  A custom agent that cleans up messy code, removes duplication, and improves maintainability across code and documentation files.

* [Best practices for using GitHub Copilot to work on tasks](/en/copilot/tutorials/cloud-agent/get-the-best-results)

  Learn how to get the best results from Copilot cloud agent.

* [Piloting GitHub Copilot cloud agent in your organization](/en/copilot/tutorials/cloud-agent/pilot-cloud-agent)

  Follow best practices to enable Copilot cloud agent in your organization.

* [Using GitHub Copilot cloud agent to improve a project](/en/copilot/tutorials/cloud-agent/improve-a-project)

  Find and fix problems in a project with Copilot cloud agent.

* [Building guardrails for GitHub Copilot cloud agent](/en/copilot/tutorials/cloud-agent/build-guardrails)

  Configure your enterprise so that Copilot cloud agent will operate in a secure, compliant environment.

* [Giving GitHub Copilot cloud agent access to resources in your organization](/en/copilot/tutorials/cloud-agent/give-access-to-resources)

  Get more out of Copilot by giving it access to approved MCP servers and internal packages.

* [Your first spark](/en/copilot/tutorials/spark/your-first-spark)

  Learn how to build your first GitHub Spark app in minutes, without writing any code.

* [Write effective prompts and provide useful context for Spark](/en/copilot/tutorials/spark/prompt-tips)

  Learn how to get the best results when you are describing your app idea to Spark.

* [Building and deploying AI-powered apps with GitHub Spark](/en/copilot/tutorials/spark/build-apps-with-spark)

  Learn how to build and deploy an intelligent web app with natural language using GitHub Spark.

* [Deploy your Spark app from the command line](/en/copilot/tutorials/spark/deploy-from-cli)

  Learn how to deploy your Spark app from the command line.

* [Using custom instructions to unlock the power of Copilot code review](/en/copilot/tutorials/customize-code-review)

  Learn how to write effective custom instructions that help GitHub Copilot provide more relevant and actionable code reviews.

* [Enhancing GitHub Copilot agent mode with MCP](/en/copilot/tutorials/enhance-agent-mode-with-mcp)

  Learn how to use the Model Context Protocol (MCP) to expand the agentic capabilities of Copilot Chat.

* [Comparing AI models using different tasks](/en/copilot/tutorials/compare-ai-models)

  Explore real-world examples of common developer tasks along with sample prompts, responses, and guidance to help you choose the right AI model for your workflow.

* [Speeding up development work with GitHub Copilot Spaces](/en/copilot/tutorials/speed-up-development-work)

  Learn how to use Copilot Spaces to help you with development work.

* [Setting up a self-serve process for GitHub Copilot licenses](/en/copilot/tutorials/roll-out-at-scale/assign-licenses/set-up-self-serve-licenses)

  Learn how users can request a license and receive access immediately.

* [Tracking license activation and initial usage with Copilot usage metrics](/en/copilot/tutorials/roll-out-at-scale/assign-licenses/track-usage-and-adoption)

  Identify and act on GitHub Copilot adoption signals and activation with usage metrics.

* [Reminding inactive users to use their GitHub Copilot license](/en/copilot/tutorials/roll-out-at-scale/assign-licenses/remind-inactive-users)

  Use the GitHub API to identify inactive users and help them get started.

* [Establishing AI managers in your enterprise](/en/copilot/tutorials/roll-out-at-scale/establish-ai-managers)

  Reduce your administrative burden and empower your SMEs by creating a team of AI managers.

* [Governing Copilot to support developer productivity](/en/copilot/tutorials/roll-out-at-scale/govern-for-adoption)

  Set a governance posture that balances compliance requirements with developer productivity, so your rollout succeeds from day one.

* [Driving GitHub Copilot adoption in your company](/en/copilot/tutorials/roll-out-at-scale/enable-developers/drive-adoption)

  Learn how to plan an effective enablement process to drive Copilot adoption.

* [Integrating agentic AI into your enterprise's software development lifecycle](/en/copilot/tutorials/roll-out-at-scale/enable-developers/integrate-ai-agents)

  See how agents can boost productivity across your enterprise.

* [Increasing test coverage in your company with GitHub Copilot](/en/copilot/tutorials/roll-out-at-scale/drive-downstream-impact/increase-test-coverage)

  Understand features, enable developers, and measure Copilot's impact.

* [Accelerating pull requests in your company with GitHub Copilot](/en/copilot/tutorials/roll-out-at-scale/drive-downstream-impact/accelerate-pull-requests)

  Understand features, enable developers, and measure Copilot's impact.

* [Reducing security debt in your company with GitHub Copilot](/en/copilot/tutorials/roll-out-at-scale/drive-downstream-impact/reduce-security-debt)

  Understand features, enable developers, and measure Copilot's impact.

* [Measuring the success of a GitHub Copilot trial](/en/copilot/tutorials/roll-out-at-scale/measure-success)

  Measure the success of a Copilot trial by analyzing adoption, engagement, and early usage patterns using Copilot usage metrics.

* [Maintaining codebase standards in a GitHub Copilot rollout](/en/copilot/tutorials/roll-out-at-scale/maintain-codebase-standards)

  Stay in control of your enterprise's code with rulesets, security features, and effective training.

* [Using GitHub Copilot to explore a codebase](/en/copilot/tutorials/explore-a-codebase)

  GitHub Copilot Chat can help you gain an understanding of the content, structure, and functionality of a codebase.

* [Using GitHub Copilot to explore issues and discussions](/en/copilot/tutorials/explore-issues-and-discussions)

  GitHub Copilot Chat can help you quickly gain context of lengthy discussions and issues.

* [Using GitHub Copilot to explore pull requests](/en/copilot/tutorials/explore-pull-requests)

  GitHub Copilot Chat can help you understand the content, functionality, and status of a pull request.

* [Writing tests with GitHub Copilot](/en/copilot/tutorials/write-tests)

  Use Copilot to generate unit and integration tests, and help improve code quality.

* [Refactoring code with GitHub Copilot](/en/copilot/tutorials/refactor-code)

  Leverage Copilot artificial intelligence to help you refactor your code quickly and effectively.

* [Build an optimized review process with Copilot](/en/copilot/tutorials/optimize-code-reviews)

  Automate reviews with Copilot to optimize and improve your review process.

* [Using GitHub Copilot to reduce technical debt](/en/copilot/tutorials/reduce-technical-debt)

  Use Copilot to automate refactoring and maintenance tasks, freeing your team to focus on feature development.

* [Review AI-generated code](/en/copilot/tutorials/review-ai-generated-code)

  Learn techniques to verify and validate AI-generated code, and how Copilot Chat can help.

* [Learning a new programming language with GitHub Copilot](/en/copilot/tutorials/learn-a-new-language)

  GitHub Copilot Chat can help you extend your programming skills by learning how to code in a new programming language.

* [Modernizing legacy code with GitHub Copilot](/en/copilot/tutorials/modernize-legacy-code)

  Copilot Chat helps modernize legacy code by suggesting refactors and creating tests to catch potential issues.

* [Modernizing Java applications with GitHub Copilot](/en/copilot/tutorials/modernize-java-applications)

  GitHub Copilot can help modernize and migrate Java applications by assessing your codebase, identifying upgrade paths, and automating remediation and containerization tasks.

* [Using GitHub Copilot to migrate a project to another programming language](/en/copilot/tutorials/migrate-a-project)

  GitHub Copilot Chat can help you move a project to a different language. This guide describes what's involved in a migration process and gives an example of a PHP to Python migration.

* [Planning a project with GitHub Copilot](/en/copilot/tutorials/plan-a-project)

  Plan your next project by using GitHub Copilot to turn your ideas into issues.

* [Vibe coding with GitHub Copilot](/en/copilot/tutorials/vibe-coding)

  Create an application without writing any code yourself.

* [Upgrading projects with GitHub Copilot](/en/copilot/tutorials/upgrade-projects)

  You can use GitHub Copilot to upgrade your Maven and Gradle Java applications and .NET applications.

* [Using hooks with Copilot CLI for predictable, policy-compliant execution](/en/copilot/tutorials/copilot-cli-hooks)

  Use hooks to log user prompts and control which tools Copilot CLI can run in a repository, so teams can automate safely within your organization's security and compliance requirements.

* [Using Copilot CLI as your AI SME](/en/copilot/tutorials/use-an-ai-sme)

  Use Copilot CLI as an always-available subject matter expert to learn how a codebase works, so you can confidently maintain it or add new features.