Дякуємо за ваш інтерес до внеску у проєкт CiWiki! 🎉
CiWiki є центральним репозиторієм документації та єдиним джерелом правил для всієї екосистеми Cimeika. Ваш внесок допомагає покращити документацію для всіх.
- Кодекс поведінки
- З чого почати
- Процес внесення змін
- Стандарти коду
- Процес Pull Request
- Звітування про помилки
- Пропозиції покращень
Цей проєкт дотримується Кодексу поведінки учасників. Беручи участь, ви погоджуєтесь дотримуватися його умов.
-
Ознайомтесь з документацією
- Прочитайте README.md
- Вивчіть COPILOT_CANON.md — основні правила роботи
- Перегляньте процеси для розуміння робочих процедур
-
Налаштуйте локальне середовище
# Клонуйте репозиторій git clone https://github.com/Ihorog/ciwiki.git cd ciwiki # Встановіть залежності pip install -r requirements.txt npm install # Запустіть локальний сервер документації mkdocs serve
-
Знайдіть задачу
- Перегляньте Issues
- Шукайте мітки
good first issueабоhelp wanted - Задайте питання в issue перед початком роботи
Перед початком роботи створіть або знайдіть відповідний Issue, щоб:
- Обговорити запропоновані зміни
- Уникнути дублювання роботи
- Отримати зворотний зв'язок від мейнтейнерів
# Fork репозиторій через GitHub UI
# Клонуйте ваш fork
git clone https://github.com/YOUR-USERNAME/ciwiki.git
cd ciwiki
# Додайте upstream remote
git remote add upstream https://github.com/Ihorog/ciwiki.git
# Створіть гілку для вашої роботи
git checkout -b feature/your-feature-nameВажливі принципи:
- ✅ Мінімальні зміни: Змінюйте тільки те, що необхідно
- ✅ Антиповторення: Автоматизуйте повторювані дії
- ✅ Без секретів: Ніколи не комітьте credentials або ключі
- ✅ Документація: Оновлюйте документацію разом з кодом
# Перевірте документацію локально
mkdocs serve
# Запустіть тести (якщо є)
npm test
python -m pytest
# Перевірте лінтинг
npm run lintДотримуйтесь конвенцій комітів:
# Хороші приклади
git commit -m "docs: оновити інструкції встановлення"
git commit -m "fix: виправити broken link у README"
git commit -m "feat: додати шаблон для bug reports"
# Поганий приклад
git commit -m "updates"
git commit -m "WIP"# Синхронізуйте з upstream
git fetch upstream
git rebase upstream/main
# Push до вашого fork
git push origin feature/your-feature-nameСтворіть Pull Request через GitHub UI.
- Використовуйте чіткі, зрозумілі заголовки
- Додавайте приклади коду де можливо
- Перевіряйте орфографію та граматику
- Використовуйте консистентне форматування
# Використовуйте type hints
def process_data(input: str) -> dict:
"""Обробляє вхідні дані та повертає результат."""
return {"result": input}
# Дотримуйтесь PEP 8
# Додавайте docstrings// Використовуйте const/let замість var
const config = {...};
// Додавайте JSDoc коментарі
/**
* Обробляє конфігурацію
* @param {Object} config - Об'єкт конфігурації
* @returns {Object} Оброблена конфігурація
*/
function processConfig(config) {
return config;
}Використовуйте шаблон PR. Кожен PR повинен містити:
- Summary: Що змінено та чому
- Scope: Які файли/компоненти змінено
- Checklist: Всі обов'язкові перевірки виконані
- Notes: Ризики та план відкату
PR буде змерджено якщо:
- ✅ Всі тести пройшли
- ✅ CI/CD перевірки успішні
- ✅ Код review пройдено
- ✅ Документація оновлена
- ✅ Немає конфліктів з main
- ✅ Дотримується принцип мінімальних змін
-
Автоматичні перевірки (CI/CD)
- Лінтинг
- Тести
- Security scanning (CodeQL, Secret Scanning)
- Documentation build
-
Code Review
- Мінімум 1 затвердження від мейнтейнера
- Всі коментарі розглянуті
- Conversation resolved
-
Merge
- Merge до
mainпісля затвердження - Автоматичний deploy документації
- Merge до
- Переконайтесь що issue ще не створений
- Перевірте чи це не питання документації
- Спробуйте відтворити проблему
Використовуйте Bug Report template та включіть:
- Опис: Чіткий опис проблеми
- Кроки відтворення: Як відтворити баг
- Очікувана поведінка: Що має працювати
- Фактична поведінка: Що відбувається насправді
- Середовище: ОС, версія браузера, тощо
- Скріншоти: Якщо застосовно
Використовуйте Feature Request template:
- Проблема: Яку проблему розв'язує feature
- Рішення: Запропоноване рішення
- Альтернативи: Інші розглянуті варіанти
- Додатковий контекст: Приклади, use cases
Документація завжди може бути кращою! Якщо ви знайшли:
- Неточності або застарілу інформацію
- Граматичні помилки
- Відсутню документацію
- Broken links
Створіть issue або відразу PR з виправленням.
НЕ створюйте публічні issues для вразливостей безпеки.
Дотримуйтесь Security Policy:
- Використовуйте GitHub Security Advisory
- Або повідомте через email
- Включіть детальну інформацію про вразливість
Перед кожним commit:
- ✅ Перевірте Security Checklist
- ✅ Запустіть
npm auditтаpip-audit - ✅ Переконайтесь що немає секретів в коді
- ✅ Дотримуйтесь Copilot Guard Policy
- 📋 Security Checklist - Детальний checklist
- 🔒 Security Policy - Політика безпеки
- 🛡️ Copilot Guard - Захист від витоку секретів
- 📚 Secrets Management - Управління credentials
- 📖 Перевірте документацію
- 💬 Створіть Discussion
- 🐛 Створіть Issue
Роблячи внесок до цього репозиторію, ви погоджуєтесь що ваш внесок буде ліцензований згідно з MIT License проєкту.
Дякуємо всім, хто вносить внесок до CiWiki! 💙💛
Ваші зусилля роблять цю документацію кращою для всієї спільноти Cimeika.
Пам'ятайте: Якщо у вас є питання, не соромтесь запитувати. Ми тут, щоб допомогти! 🚀