Customizing Copilot

Software Development with GitHub Copilot

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Software Development with GitHub Copilot

Software Development with GitHub Copilot

Software Development with GitHub Copilot

Software Development with GitHub Copilot

How custom instructions work

$$

Define:

  • Coding conventions
  • Tool preferences
  • Project context

Software Development with GitHub Copilot

How custom instructions work

$$

Define:

  • Coding conventions
  • Tool preferences
  • Project context

Software Development with GitHub Copilot

How to define custom instructions

Include them in: .github/copilot-instructions.md

## Project context
Python project for processing data pipelines with Airflow.

## Coding style - Use type hints for all functions
- Follow PEP8
- Use snake_case naming
- Write Google-style docstrings
## Testing - Use pytest
- Include one test per function
## More instructions...
Software Development with GitHub Copilot

What makes an effective instruction

$$

✅ Effective instructions:

  • Short and specific
  • Self-contained
  • Add context or relevant information

$$

❌ Ineffective instructions:

  • External documents or repositories
  • Specific tone or writing style
  • Limit on detail or formatting
1 https://docs.github.com/en/copilot/how-tos/configure-custom-instructions/add-repository-instructions
Software Development with GitHub Copilot

$$

$$

## Style guidelines

- Conform to the coding styles defined 
in styleguide.md in repo my-org/my-repo

- Answer in the style of a friendly 
colleague, using informal language

- Answer in fewer than 1,000 characters

Software Development with GitHub Copilot

$$

$$

## Style guidelines

- Conform to the coding styles defined 
in styleguide.md in repo my-org/my-repo

- Answer in the style of a friendly 
colleague, using informal language

- Answer in fewer than 1,000 characters

Software Development with GitHub Copilot

How to enable custom instructions

  • Save the copilot-instructions.md file
  • It will be automatically included in your prompts

Software Development with GitHub Copilot

How to enable custom instructions

  • Save the copilot-instructions.md file
  • It will be automatically included in your prompts

Software Development with GitHub Copilot

Using multiple instruction files

Software Development with GitHub Copilot

Using multiple instruction files

Software Development with GitHub Copilot

Using multiple instruction files

$$

Software Development with GitHub Copilot

Setting organization-level instructions

$$

Software Development with GitHub Copilot

Setting organization-level instructions

$$

Examples of company-wide rules:

  • Use internal tools
  • Enforce specific libraries
  • Apply consistent style
  • Warn on deprecated patterns
Software Development with GitHub Copilot

Multi-level instructions priority

$$

$$

$$

Scope Priority
Personal instructions Highest
Project instructions Medium
Organization instructions Lowest
Software Development with GitHub Copilot

$$

Example prompt: "Write a function that calculates the average of a list of numbers."

def calculate_average(numbers: List[float]) -> float:
    """Calculate the average of a list of numbers.

    Args:
        numbers (List[float]): A list of numbers to average.

    Returns:
        float: The average value of the numbers.

    Raises:
        ValueError: If the list is empty.
    """
    if not numbers:
        raise ValueError("The list of numbers cannot be empty.")
    return sum(numbers) / len(numbers)
Software Development with GitHub Copilot

$$

Example prompt: "Write a function that calculates the average of a list of numbers."

def calculate_average(numbers: List[float]) -> float:
    """Calculate the average of a list of numbers.

    Args:
        numbers (List[float]): A list of numbers to average.

    Returns:
        float: The average value of the numbers.

    Raises:
        ValueError: If the list is empty.
    """
    if not numbers:
        raise ValueError("The numbers list cannot be empty.")
    return sum(numbers) / len(numbers)

$$

Software Development with GitHub Copilot

Let's practice!

Software Development with GitHub Copilot

Preparing Video For Download...