Thank you for your interest in contributing to the GitHub Copilot Lab! 🚀
This repository is designed to showcase the latest features of GitHub Copilot through hands-on learning experiences. We welcome contributions that help demonstrate GitHub Copilot capabilities and improve the learning experience for developers.
The GitHub Copilot Lab is an educational repository that teaches developers how to:
- Effectively use GitHub Copilot's different modes (chat, inline chat, completions)
- Leverage context, aliases, and slash commands
- Optimize their coding workflow with AI assistance
- Understand when and how to use different GitHub Copilot features
All contributions should align with this educational mission and demonstrate GitHub Copilot's capabilities.
The repository currently supports three programming language tracks:
- TypeScript (
/Typescript) - .NET (
/dotNet) - C++ (
/cpp)
To maximize efficiency and reduce maintenance overhead:
You can contribute content to just ONE track - the GitHub Copilot Coding Agent will later convert your content to the other tracks automatically. This approach:
- Reduces duplication of effort
- Ensures consistency across tracks
- Leverages AI to maintain up-to-date content
- Allows focus on quality over quantity
Choose the track you're most comfortable with, and don't worry about implementing the same feature across all languages.
We strongly encourage you to open issues for anything you see that needs improvement! Issues help us:
- Track feature requests and improvements
- Discuss new GitHub Copilot features to showcase
- Plan content updates and enhancements
- Coordinate community efforts
When opening an issue, please:
- Use descriptive titles
- Explain the problem or enhancement clearly
- Mention which track(s) are affected
- Include steps to reproduce (for bugs)
- Suggest implementation approaches (for features)
We welcome various types of contributions:
- Fix incorrect instructions in CodeTour
- Correct code examples that don't work as intended
- Resolve broken links or references
- Add demonstrations of new GitHub Copilot features
- Create new learning exercises or challenges
- Improve existing CodeTour content
- Enhance README files
- Improve setup instructions
- Add troubleshooting guides
- Improve workspace configurations
- Better VS Code extension recommendations
- Enhanced learning flow
- Fork the repository
- Clone your fork locally
- Choose a track to work with (TypeScript, .NET, or C++)
- Open the relevant workspace (
.code-workspacefile) - Install recommended extensions when prompted
- Test the current experience by running the CodeTour
- Follow the existing coding conventions in each track
- Ensure code examples are clear and educational
- Add comments where they help explain GitHub Copilot concepts
- Test all code examples to ensure they work
- Keep tour steps focused and digestible
- Include clear instructions for GitHub Copilot interactions
- Explain the "why" behind each GitHub Copilot feature
- Test the entire tour flow before submitting
- Remember that CodeTour content is intentionally outside GitHub Copilot context
- Design exercises that highlight how context affects GitHub Copilot suggestions
- Include examples of both good and improved context usage
-
Create a feature branch from
maingit checkout -b feature/your-feature-name
-
Make your changes in your chosen track
- Focus on one track only
- Ensure all code examples work
- Test the complete learning experience
-
Write clear commit messages
Add GitHub Copilot workspace customization demo - Demonstrate custom instructions usage - Show context optimization techniques - Include TypeScript examples for workspace setup -
Submit your pull request
- Use a descriptive title
- Explain what GitHub Copilot features you're showcasing
- Include testing instructions
- Reference any related issues
-
Respond to feedback and make requested changes
Before submitting:
- Complete the CodeTour from start to finish
- Test all code examples in the relevant VS Code workspace
- Verify GitHub Copilot interactions work as expected
- Check that learning objectives are met
- Ensure no broken links or references
- Each contribution should teach something specific about GitHub Copilot
- Include clear learning objectives
- Provide context for why certain techniques work better
- Show both basic and advanced usage patterns
- All code must be functional and tested
- Instructions should be clear and unambiguous
- Examples should be realistic and relevant
- Content should be accessible to developers of varying experience levels
Contributors will be recognized in:
- GitHub commit history
- Special thanks in release notes
- Community highlights
- Questions about GitHub Copilot features: Open a discussion
- Technical issues: Create an issue with detailed steps to reproduce
- General feedback: Reach out to @Yomanor or open an issue
This project follows Microsoft's Open Source Code of Conduct. Be respectful, inclusive, and constructive in all interactions.
By contributing, you agree that your contributions will be licensed under the same license as the project (MIT License).
Ready to contribute? Start by exploring the existing content, opening an issue for discussion, or jumping right into improving one of the tracks!
Remember: Focus on showcasing GitHub Copilot's capabilities, and don't worry about implementing across all tracks - the AI will help with that! 🤖✨