{"meta":{"title":"Tutorials for GitHub Copilot","intro":"Build skills and knowledge about GitHub Copilot through examples and hands-on activities.","product":"GitHub Copilot","breadcrumbs":[{"href":"/en/copilot","title":"GitHub Copilot"},{"href":"/en/copilot/tutorials","title":"Tutorials"}],"documentType":"category"},"body":"# Tutorials for GitHub Copilot\n\nBuild skills and knowledge about GitHub Copilot through examples and hands-on activities.\n\n## Recommended\n\n* [GitHub Copilot Chat Cookbook](/en/copilot/tutorials/copilot-chat-cookbook)\n\n  Find examples of prompts to use with GitHub Copilot Chat.\n\n* [Customization library](/en/copilot/tutorials/customization-library)\n\n  Discover a curated collection of customizations, including custom instructions, custom agents, and prompt files, to enhance your GitHub Copilot experience.\n\n* [Rolling out GitHub Copilot at scale](/en/copilot/tutorials/roll-out-at-scale)\n\n  Learn how to manage a Copilot rollout in your organization or enterprise.\n\n## Articles\n\n* [Creating templates](/en/copilot/tutorials/copilot-chat-cookbook/communicate-effectively/creating-templates)\n\n  Copilot Chat can help you create templates to streamline your workflow and ensure consistency across your projects.\n\n* [Extracting information](/en/copilot/tutorials/copilot-chat-cookbook/communicate-effectively/extracting-information)\n\n  Copilot Chat in GitHub can help you extract key information from issues and discussions.\n\n* [Synthesizing research](/en/copilot/tutorials/copilot-chat-cookbook/communicate-effectively/synthesizing-research)\n\n  Copilot Chat can help you synthesize research findings and insights from multiple sources into a cohesive summary.\n\n* [Creating diagrams](/en/copilot/tutorials/copilot-chat-cookbook/communicate-effectively/creating-diagrams)\n\n  GitHub Copilot Chat can help you create diagrams to better understand your data and communicate insights.\n\n* [Generating tables](/en/copilot/tutorials/copilot-chat-cookbook/communicate-effectively/generating-tables)\n\n  Copilot Chat can help you create tables to organize information and present it clearly.\n\n* [Debugging invalid JSON](/en/copilot/tutorials/copilot-chat-cookbook/debug-errors/debug-invalid-json)\n\n  Copilot Chat can identify and resolve syntax errors or structural issues in JSON data.\n\n* [Handling API rate limits](/en/copilot/tutorials/copilot-chat-cookbook/debug-errors/handle-api-rate-limits)\n\n  Copilot Chat can help handle API rate limits by suggesting code that detects them and implements retry logic.\n\n* [Diagnosing test failures](/en/copilot/tutorials/copilot-chat-cookbook/debug-errors/diagnose-test-failures)\n\n  Copilot Chat can help you understand why a test is failing and suggest how to fix it.\n\n* [Exploring potential feature implementations](/en/copilot/tutorials/copilot-chat-cookbook/analyze-functionality/explore-implementations)\n\n  Copilot Chat can help explore different approaches for implementing a single feature.\n\n* [Analyzing and incorporating user feedback](/en/copilot/tutorials/copilot-chat-cookbook/analyze-functionality/analyze-feedback)\n\n  Copilot Chat can enhance the process of incorporating user feedback into your project.\n\n* [Improving code readability and maintainability](/en/copilot/tutorials/copilot-chat-cookbook/refactor-code/improve-code-readability)\n\n  Copilot Chat can suggest ways to make your code easier to understand and maintain.\n\n* [Fixing lint errors](/en/copilot/tutorials/copilot-chat-cookbook/refactor-code/fix-lint-errors)\n\n  Copilot Chat can suggest ways to fix issues identified by a code linter.\n\n* [Refactoring for performance optimization](/en/copilot/tutorials/copilot-chat-cookbook/refactor-code/refactor-for-optimization)\n\n  Copilot Chat can suggest ways to speed up slow-running code.\n\n* [Refactoring for environmental sustainability](/en/copilot/tutorials/copilot-chat-cookbook/refactor-code/refactor-for-sustainability)\n\n  Copilot Chat can suggest ways to make code more environmentally friendly.\n\n* [Refactoring to implement a design pattern](/en/copilot/tutorials/copilot-chat-cookbook/refactor-code/refactor-design-patterns)\n\n  Copilot Chat can suggest design patterns that you can use to improve your code.\n\n* [Refactoring data access layers](/en/copilot/tutorials/copilot-chat-cookbook/refactor-code/refactor-data-access-layers)\n\n  Copilot Chat can suggest ways to decouple your data access code from your business logic, making an application easier to maintain and scale.\n\n* [Decoupling business logic from UI components](/en/copilot/tutorials/copilot-chat-cookbook/refactor-code/decouple-business-logic)\n\n  Copilot Chat can help you separate your business logic from your user interface code, making it easier to maintain and scale your application.\n\n* [Handling cross-cutting concerns](/en/copilot/tutorials/copilot-chat-cookbook/refactor-code/handle-cross-cutting)\n\n  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.\n\n* [Simplifying complex inheritance hierarchies](/en/copilot/tutorials/copilot-chat-cookbook/refactor-code/simplify-inheritance-hierarchies)\n\n  Copilot Chat can help you to refactor code to avoid classes with multiple layers of inheritance.\n\n* [Fixing database deadlocks or data integrity issues](/en/copilot/tutorials/copilot-chat-cookbook/refactor-code/fix-database-deadlocks)\n\n  Copilot Chat can help you avoid code that causes slow or blocked database operations, or tables with missing or incorrect data.\n\n* [Translating code to a different programming language](/en/copilot/tutorials/copilot-chat-cookbook/refactor-code/translate-code)\n\n  Copilot Chat can help you rewrite code to perform the same operations but in a different programming language.\n\n* [Creating issues](/en/copilot/tutorials/copilot-chat-cookbook/document-code/creating-issues)\n\n  Copilot Chat can help you quickly create issues without filling out every field manually.\n\n* [Documenting legacy code](/en/copilot/tutorials/copilot-chat-cookbook/document-code/document-legacy-code)\n\n  Copilot Chat can help with documenting legacy code.\n\n* [Explaining legacy code](/en/copilot/tutorials/copilot-chat-cookbook/document-code/explain-legacy-code)\n\n  Copilot Chat can help with explaining unfamiliar code.\n\n* [Explaining complex algorithms or logic](/en/copilot/tutorials/copilot-chat-cookbook/document-code/explain-complex-logic)\n\n  Copilot Chat can help add clear and concise documentation on complex algorithms or logic.\n\n* [Syncing documentation with code changes](/en/copilot/tutorials/copilot-chat-cookbook/document-code/sync-documentation)\n\n  Copilot Chat can help with keeping code documentation up-to-date.\n\n* [Writing discussions or blog posts](/en/copilot/tutorials/copilot-chat-cookbook/document-code/write-discussions-or-blog-posts)\n\n  Copilot Chat can help you generate ideas, outline, or draft discussions or blog posts.\n\n* [Generating unit tests](/en/copilot/tutorials/copilot-chat-cookbook/testing-code/generate-unit-tests)\n\n  Copilot Chat can help with generating unit tests for a function.\n\n* [Creating mock objects to abstract layers](/en/copilot/tutorials/copilot-chat-cookbook/testing-code/create-mock-objects)\n\n  Copilot Chat can help with creating mock objects that you can use for unit tests.\n\n* [Creating end-to-end tests for a webpage](/en/copilot/tutorials/copilot-chat-cookbook/testing-code/create-end-to-end-tests)\n\n  Copilot Chat can help with generating end-to-end tests.\n\n* [Updating unit tests to match code changes](/en/copilot/tutorials/copilot-chat-cookbook/testing-code/update-unit-tests)\n\n  Copilot Chat can help with updating your tests.\n\n* [Securing your repository](/en/copilot/tutorials/copilot-chat-cookbook/analyze-security/secure-your-repository)\n\n  Copilot Chat can help you to secure your repository and your code.\n\n* [Managing dependency updates](/en/copilot/tutorials/copilot-chat-cookbook/analyze-security/manage-dependency-updates)\n\n  Copilot Chat can help you get set up with Dependabot to streamline dependency updates.\n\n* [Finding existing vulnerabilities in code](/en/copilot/tutorials/copilot-chat-cookbook/analyze-security/find-vulnerabilities)\n\n  Copilot Chat can help find common vulnerabilities in your code and suggest fixes.\n\n* [Your first custom instructions](/en/copilot/tutorials/customization-library/custom-instructions/your-first-custom-instructions)\n\n  Create and test your first custom instruction with this simple example.\n\n* [Concept explainer](/en/copilot/tutorials/customization-library/custom-instructions/concept-explainer)\n\n  Instructions for breaking down complex technical concepts.\n\n* [Debugging tutor](/en/copilot/tutorials/customization-library/custom-instructions/debugging-tutor)\n\n  Instructions for systematic debugging and troubleshooting.\n\n* [Code reviewer](/en/copilot/tutorials/customization-library/custom-instructions/code-reviewer)\n\n  Instructions for thorough and constructive code reviews.\n\n* [GitHub Actions helper](/en/copilot/tutorials/customization-library/custom-instructions/github-actions-helper)\n\n  Generate and improve GitHub Actions workflows.\n\n* [Pull request assistant](/en/copilot/tutorials/customization-library/custom-instructions/pull-request-assistant)\n\n  Generate comprehensive pull request descriptions and reviews.\n\n* [Issue manager](/en/copilot/tutorials/customization-library/custom-instructions/issue-manager)\n\n  Create well-structured issues and responses.\n\n* [Accessibility auditor](/en/copilot/tutorials/customization-library/custom-instructions/accessibility-auditor)\n\n  Instructions for comprehensive web accessibility testing and compliance.\n\n* [Testing automation](/en/copilot/tutorials/customization-library/custom-instructions/testing-automation)\n\n  File-specific instructions for writing unit tests.\n\n* [Your first prompt file](/en/copilot/tutorials/customization-library/prompt-files/your-first-prompt-file)\n\n  Create your first Copilot prompt file with this simple code explanation example that works for any programming language.\n\n* [Create README](/en/copilot/tutorials/customization-library/prompt-files/create-readme)\n\n  Generate comprehensive README files for your projects.\n\n* [Onboarding plan](/en/copilot/tutorials/customization-library/prompt-files/onboarding-plan)\n\n  A prompt file for getting personalized help with team onboarding.\n\n* [Document API](/en/copilot/tutorials/customization-library/prompt-files/document-api)\n\n  Generate comprehensive API documentation from your code.\n\n* [Review code](/en/copilot/tutorials/customization-library/prompt-files/review-code)\n\n  Perform comprehensive code reviews with structured feedback.\n\n* [Generate unit tests](/en/copilot/tutorials/customization-library/prompt-files/generate-unit-tests)\n\n  Create focused unit tests for your code.\n\n* [Your first custom agent](/en/copilot/tutorials/customization-library/custom-agents/your-first-custom-agent)\n\n  Create and test your first custom agent with this simple README specialist example.\n\n* [Implementation planner](/en/copilot/tutorials/customization-library/custom-agents/implementation-planner)\n\n  A custom agent that breaks down features into actionable tasks and creates detailed implementation plans.\n\n* [Bug fix teammate](/en/copilot/tutorials/customization-library/custom-agents/bug-fix-teammate)\n\n  A custom agent that identifies critical bugs in your project and implements targeted fixes.\n\n* [Cleanup specialist](/en/copilot/tutorials/customization-library/custom-agents/cleanup-specialist)\n\n  A custom agent that cleans up messy code, removes duplication, and improves maintainability across code and documentation files.\n\n* [Best practices for using GitHub Copilot to work on tasks](/en/copilot/tutorials/cloud-agent/get-the-best-results)\n\n  Learn how to get the best results from Copilot cloud agent.\n\n* [Piloting GitHub Copilot cloud agent in your organization](/en/copilot/tutorials/cloud-agent/pilot-cloud-agent)\n\n  Follow best practices to enable Copilot cloud agent in your organization.\n\n* [Using GitHub Copilot cloud agent to improve a project](/en/copilot/tutorials/cloud-agent/improve-a-project)\n\n  Find and fix problems in a project with Copilot cloud agent.\n\n* [Building guardrails for GitHub Copilot cloud agent](/en/copilot/tutorials/cloud-agent/build-guardrails)\n\n  Configure your enterprise so that Copilot cloud agent will operate in a secure, compliant environment.\n\n* [Giving GitHub Copilot cloud agent access to resources in your organization](/en/copilot/tutorials/cloud-agent/give-access-to-resources)\n\n  Get more out of Copilot by giving it access to approved MCP servers and internal packages.\n\n* [Your first spark](/en/copilot/tutorials/spark/your-first-spark)\n\n  Learn how to build your first GitHub Spark app in minutes, without writing any code.\n\n* [Write effective prompts and provide useful context for Spark](/en/copilot/tutorials/spark/prompt-tips)\n\n  Learn how to get the best results when you are describing your app idea to Spark.\n\n* [Building and deploying AI-powered apps with GitHub Spark](/en/copilot/tutorials/spark/build-apps-with-spark)\n\n  Learn how to build and deploy an intelligent web app with natural language using GitHub Spark.\n\n* [Deploy your Spark app from the command line](/en/copilot/tutorials/spark/deploy-from-cli)\n\n  Learn how to deploy your Spark app from the command line.\n\n* [Using custom instructions to unlock the power of Copilot code review](/en/copilot/tutorials/customize-code-review)\n\n  Learn how to write effective custom instructions that help GitHub Copilot provide more relevant and actionable code reviews.\n\n* [Enhancing GitHub Copilot agent mode with MCP](/en/copilot/tutorials/enhance-agent-mode-with-mcp)\n\n  Learn how to use the Model Context Protocol (MCP) to expand the agentic capabilities of Copilot Chat.\n\n* [Comparing AI models using different tasks](/en/copilot/tutorials/compare-ai-models)\n\n  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.\n\n* [Speeding up development work with GitHub Copilot Spaces](/en/copilot/tutorials/speed-up-development-work)\n\n  Learn how to use Copilot Spaces to help you with development work.\n\n* [Setting up a self-serve process for GitHub Copilot licenses](/en/copilot/tutorials/roll-out-at-scale/assign-licenses/set-up-self-serve-licenses)\n\n  Learn how users can request a license and receive access immediately.\n\n* [Tracking license activation and initial usage with Copilot usage metrics](/en/copilot/tutorials/roll-out-at-scale/assign-licenses/track-usage-and-adoption)\n\n  Identify and act on GitHub Copilot adoption signals and activation with usage metrics.\n\n* [Reminding inactive users to use their GitHub Copilot license](/en/copilot/tutorials/roll-out-at-scale/assign-licenses/remind-inactive-users)\n\n  Use the GitHub API to identify inactive users and help them get started.\n\n* [Establishing AI managers in your enterprise](/en/copilot/tutorials/roll-out-at-scale/establish-ai-managers)\n\n  Reduce your administrative burden and empower your SMEs by creating a team of AI managers.\n\n* [Driving GitHub Copilot adoption in your company](/en/copilot/tutorials/roll-out-at-scale/enable-developers/drive-adoption)\n\n  Learn how to plan an effective enablement process to drive Copilot adoption.\n\n* [Integrating agentic AI into your enterprise's software development lifecycle](/en/copilot/tutorials/roll-out-at-scale/enable-developers/integrate-ai-agents)\n\n  See how agents can boost productivity across your enterprise.\n\n* [Increasing test coverage in your company with GitHub Copilot](/en/copilot/tutorials/roll-out-at-scale/drive-downstream-impact/increase-test-coverage)\n\n  Understand features, enable developers, and measure Copilot's impact.\n\n* [Accelerating pull requests in your company with GitHub Copilot](/en/copilot/tutorials/roll-out-at-scale/drive-downstream-impact/accelerate-pull-requests)\n\n  Understand features, enable developers, and measure Copilot's impact.\n\n* [Reducing security debt in your company with GitHub Copilot](/en/copilot/tutorials/roll-out-at-scale/drive-downstream-impact/reduce-security-debt)\n\n  Understand features, enable developers, and measure Copilot's impact.\n\n* [Measuring the success of a GitHub Copilot trial](/en/copilot/tutorials/roll-out-at-scale/measure-success)\n\n  Measure the success of a Copilot trial by analyzing adoption, engagement, and early usage patterns using Copilot usage metrics.\n\n* [Maintaining codebase standards in a GitHub Copilot rollout](/en/copilot/tutorials/roll-out-at-scale/maintain-codebase-standards)\n\n  Stay in control of your enterprise's code with rulesets, security features, and effective training.\n\n* [Using GitHub Copilot to explore a codebase](/en/copilot/tutorials/explore-a-codebase)\n\n  GitHub Copilot Chat can help you gain an understanding of the content, structure, and functionality of a codebase.\n\n* [Using GitHub Copilot to explore issues and discussions](/en/copilot/tutorials/explore-issues-and-discussions)\n\n  GitHub Copilot Chat can help you quickly gain context of lengthy discussions and issues.\n\n* [Using GitHub Copilot to explore pull requests](/en/copilot/tutorials/explore-pull-requests)\n\n  GitHub Copilot Chat can help you understand the content, functionality, and status of a pull request.\n\n* [Writing tests with GitHub Copilot](/en/copilot/tutorials/write-tests)\n\n  Use Copilot to generate unit and integration tests, and help improve code quality.\n\n* [Refactoring code with GitHub Copilot](/en/copilot/tutorials/refactor-code)\n\n  Leverage Copilot artificial intelligence to help you refactor your code quickly and effectively.\n\n* [Build an optimized review process with Copilot](/en/copilot/tutorials/optimize-code-reviews)\n\n  Automate reviews with Copilot to optimize and improve your review process.\n\n* [Using GitHub Copilot to reduce technical debt](/en/copilot/tutorials/reduce-technical-debt)\n\n  Use Copilot to automate refactoring and maintenance tasks, freeing your team to focus on feature development.\n\n* [Review AI-generated code](/en/copilot/tutorials/review-ai-generated-code)\n\n  Learn techniques to verify and validate AI-generated code, and how Copilot Chat can help.\n\n* [Learning a new programming language with GitHub Copilot](/en/copilot/tutorials/learn-a-new-language)\n\n  GitHub Copilot Chat can help you extend your programming skills by learning how to code in a new programming language.\n\n* [Modernizing legacy code with GitHub Copilot](/en/copilot/tutorials/modernize-legacy-code)\n\n  Copilot Chat helps modernize legacy code by suggesting refactors and creating tests to catch potential issues.\n\n* [Modernizing Java applications with GitHub Copilot](/en/copilot/tutorials/modernize-java-applications)\n\n  GitHub Copilot can help modernize and migrate Java applications by assessing your codebase, identifying upgrade paths, and automating remediation and containerization tasks.\n\n* [Using GitHub Copilot to migrate a project to another programming language](/en/copilot/tutorials/migrate-a-project)\n\n  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.\n\n* [Planning a project with GitHub Copilot](/en/copilot/tutorials/plan-a-project)\n\n  Plan your next project by using GitHub Copilot to turn your ideas into issues.\n\n* [Vibe coding with GitHub Copilot](/en/copilot/tutorials/vibe-coding)\n\n  Create an application without writing any code yourself.\n\n* [Upgrading projects with GitHub Copilot](/en/copilot/tutorials/upgrade-projects)\n\n  You can use GitHub Copilot to upgrade your Maven and Gradle Java applications and .NET applications.\n\n* [Using hooks with Copilot CLI for predictable, policy-compliant execution](/en/copilot/tutorials/copilot-cli-hooks)\n\n  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."}