Как использовать конфигурационные переменные Heroku с GitHub для установки удаленного частного репо? - PullRequest
0 голосов
/ 20 апреля 2019

Я хотел бы удалить свое имя пользователя и токен личного доступа из файла package.json в моем приложении React.

Устанавливаемый пакет представляет собой частный удаленный репозиторий GitHub, владельцем которого я являюсь.

Запрос выполняется по протоколу HTTPS.

Например: "react-trello": "https://username:token@github.com/username/react-trello.git#dev/branch"

У меня есть PAT, выданный GitHub.Но у меня возникают проблемы с доступом к ним в файле package.json в моем проекте.

Должен ли я создавать конфигурационные переменные Heroku со значением PAT?heroku config:set -a my-app GITHUB-TOKEN=466ghdf57

В конфигурации Heroku вы можете установить имена переменных для использования с GitHub.Как мне установить имя пользователя, пароль и токен?Как переменные конфигурации Heroku?

Например: USERNAME, GITHUB-USER, TOKEN, GITHUB-TOKEN.

Я пытался создать такие переменные, как USERNAME, TOKENGITHUB_USER.Но это не работает, если я удаляю свои учетные данные из файла package.json.

Например: "react-trello": "https://github.com/username/react-trello.git#dev/branch".

Я получаю ошибку: Fatal: Could not read Username for "https://github.com".

Я что-то упустил?

1 Ответ

1 голос
/ 21 апреля 2019

Heroku не предоставляет этого "из коробки", а package.json изначально не поддерживает переменные среды .

Один из вариантов - построить свою зависимость в виде пакетов NPM и опубликовать ее в закрытом хранилище пакетов, например, Gemfury , чье дополнение Heroku имеет бесплатный план с поддержкой одного частного модуля.

Вкратце, вы можете опубликовать свой модуль в Gemfury с помощью https://npm-proxy.fury.io/APPID/, за которым следуют npm login и npm publish. Затем в приложении Heroku , которое зависит от вашего личного модуля, добавьте файл .npmrc, содержащий

always-auth=true
registry=https://npm-proxy.fury.io/APPID/
//npm-proxy.fury.io/APPID/:_authToken=${FURY_AUTH}

и установите конфигурационную переменную Heroku FURY_AUTH, содержащую ваш токен аутентификации Gemfury.

Это означает, что вам придется обновить опубликованную библиотеку в Gemfury, прежде чем зависимое приложение увидит изменения, которые вы вносите в нее. В любом случае, это хорошая идея; в зависимости от конкретных помеченных выпусков безопаснее, чем в зависимости от изменяемых веток.

Существует также этот обходной путь , который может позволить вам эффективно вводить переменные окружения в package.json, но я не пробовал.

...