Сводка

Завершено

В этом модуле вы ознакомились с пакетами GitHub, полностью интегрированной службой размещения пакетов в GitHub. Вы узнали, как публиковать, устанавливать, удалять и восстанавливать пакеты при управлении разрешениями и видимостью безопасного управления пакетами.

Полученные навыки

Вы узнали, в чем состоят преимущества и как использовать:

Публикация пакетов

  • Поддерживаемые реестры: npm, NuGet, Maven, Gradle, RubyGems, Docker и реестр контейнеров.
  • Аутентификация: Создание и использование персональных токенов доступа (PAT) с соответствующими полномочиями.
  • Рабочий процесс публикации: Проверка подлинности, настройка метаданных пакета и публикация с помощью собственных средств.
  • Публикация NuGet: Использование dotnet CLI и файлов nuget.config для аутентификации.
  • Публикация npm: Настройка npmrc-файлов и использование имени входа npm для проверки подлинности.
  • Автоматизация: Автоматическая публикация пакетов с помощью рабочих процессов GitHub Actions.
  • Рекомендации: Управление версиями, документация, рекомендации по безопасности и полнота метаданных.

Установка пакетов

  • Обнаружение пакетов: Поиск по всему миру, в организациях или в репозиториях.
  • Рабочий процесс установки: Проверка подлинности в пакетах GitHub и установка с помощью собственных диспетчеров пакетов.
  • Установка NuGet: Через Visual Studio, dotnet CLI или прямое редактирование .csproj.
  • Установка npm: Настройка NPMRC-файлов, package.json зависимостей и поддержки нескольких организаций.
  • Интеграция CI/CD: Установка пакетов в GitHub Actions с помощью GITHUB_TOKEN.
  • Устранение неполадок: Устранение проблем с проверкой подлинности, разрешением и версией.

Удаление и восстановление пакетов

  • Правила удаления: Общие сведения об ограничениях для общедоступных пакетов (ограничение на скачивание 5000).
  • Требования к разрешениям: Доступ администратора для пакетов с областью действия репозитория.
  • Удаление версий: Удаление определенных версий при сохранении других доступных версий.
  • Удаление всего пакета: Удаление всех версий из пакетов GitHub.
  • Условия восстановления: 30-дневное окно, доступность пространства имен и хранение разрешений.
  • Управление API: Использование REST API для программных операций пакетов.
  • Лучшие практики: Коммуникация, замещение, льготные периоды и аудиторские следы.

Настройка управления доступом и видимости

  • Модели разрешений: Наследуемые репозиторием разрешения и детализированные разрешения (реестр контейнеров).
  • Параметры видимости: Общедоступные, частные и внутренние (только корпоративные) пакеты.
  • Разрешения образа контейнера: Допуск на чтение, запись и администраторские роли с независимым контролем доступа.
  • Доступ пользователей и команд: Предоставление разрешений отдельным лицам и командам.
  • Рекомендации по безопасности: Минимальные привилегии, регулярные аудиты, доступ на основе команд и документация.
  • Стратегии организации: Стандартизованная видимость, процессы запросов доступа и выравнивание соответствия требованиям.

Сводка ключевых понятий

Интеграция пакетов GitHub

  • Единая платформа: Пакеты живут вместе с исходным кодом в GitHub.
  • Одна и та же проверка подлинности: Используйте учетные данные GitHub вместо отдельных учетных записей реестра.
  • Автоматизация рабочих процессов: Автоматически публиковать пакеты с помощью GitHub Actions.
  • Несколько реестров: Поддержка npm, NuGet, Maven, Docker и других реестров в одной платформе.

Безопасность и управление доступом

  • Детализированные разрешения: Реестр контейнеров поддерживает независимый контроль доступа.
  • Наследуемые репозиторием разрешения: Большинство типов пакетов следуют доступу к репозиторию.
  • Проверка подлинности PAT: Безопасная проверка подлинности с помощью личных токенов доступа.
  • Общедоступная и частная: Выберите видимость в зависимости от потребностей безопасности и совместной работы.

Управление жизненным циклом пакетов

  • Публикация: Автоматическая или ручная публикация с помощью инструментов родного пакета.
  • Управление версиями: Семантическое управление версиями для четкого обмена данными об изменениях.
  • Стирание: Удалите устаревшие или уязвимые версии с ограничениями безопасности.
  • Восстановление: Восстановление удаленных пакетов в течение 30-дневного окна.

Преимущества автоматизации

  • Интеграция CI/CD: Простая интеграция с GitHub Actions.
  • GITHUB_TOKEN: Автоматическая проверка подлинности в рабочих процессах без PAT.
  • Согласованная публикация: Каждый выпуск автоматически создает пакет.
  • Контрольные точки качества: Запустите тестирование перед публикацией пакетов.

Дальнейшие шаги

Продолжить обучение

Улучшение навыков пакетов GitHub:

  • Расширенная проверка подлинности: Реализуйте стратегии проверки подлинности на уровне организации.
  • Продвижение пакета: Разработка рабочих процессов для продвижения пакетов через этапы качества.
  • Публикация Monorepo: Публикация нескольких пакетов из одного репозитория.
  • Проверка безопасности: Интеграция сканирования уязвимостей для опубликованных пакетов.

Ознакомьтесь с расширенными сценариями:

  • Поддержка нескольких реестров: Настройте проекты для использования нескольких реестров пакетов.
  • Зеркалирование пакетов: Кэшируйте внешние пакеты в пакетах GitHub.
  • Настраиваемая автоматизация: Создание расширенных рабочих процессов публикации с помощью GitHub Actions.
  • Аналитика пакетов: Отслеживайте использование и внедрение пакетов.

Практическое приложение

Начните реализацию:

  1. Настройка проверки подлинности: Создайте PATS с соответствующими областями для вашей команды.
  2. Опубликуйте первый пакет: Выберите реестр и опубликуйте тестовый пакет.
  3. Настройка потребителей: Настройте проекты для установки пакетов из пакетов GitHub.
  4. Автоматизация публикации: Создание рабочих процессов GitHub Actions для автоматической публикации.
  5. Настройка управления доступом: Настройте видимость и разрешения на основе потребностей безопасности.
  6. Процедуры документации: Создайте командные руководства по управлению пакетами.

Интеграция с методиками DevOps

Пакеты GitHub в рабочих процессах DevOps:

  • Непрерывная интеграция: Автоматически собирайте и публикуйте пакеты при коммитах.
  • Непрерывная доставка: Используйте пакеты в качестве артефактов в конвейерах развертывания.
  • Управление зависимостями: Централизация внутренних зависимостей в пакетах GitHub.
  • Управление версиями: Отслеживайте версии пакетов вместе с версиями кода.
  • Соответствие требованиям безопасности: Реализуйте элементы управления доступом, согласованные с политиками организации.

Подробнее

Официальная документация

Специфичные для реестра руководства

Рекомендации по обеспечению безопасности и лучшие практики

API и автоматизация

Сообщество и поддержка

  • Документация по GitHub: Ознакомьтесь с исчерпывающими руководствами и учебниками.
  • Сообщество GitHub: Задайте вопросы и получите ответы от сообщества.
  • Блог GitHub: Будьте обновлены с последними функциями и объявлениями.
  • Навыки GitHub: Интерактивные схемы обучения для функций GitHub.