linuxlab.io
Учебники▾
  • Линукс и сети
    Файловая система, процессы, TCP/IP, BGP и OSPF
    →
  • Terraform и IaC
    HCL, state, plan/apply на sandbox LocalStack
    →
  • Git и GitHub
    Объектная модель, plumbing, ветвление, GitHub Actions
    →
Все учебники →
ЦеныО платформеВойтиСоздать аккаунт
/
Intro
Lessons
Footer
linuxlab-УчебникиЦеныО платформеКонфиденциальность и куки
Copyright © 2026 LinuxLab. Все права защищены.
linuxlab.io
Учебники▾
  • Линукс и сети
    Файловая система, процессы, TCP/IP, BGP и OSPF
    →
  • Terraform и IaC
    HCL, state, plan/apply на sandbox LocalStack
    →
  • Git и GitHub
    Объектная модель, plumbing, ветвление, GitHub Actions
    →
Все учебники →
ЦеныО платформеВойтиСоздать аккаунт
/
  • Введение
  • Главы
  • How it works
  • Уроки
  • База знаний
  • Собеседование
home/git/kb/Совместная работа/github-org

kb/collab ── Совместная работа ── intermediate

GitHub organization и teams

Organization - контейнер для нескольких пользователей и репозиториев с общим биллингом, настройками безопасности и teams. Team - именованная группа пользователей внутри организации для batch-выдачи доступов. Пользователь может быть членом многих org одновременно.

view as markdownaka: github-organization, github-teams

GitHub поддерживает два типа владельцев репо: пользователь и organization.

Пользователь - персональный аккаунт. Его профиль публичный (github.com/username), у него свои SSH-ключи, токены, биллинг.

Organization (org) - аналог компании на GitHub. У организации свой биллинг, свои репозитории, свои настройки безопасности. Несколько пользователей могут быть её членами. Один пользователь - членом многих org одновременно (нормально для opensource- контрибьюторов, работающих в нескольких компаниях/проектах).

Roles внутри org

  • Owner - полные права. Может удалить org, поменять биллинг, переименовать.
  • Member - доступ к репо по правилам permission. По умолчанию member-роль не даёт write на все репо org -только на те, где явно дан грант.
  • Outside collaborator - не член org, но имеет доступ к конкретному репо. Часто это подрядчики или внешние авторы.
  • Billing manager - только биллинг, без репо-доступов.

Teams

Team - именованная группа пользователей. Например, в org acme есть teams backend, frontend, devops. Зачем team:

  • Выдать доступ к набору репо одним кликом, а не каждому пользователю отдельно.
  • Использовать в codeowners: @acme/backend назначается автоматически на PR'ы по путям, привязанным к этой team.
  • Mention в комментариях: @acme/backend пишет всем членам team.
  • Slack/email-нотификации по team.

Teams могут быть вложенными: backend/database наследует permissions и members от backend. Это удобно для больших организаций.

Permissions на репо

Доступ к репо организации может быть выдан тремя способами:

  1. Через team membership - team имеет доступ, ты в team.
  2. Прямой grant - пользователь добавлен в репо персонально.
  3. Outside collaborator - не член org, но добавлен в репо.

Когда удаляешь кого-то, не забудь все три. Убрать только из team часто недостаточно -прямой grant остаётся. Это типовая ошибка при ротации сотрудников.

Personal settings vs org settings

Чёткое разделение:

  • SSH-ключи, токены, email, 2FA - на уровне пользователя, в github.com/settings.
  • Биллинг org, default permissions, SAML/SSO, audit log - на уровне организации, в github.com/organizations/acme/settings.
  • Settings конкретного репо - в github.com/acme/web/settings.

Кoгда не можешь найти настройку -подумай, к чему она относится по scope, и иди на соответствующий уровень.

SSO и enterprise

В больших организациях включают SAML SSO. Тогда:

  • Каждый член org должен пройти SSO для GitHub-аккаунта.
  • PAT'ы (personal access tokens) должны быть SSO-авторизованы.
  • Push с тех машин, где SSO не пройден, отказывается.

Это сильная защита, но создаёт UX-неудобства. Если ты ушёл из компании, SSO-attestation автоматически отзывается, твой ключ перестаёт работать с приватными репо org.

§ команды

bash
gh api user/orgs

Список org, в которых ты member

bash
gh api orgs/acme/teams

Все teams в org acme (с правами read)

§ см. также

  • branch-protectionBranch protection rulesНабор правил, которые GitHub/GitLab/Bitbucket применяет к попыткам изменить защищённую ветку. Запрещает прямой push, требует PR с approve, требует зелёный CI, блокирует force-push. Без них любой с write-доступом может затереть main одним коммитом.
  • codeownersCODEOWNERSФайл `.github/CODEOWNERS` привязывает пути в репо к командам или людям. При открытии PR, который трогает эти пути, владельцы автоматически назначаются ревьюверами. В связке с branch protection блокирует merge без их approve.
  • notificationsGitHub notificationsВеб-инбокс на `github.com/notifications` плюс email-уведомления о событиях в репо. Watch повышает уровень подписки. Фильтры `is:unread reason:mention` спасают от шума. Главная гигиена - периодически чистить watch-список через `/notifications/subscriptions`.
Footer
linuxlab-
Copyright © 2026 LinuxLab. Все права защищены.
Учебники
Цены
О платформе
Конфиденциальность и куки