GitHub Issues — встроенный трекер задач в каждом репозитории. Здесь обсуждают баги, предлагают функции и координируют работу команды.
Что такое Issue
Issue (задача) — это тред обсуждения привязанный к репозиторию. Это может быть:
- 🐛 Баг — «кнопка входа не работает на мобильных»
- 💡 Идея — «хочу видеть тёмную тему»
- ❓ Вопрос — «как правильно настроить переменные окружения?»
- 📋 Задача — «нужно добавить маршрут для Казани»
- 🚀 Улучшение — «форма регистрации работает слишком медленно»
Как найти Issues
Перейдите на любой репозиторий → вкладка Issues.
Фильтры
is:open — открытые (в работе)
is:closed — закрытые (решённые)
label:bug — только баги
label:help-wanted — ищут помощников
label:good-first-issue — хорошие задачи для начинающих ← ваш вариант!
author:username — Issues конкретного пользователя
Как создать Issue
Когда нашли баг
- Откройте вкладку Issues → New issue
- Напишите понятный заголовок:
Кнопка входа не работает на iOS - В описании укажите:
## Что происходит
При нажатии на кнопку "Войти" на iPhone ничего не происходит.
## Как воспроизвести
1. Открыть сайт на iPhone (iOS 17.2)
2. Нажать "Войти"
3. Ничего не происходит, страница не меняется
## Ожидаемое поведение
Переход на страницу входа или открытие формы.
## Среда
- Устройство: iPhone 13
- Браузер: Safari 17
- Версия приложения: 2.3.1
Когда хотите предложить улучшение
## Идея
Добавить поддержку тёмной темы.
## Зачем
30% пользователей используют тёмную тему в системе,
наш сайт не поддерживает её и выглядит некомфортно.
## Предложение
Использовать CSS `prefers-color-scheme` для автоопределения
и добавить ручное переключение в настройках.
Как взять Issue в работу (Open Source)
Шаг 1: Найдите подходящую задачу
Ищите Issues с метками:
- good-first-issue — специально для новичков
- help-wanted — команда ищет помощников
- beginner-friendly — дружелюбные задачи
Шаг 2: Напишите что берётесь
Прежде чем начать — оставьте комментарий:
Привет! Хочу взять эту задачу. Планирую сделать к концу недели.
Правильно ли я понимаю что нужно добавить маршрут для [город]?
Это важно потому что:
- Вы не тратите время если задача уже делается
- Команда знает что задача в работе
- Мейнтейнер может дать уточнения
Шаг 3: Сделайте и создайте PR
В описании PR сошлитесь на Issue:
Closes #42
При merge PR это автоматически закроет Issue #42.
Ключевые слова для закрытия Issue
В описании PR или комментарии можно написать:
Closes #42
Fixes #42
Resolves #42
GitHub автоматически закроет Issue когда PR будет смёрджен в main.
Лейблы (Labels)
Лейблы — цветные теги для классификации Issues:
| Лейбл | Значение |
|---|---|
bug |
Что-то работает неправильно |
enhancement |
Новая функция или улучшение |
documentation |
Нужна документация |
good first issue |
Хорошо для новичков |
help wanted |
Команда ищет помощника |
question |
Вопрос, не задача |
wontfix |
Не будет исправлено (намеренно) |
duplicate |
Такое Issue уже есть |
Назначение (Assignees)
Assignee — человек ответственный за решение Issue.
В командном проекте: тимлид назначает Issues конкретным разработчикам.
В Open Source: вы можете попросить назначить Issue вам, или мейнтейнер сделает это сам.
Milestones (Вехи)
Milestone — группа Issues объединённых общей целью или дедлайном:
Milestone: v2.0 (deadline: 1 июня)
├── Issue #41: Тёмная тема
├── Issue #42: Мобильная версия
└── Issue #43: API документация
Помогает видеть прогресс к релизу.
Связь Issues и Projects
GitHub Projects — доска задач (как Trello) прямо в GitHub.
Issues автоматически появляются на доске.
Backlog → In Progress → Review → Done
#41 #42 #43 #44
Этикет в Issues
Поиск перед созданием
Проверьте что такого Issue ещё нет. Дубли — частая проблема в популярных проектах.
Issues → фильтр → введите ключевые слова
Один Issue = одна проблема
❌ Плохо: "баги в мобильной версии и неудобная навигация и..."
✅ Хорошо:
Issue #50: кнопка входа не работает на iOS
Issue #51: неудобная навигация на мобильных
Будьте вежливы
Мейнтейнеры — часто волонтёры которые занимаются проектом в свободное время.
❌ "Почему это до сих пор не исправлено?! Это сломано уже год!"
✅ "Привет! Столкнулся с этим багом, хотел уточнить — это известная проблема?
Готов помочь с исправлением если подскажете где смотреть."
Issues в командном проекте
В закрытом командном проекте Issues — это ваш task tracker:
- Тимлид создаёт Issues для каждой задачи
- Назначает Issues разработчикам
- Разработчики создают ветки и PR ссылающиеся на Issues
- PR смёрджен → Issue закрывается автоматически
Это создаёт полную трассируемость: из Issue видно какой PR решил задачу,
из PR видно какую задачу он решал.
💬 Comments (0)
No comments yet
Be the first to share your opinion about this article!