GitHub — це найбільша веб-платформа для хостингу Git-репозиторіїв, спільної розробки та автоматизації процесів, що належить Microsoft. Вона надає не лише зберігання коду з контролем версій, але й повний набір інструментів для управління проєктами: Issue Tracking, Pull Request з код-рев'ю, Actions для CI/CD та Wiki для документації. За даними GitHub, 2024, платформа налічує понад 100 мільйонів розробників та 420 мільйонів репозиторіїв.
Головне
GitHub — це веб-сервіс для зберігання та спільної роботи над Git-репозиторіями, заснований у 2008 році Томом Престоном-Вернером, Крісом Ванстратом та Пі Джеєм Хайеттом. У 2018 році компанію придбала Microsoft за 7,5 мільярда доларів. Платформа надає веб-інтерфейс для всіх операцій Git, додаючи поверх нього соціальні функції: форки, зірки, підписки, код-рев'ю та вбудовану систему безперервної інтеграції.
Ключова відмінність GitHub від конкурентів — відкрита екосистема та найбільша спільнота розробників. На GitHub розміщені вихідні коди Android, Kubernetes, React, Swift, Kotlin та тисяч інших open-source проєктів. Це робить платформу не лише інструментом зберігання коду, але й соціальною мережею для розробників: можна слідкувати за проєктами, обговорювати зміни та вносити свій внесок через pull request.
За даними звіту Microsoft (2024), через GitHub щодня проходить понад 10 мільйонів нових Pull Request, а кількість щомісячних активних користувачів перевищила 100 мільйонів. Платформа підтримує понад 500 мов програмування, автоматичне виявлення мови за розширенням файлів та підсвічування синтаксису коду.
Функціонал GitHub виходить далеко за рамки простого хостингу Git. Платформа надає: GitHub Actions — вбудовану систему CI/CD; GitHub Packages — реєстр пакетів та контейнерів; GitHub Codespaces — хмарні середовища розробки на базі VS Code; GitHub Discussions — форум для спільноти; GitHub Security — Dependabot для автоматичного оновлення залежностей та сканування вразливостей; GitHub Copilot — AI-асистент для написання коду.
Для організацій GitHub пропонує GitHub Enterprise — корпоративну версію з самописним хостингом (GitHub Enterprise Server) або хмарним розгортанням (GitHub Enterprise Cloud). Корпоративні функції включають SAML/SSO-аутентифікацію, аудит дій, політики безпеки репозиторіїв та SLA на 99,95% доступності. Enterprise-версія використовується такими компаніями, як Google, Apple та Airbnb.
Важлива особливість GitHub — GitHub CLI (gh), який дозволяє виконувати всі операції з платформою з командного рядка без використання веб-інтерфейсу. За допомогою gh можна створювати репозиторії, керувати Issues, переглядати Pull Request та запускати Actions прямо з терміналу, що прискорює роботу розробників, звиклих до командного рядка.
| Функція | Призначення | Доступність |
|---|---|---|
| Actions | CI/CD та автоматизація | Безкоштовно 2000 хв/міс |
| Codespaces | Хмарна IDE на базі VS Code | Платно, 60 год/міс безкоштовно |
| Packages | Хостинг пакетів та Docker-образів | Безкоштовно 500 MB |
| Dependabot | Автоматичне оновлення залежностей | Безкоштовно для публічних репо |
| Pages | Хостинг статичних сайтів | Безкоштовно |
Pull Request (PR) — це основний механізм внесення змін до проєкту на GitHub. Розробник створює гілку зі змінами, публікує її на GitHub та надсилає запит на злиття (Pull Request) в основну гілку. Інші учасники проєкту бачать різницю (diff) між гілками, можуть залишати коментарі до конкретних рядків коду, пропонувати зміни та затверджувати або відхиляти запит.
Процес код-рев'ю на GitHub побудований навколо PR. Кожен коментар прив'язується до конкретного рядка diff і може бути трьох типів: Comment (звичайний коментар), Request Changes (вимагає виправлень) та Approve (схвалення). Після внесення змін автор оновлює PR новим комітом, і процес рев'ю повторюється. Коли всі зауваження усунено та PR затверджено, зміни зливаються в цільову гілку.
# Створення feature-гілки та пуша
git checkout -b fix-login-bug
git add src/
git commit -m "Fix login validation error"
git push -u origin fix-login-bug
# Створення PR через CLI
gh pr create --base main --title "Fix login validation" \
--body "Fixed edge case with empty email field"
# Перегляд та merge PR
gh pr review --approve fix-login-bug
gh pr merge --squash fix-login-bug
GitHub підтримує захист гілок (branch protection rules): можна заборонити прямий push у main, вимагати обов'язкову кількість схвалень перед merge, запускати Actions-перевірки та вимагати актуальність гілки перед злиттям. Захист гілок налаштовується в Settings → Branches і є обов'язковою практикою для production-проєктів, що запобігає випадковому внесенню нестабільного коду в основну гілку.
GitHub Actions — це вбудована платформа CI/CD, яка дозволяє автоматизувати робочі процеси прямо в репозиторії. Workflow описується в YAML-файлах, розташованих у директорії .github/workflows/. Кожен workflow складається з одного або декількох job, які виконуються на раннерах — віртуальних машинах з Linux, Windows або macOS.
Actions підтримує подійно-орієнтовану модель: workflow запускається при push, створенні PR, публікації релізу, за розкладом або через webhook. Це дозволяє автоматизувати збірку, прогін тестів, статичний аналіз коду, публікацію в магазини застосунків та деплой на сервер без участі розробника. Нижче наведено приклад workflow для Android-проєкту:
name: Android CI
on:
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
- name: Build with Gradle
run: ./gradlew assembleDebug
Екосистема Actions включає понад 20 000 готових дій в GitHub Marketplace. Популярні дії: checkout (клонування репозиторію), setup-java/setup-node/setup-python (налаштування середовища), upload-artifact (збереження артефактів збірки), cache (кешування залежностей для прискорення), slack-notify (відправка сповіщень у Slack). Actions також підтримує матричну збірку — одночасний запуск на декількох версіях ОС або мов.
Issues — це вбудована система відстеження завдань на GitHub. Кожен Issue має заголовок, опис, мітки (labels), призначених виконавців (assignees), віхи (milestones) та пов'язані Pull Request. Issues можуть бути шаблонізовані — для баг-репортів, feature request або питань використовуються різні шаблони, які автоматично підставляються при створенні.
GitHub Projects (раніше Projects Beta) — це інструмент управління проєктами на базі дошок, схожий на Jira та Trello. Projects підтримує кастомні поля (статус, пріоритет, спринт), зв'язок з Issues та Pull Request, автоматизацію переміщення карток при зміні статусу завдання та аналітику у вигляді діаграми згоряння завдань (burndown chart). Projects доступний у двох режимах: Table (табличне представлення) та Board (канбан-дошка).
Для управління релізами GitHub надає Milestones — групи Issue та PR, об'єднані спільною метою з дедлайном. Кожна віха показує прогрес виконання: скільки завдань відкрито, скільки закрито та наскільки дотримується термін. Milestones інтегруються з Releases — при публікації релізу можна прив'язати його до віхи та автоматично сформувати список змін у CHANGELOG на основі закритих Issue.
GitHub Pages — це безкоштовний хостинг для статичних сайтів, який автоматично публікує вміст репозиторію за адресою https://username.github.io/repository. Pages підтримує HTML, CSS, JavaScript та статичні генератори: Jekyll (вбудований), Hugo, Next.js (експорт) та MkDocs. Налаштування включає вибір гілки та директорії для публікації, а також підтримку кастомного домену.
Для технічної документації GitHub надає Wiki — вбудовану вікі-систему, яка також зберігається як Git-репозиторій. Wiki підтримує Markdown та дозволяє редагувати сторінки як через веб-інтерфейс, так і локально через push у wiki-репозиторій. Кожна Wiki-сторінка має власну історію змін, що зручно для документування API, архітектури та процесів проєкту.
Комбінація GitHub Pages + Jekyll — популярне рішення для сайтів документації. Jekyll автоматично перетворює Markdown-файли на статичні HTML-сторінки, підтримує теми, навігацію та пошук. Наприклад, документація Android Developers раніше використовувала Jekyll на GitHub Pages, а зараз — внутрішню платформу, але тисячі open-source проєктів продовжують використовувати цю зв'язку для своїх сайтів.
GitHub CLI (gh) дозволяє виконувати всі операції з платформою через командний рядок: створювати репозиторії, керувати Issues, переглядати та затверджувати Pull Request, запускати Actions. Команда gh repo create my-project --public створює віддалений репозиторій і пов'язує його з локальним, а gh pr create формує Pull Request з поточної гілки. CLI прискорює роботу розробників, які віддають перевагу терміналу перед веб-інтерфейсом.
GitHub REST API та GraphQL API надають програмний доступ до всіх функцій платформи: створення Issue, управління користувачами, отримання статистики та управління Actions. GraphQL API є кращим для складних запитів, оскільки дозволяє отримати лише потрібні поля за один запит. Rate limit для REST API — 5000 запитів на годину для аутентифікованих користувачів. API широко використовується для інтеграції GitHub із зовнішніми CI-системами та внутрішніми інструментами DevOps.
GitHub Gist — сервіс для публікації фрагментів коду без створення повноцінного репозиторію. Gist підтримує підсвічування синтаксису, вбудовування на зовнішні сайти та історію версій. Кожен Gist може бути публічним (видимий у пошуку) або секретним (доступний лише за посиланням). Gist використовується для швидкого обміну конфігураціями, логами та прикладами коду в командному листуванні, а також як аналог Pastebin для розробників.
Часті запитання
GitHub робить упор на відкриту спільноту та соціальні функції (форки, зірки). GitLab пропонує більш потужний вбудований CI/CD та самописний хостинг (Self-Managed) без обмежень по хвилинах Actions.
GitHub Team коштує 4 долари на користувача на місяць і дає необмежені приватні репозиторії, захист гілок та Actions (3000 хвилин). Безкоштовний тариф підходить для невеликих open-source проєктів.
При створенні репозиторію виберіть Private замість Public. У приватних репозиторіях код бачать лише запрошені учасники. На безкоштовному тарифі приватні репозиторії доступні з обмеженням до 3 колабораторів.
GitHub Copilot — AI-асистент на базі OpenAI Codex, який пропонує автодоповнення коду в реальному часі. Працює у VS Code, JetBrains та Neovim, підтримує всі популярні мови програмування.
Перейдіть у Settings → Danger Zone → Delete this repository. Видалення незворотне — всі коміти, Issue та Wiki будуть видалені без можливості відновлення. Попередньо переконайтеся, що у вас є бекап.
Підсумки
Ми розробимо мобільний застосунок під ключ
IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.
Читайте також