Skip to content

Latest commit

 

History

History
183 lines (132 loc) · 6.19 KB

File metadata and controls

183 lines (132 loc) · 6.19 KB

Contributing to GitHub Copilot Lab

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.

🎯 Purpose and Scope

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.

🛤️ Multi-Track Approach

The repository currently supports three programming language tracks:

  • TypeScript (/Typescript)
  • .NET (/dotNet)
  • C++ (/cpp)

Single-Track Contribution Strategy

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.

🤝 How to Contribute

1. Opening Issues

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)

2. Types of Contributions

We welcome various types of contributions:

🔧 Bug Fixes

  • Fix incorrect instructions in CodeTour
  • Correct code examples that don't work as intended
  • Resolve broken links or references

New Features

  • Add demonstrations of new GitHub Copilot features
  • Create new learning exercises or challenges
  • Improve existing CodeTour content

📚 Documentation

  • Enhance README files
  • Improve setup instructions
  • Add troubleshooting guides

🎨 User Experience

  • Improve workspace configurations
  • Better VS Code extension recommendations
  • Enhanced learning flow

3. Getting Started

  1. Fork the repository
  2. Clone your fork locally
  3. Choose a track to work with (TypeScript, .NET, or C++)
  4. Open the relevant workspace (.code-workspace file)
  5. Install recommended extensions when prompted
  6. Test the current experience by running the CodeTour

4. Development Guidelines

Code Style

  • 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

CodeTour Content

  • 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

Context Considerations

  • 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

5. Pull Request Process

  1. Create a feature branch from main

    git checkout -b feature/your-feature-name
  2. Make your changes in your chosen track

    • Focus on one track only
    • Ensure all code examples work
    • Test the complete learning experience
  3. Write clear commit messages

    Add GitHub Copilot workspace customization demo
    
    - Demonstrate custom instructions usage
    - Show context optimization techniques
    - Include TypeScript examples for workspace setup
    
  4. Submit your pull request

    • Use a descriptive title
    • Explain what GitHub Copilot features you're showcasing
    • Include testing instructions
    • Reference any related issues
  5. Respond to feedback and make requested changes

🧪 Testing Your Contributions

Before submitting:

  1. Complete the CodeTour from start to finish
  2. Test all code examples in the relevant VS Code workspace
  3. Verify GitHub Copilot interactions work as expected
  4. Check that learning objectives are met
  5. Ensure no broken links or references

📋 Content Guidelines

Educational Focus

  • 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

Quality Standards

  • 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

🌟 Recognition

Contributors will be recognized in:

  • GitHub commit history
  • Special thanks in release notes
  • Community highlights

🆘 Getting Help

  • 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

📜 Code of Conduct

This project follows Microsoft's Open Source Code of Conduct. Be respectful, inclusive, and constructive in all interactions.

📄 License

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! 🤖✨