Секреты

Секреты — это защищенные переменные, которые можно использовать в рабочих процессах CI/CD для хранения конфиденциальной информации, такой как токены, пароли, ключи и другие данные, не предназначенные для публичного доступа.

Для работы с неконфиденциальными данными рекомендуется использовать переменные.

Типы секретов

Секреты репозитория

Доступны только в одном конкретном репозитории. Используются, когда данные нужны только для одного проекта, например, API-ключ для конкретного сервиса. Предоставляют более строгий контроль доступа.

Секреты организации

Доступны для всех репозиториев в организации. Используются, когда один и тот же секрет нужен во многих проектах, например, учетные данные для доступа к базе данных или ключи шифрования, используемые во всех сервисах компании. Упрощают управление и избавляют от дублирования данных.

Работа с секретами

Секреты можно добавлять в:

  • репозиторий:

Перейдите в Настройки репозитория -> Секреты и переменные -> Секреты

  • организация:

Перейдите в Настройки организации -> Секреты и переменные -> Секреты

Если секрет уровня организации имеет то же имя, что и секрет уровня репозитория, то приоритет имеет секрет уровня репозитория.

Создание секрета

Для создания секрета нажмите Добавить секрет:

На экране создания секрета задайте название и значение секрета:

Редактирование секрета

Для редактирования секрета нажмите кнопку редактирования у соответствующего секрета:

Название секрета изменить нельзя, значение при редактировании не отображается.

Удаление секрета

Для удаления секрета нажмите кнопку удаления у соответствующего секрета:

Использование секрета

Чтобы использовать секреты в ваших рабочих процессах, ссылайтесь на них в качестве переменных окружения или входных параметров, используя префикс secrets. Например: ${{ secrets.MY_SECRET }}.

Пример использования секрета

Данный yaml использует секрет в шаге выполнения:

name: Пример использования секрета
on: [push]
jobs:
  example-job:
    runs-on: ubuntu-cloud-runner
    steps:
      - name: Используем секрет
        run: |
          echo "Секрет: ${{ secrets.MY_TOKEN }}"

Значения секретов в логах не отображаются , замаскированы как ***

Примечания

  • cекреты шифруются при хранении и передаче между GitVerse и раннером;
  • регулярно проверяйте и обновляйте секреты.