Как я могу использовать секреты Github в файлах JS

У меня есть базовое репозиторий git, настроенный с действиями github для сборки и развертывания (в основном файлы HTML и TS).

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

Поэтому я решил использовать для них GITHUB SECRETS.

Как я могу получить доступ к СЕКРЕТАМ GITHUB в моих файлах js (или TS), чтобы он мог правильно строиться с помощью действий github?


person antoine hervet    schedule 10.01.2020    source источник
comment
@imjared nop, мой вопрос касается секретов github. Я знаю, как работают секреты, я просто хочу знать, как правильно их использовать с действиями github и github   -  person antoine hervet    schedule 10.01.2020
comment
Вы не можете использовать секреты в файлах в качестве переменной среды, секреты можно использовать только для действий Github.   -  person Ahmet Zeybek    schedule 10.01.2020
comment
@AhmetZeybek Да, но это может быть способ создать файл env во время процесса сборки действий с помощью пакетной обработки и вставить их в него, верно?   -  person antoine hervet    schedule 10.01.2020
comment
help.github.com/en/actions/   -  person Ahmet Zeybek    schedule 10.01.2020
comment
@AhmetZeybek уже прочитал это, но в моем случае не работает, нужно что-то вроде run: echo export const environment = {firebase_api_key: $ {{secrets.FIREBASE_TOKEN}} ›env / env.ts, но получаю ошибку yaml   -  person antoine hervet    schedule 10.01.2020
comment
Есть разница между действиями на github и рабочим процессом на github. Вы спрашиваете о доступе к секретам в настраиваемом действии github, созданном вами, или в рабочем процессе?   -  person smac89    schedule 11.01.2020


Ответы (1)


Вы можете передать секреты как переменные ENV.

Пример:

   ...
   steps:
      - name: Git checkout
        uses: actions/checkout@v2

      - name: Use Node 12.x
        uses: actions/setup-node@v1
        with:
          node-version: 12.x

      - name: Install Dependencies (prod)
        run: yarn install --frozen-lockfile --production

      - name: Run Tests (JEST)
        run: yarn test --ci --silent --testPathIgnorePatterns=experimental
        env:
          CI: true
          API_KEY: ${{ secrets.API_KEY }}

В Node.js вы можете получить к нему доступ через process.env.API_KEY.

person scthi    schedule 10.01.2020
comment
@antoinehervet Я отредактировал свой ответ с использованием через Node.js - person scthi; 12.01.2020
comment
Большое спасибо за ваш фрагмент кода. К вашему сведению, вам больше не нужно устанавливать CI: true, подробности см. здесь - person LJH; 19.07.2021