Секреты
Секреты — это защищенные переменные, которые можно использовать в рабочих процессах 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 и раннером;
- регулярно проверяйте и обновляйте секреты.