Сводка
В этом модуле вы ознакомились с пакетами 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.
- Аналитика пакетов: Отслеживайте использование и внедрение пакетов.
Практическое приложение
Начните реализацию:
- Настройка проверки подлинности: Создайте PATS с соответствующими областями для вашей команды.
- Опубликуйте первый пакет: Выберите реестр и опубликуйте тестовый пакет.
- Настройка потребителей: Настройте проекты для установки пакетов из пакетов GitHub.
- Автоматизация публикации: Создание рабочих процессов GitHub Actions для автоматической публикации.
- Настройка управления доступом: Настройте видимость и разрешения на основе потребностей безопасности.
- Процедуры документации: Создайте командные руководства по управлению пакетами.
Интеграция с методиками DevOps
Пакеты GitHub в рабочих процессах DevOps:
- Непрерывная интеграция: Автоматически собирайте и публикуйте пакеты при коммитах.
- Непрерывная доставка: Используйте пакеты в качестве артефактов в конвейерах развертывания.
- Управление зависимостями: Централизация внутренних зависимостей в пакетах GitHub.
- Управление версиями: Отслеживайте версии пакетов вместе с версиями кода.
- Соответствие требованиям безопасности: Реализуйте элементы управления доступом, согласованные с политиками организации.
Подробнее
Официальная документация
- Краткое руководство по пакетам GitHub. Начало работы с пакетами GitHub.
- Сведения о пакетах GitHub . Полное руководство по концепциям пакетов GitHub.
- Работа с реестром пакетов GitHub — руководства по реестру для всех поддерживаемых типов пакетов.
- Сведения о разрешениях для пакетов GitHub. Общие сведения о моделях разрешений и управлении доступом.
Специфичные для реестра руководства
- Работа с реестром npm . Полное руководство по управлению пакетами npm.
- Работа с реестром NuGet . Полное руководство по управлению пакетами NuGet.
- Работа с реестром контейнеров — управление образами Docker и OCI.
- Работа с реестром Apache Maven — управление пакетами Maven.
- Работа с реестром Gradle — управление пакетами Gradle.
Рекомендации по обеспечению безопасности и лучшие практики
- Настройка контроля доступа и видимости пакета — управление безопасностью пакетов.
- Удаление и восстановление пакета — управление жизненным циклом пакетов.
- Публикация пакета — рекомендации по публикации пакетов.
- Установка пакета — лучшие практики по использованию пакетов.
API и автоматизация
- API пакетов GitHub — REST API для программного управления пакетами.
- Публикация пакетов с примерами интеграции GitHub Actions — CI/CD.
- Использование пакетов GitHub с GitHub Actions — расширенные шаблоны рабочих процессов.
Сообщество и поддержка
- Документация по GitHub: Ознакомьтесь с исчерпывающими руководствами и учебниками.
- Сообщество GitHub: Задайте вопросы и получите ответы от сообщества.
- Блог GitHub: Будьте обновлены с последними функциями и объявлениями.
- Навыки GitHub: Интерактивные схемы обучения для функций GitHub.