12 промтов для GitHub Copilot: от коммитов до code review

В июле 2026 года GitHub Copilot остаётся одним из самых востребованных AI-инструментов для разработчиков. Согласно отчёту GitHub Octoverse 2025, более 1,5 миллионов разработчиков ежедневно используют Copilot для ускорения написания кода, но лишь немногие применяют его для задач, выходящих за рамки автодополнения: генерации сообщений коммитов, объяснения legacy-кода и проведения code review. Эта подборка — не просто список промтов, а система из 12 готовых к использованию шаблонов, которые превратят Copilot из рядового помощника в полноценного члена команды.

Каждый промт проверен на Copilot Chat (версия 1.96.0, модель GPT-4o) и Copilot в редакторах VS Code 1.92, JetBrains IntelliJ IDEA 2025.2. Для новичков: промт (prompt) — это инструкция на естественном языке, которая задаёт задачу AI. Все примеры — с реальными фрагментами кода на JavaScript, Python и TypeScript, чтобы вы могли сразу скопировать и адаптировать.

1. Промт для генерации осмысленных сообщений коммитов

Задача: Создать информативное сообщение коммита по правилам Conventional Commits.

Промт:

Сгенерируй сообщение коммита в формате Conventional Commits (тип: feat, fix, chore, refactor, docs, test, style). Учти изменения из файла ниже. Используй английский язык. Пример: feat: add user authentication endpoint.

[вставьте diff или код файла]

Пример использования:
Допустим, вы изменили файл auth.js, добавив проверку JWT-токена. Copilot вернёт:

feat: add JWT token validation in auth middleware

Почему это работает: Copilot анализирует diff и выделяет ключевые изменения (добавление, удаление, модификацию). По данным исследования GitHub Blog (2024), команды, использующие Conventional Commits, на 22% реже сталкиваются с конфликтами при merge (источник: “How to write better commit messages”, GitHub Blog, 2024).

2. Промт для генерации документации функции

Задача: Автоматически описать функцию в формате JSDoc или Docstring.

Промт:

Напиши документацию для следующей функции в формате JSDoc. Включи описание параметров, возвращаемого значения и пример использования. Язык: русский.

[вставьте код функции]

Пример:
Код:

function calculateDiscount(price, discountPercent) {
  return price * (1 - discountPercent / 100);
}

Copilot сгенерирует:

/**
 * Вычисляет цену со скидкой.
 * @param {number} price - Исходная цена.
 * @param {number} discountPercent - Процент скидки (от 0 до 100).
 * @returns {number} Цена после применения скидки.
 * @example
 * // Возвращает 80
 * calculateDiscount(100, 20);
 */

3. Промт для написания unit-тестов

Задача: Создать тесты для указанной функции с использованием Jest или pytest.

Промт:

Напиши unit-тесты для следующей функции на Jest. Покрой основные сценарии: успешный ввод, граничные случаи, обработка ошибок. Укажи моки, если необходимо.

[вставьте код функции]

Пример:
Функция divide(a, b) возвращает a/b. Copilot предложит:

test('divides 6 by 3 to equal 2', () => {
  expect(divide(6, 3)).toBe(2);
});
test('throws error when dividing by zero', () => {
  expect(() => divide(6, 0)).toThrow('Cannot divide by zero');
});

4. Промт для объяснения сложного кода

Задача: Разобрать legacy-код, чтобы понять его логику.

Промт:

Объясни, что делает этот код, строка за строкой. Используй аналогии из реальной жизни. Язык: русский.

[вставьте код]

Пример:
Для кода на Python с рекурсией:

def factorial(n):
    if n == 0:
        return 1
    return n * factorial(n-1)

Copilot ответит: “Функция вычисляет факториал числа n. Если n равно 0, возвращает 1 (базовый случай). Иначе умножает n на факториал n-1 — это рекурсия, как матрёшка: каждая следующая меньше предыдущей.”

5. Промт для рефакторинга кода

Задача: Улучшить читаемость и производительность без изменения логики.

Промт:

Выполни рефакторинг этого кода. Раздели на более мелкие функции, используй современные синтаксические конструкции (ES6+ для JS). Сохрани ту же логику.

[вставьте код]

Пример:
Старый код:

function process(items) {
  let result = [];
  for (let i = 0; i < items.length; i++) {
    if (items[i].active) {
      result.push(items[i].name.toUpperCase());
    }
  }
  return result;
}

Copilot предложит:

const process = (items) =>
  items.filter(item => item.active).map(item => item.name.toUpperCase());

6. Промт для code review с фокусом на безопасность

Задача: Найти уязвимости в коде (SQL-инъекции, XSS, утечки данных).

Промт:

Проведи code review этого кода с точки зрения безопасности. Найди потенциальные уязвимости: SQL-инъекции, XSS, небезопасное хранение данных, недостаток валидации. Для каждой уязвимости предложи исправление.

[вставьте код]

Пример:
Код с прямым SQL-запросом:

app.get('/user', (req, res) => {
  const query = `SELECT * FROM users WHERE id = ${req.query.id}`;
  db.execute(query);
});

Copilot укажет: “Уязвимость SQL-инъекция: параметр req.query.id не экранирован. Используйте параметризованный запрос: db.execute('SELECT * FROM users WHERE id = ?', [req.query.id]).”

7. Промт для code review с фокусом на производительность

Задача: Выявить узкие места и предложить оптимизацию.

Промт:

Проанализируй этот код на предмет узких мест производительности. Оцени временную сложность (Big O). Предложи оптимизацию для снижения сложности или уменьшения потребления памяти.

[вставьте код]

Пример:
Вложенный цикл:

for i in range(len(arr)):
    for j in range(len(arr)):
        if i != j and arr[i] == arr[j]:
            print(arr[i])

Copilot укажет: “Сложность O(n^2). Замените на set: seen = set(); for x in arr: if x in seen: print(x); else: seen.add(x). Сложность станет O(n).”

8. Промт для перевода кода с одного языка на другой

Задача: Конвертировать код с Python на JavaScript или с Java на TypeScript.

Промт:

Переведи этот код с Python на современный JavaScript (ES2024). Сохрани ту же логику и прокомментируй ключевые изменения.

[вставьте код на Python]

Пример:
Python:

def greet(name):
    return f"Hello, {name}!"

Copilot вернёт:

const greet = (name) => `Hello, ${name}!`;

9. Промт для создания регулярного выражения

Задача: Сгенерировать regex для парсинга данных (email, URL, телефон).

Промт:

Создай регулярное выражение для валидации email-адреса. Учти: точка перед доменом, символ @, домен верхнего уровня (2-6 букв). Верни выражение в виде строки для JavaScript.

Результат:

/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/

10. Промт для генерации SQL-запросов

Задача: Написать SQL-запрос на основе описания структуры БД.

Промт:

У меня есть таблицы: users (id, name, email, created_at), orders (id, user_id, total, status). Напиши SQL-запрос, который выводит имена пользователей с суммой их заказов, где статус 'completed'. Сортировка по убыванию суммы.

Результат:

SELECT u.name, SUM(o.total) AS total_sum
FROM users u
JOIN orders o ON u.id = o.user_id
WHERE o.status = 'completed'
GROUP BY u.id
ORDER BY total_sum DESC;

11. Промт для генерации конфигурации CI/CD

Задача: Создать YAML-файл для GitHub Actions, GitLab CI или Jenkins.

Промт:

Создай конфигурацию GitHub Actions для Node.js проекта. Включи: запуск тестов (npm test), линтинг (npm run lint), сборку (npm run build). Используй Node 20.

Пример результата:

name: Node.js CI
on: [push, pull_request]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
      - run: npm ci
      - run: npm run lint
      - run: npm test
      - run: npm run build

12. Промт для написания Dockerfile

Задача: Автоматически сгенерировать многоэтапную сборку Docker-образа.

Промт:

Напиши многоэтапный Dockerfile для Python-приложения с Flask. Первый этап: установка зависимостей из requirements.txt. Второй этап: копирование зависимостей и запуск приложения на порту 5000. Используй образ python:3.12-slim.

Результат:

# Stage 1: Build
FROM python:3.12-slim AS builder
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# Stage 2: Run
FROM python:3.12-slim
WORKDIR /app
COPY --from=builder /usr/local/lib/python3.12/site-packages /usr/local/lib/python3.12/site-packages
COPY . .
EXPOSE 5000
CMD ["python", "app.py"]

Заключение

Эти 12 промтов — ваш стартовый набор для эффективной работы с GitHub Copilot. Начните с одного-двух самых актуальных (например, для code review или коммитов), адаптируйте под свой стек и язык, и вы заметите, как сокращается время на рутинные задачи. Помните: качество ответа Copilot напрямую зависит от конкретики промта — чем точнее вы опишете контекст, тем релевантнее будет результат. Попробуйте прямо сейчас: откройте Copilot Chat в VS Code, скопируйте промт из подборки и вставьте свой код. Удачного кодинга!

← Все статьи

Комментарии