Я хотел бы сохранить все мои dotfiles на GitHub, в том числе .gitconfig, который требует от меня скрыть токен GitHub в .gitconfig хранит настройки.
для этого у меня есть «.gitconfig-hidden-token» файл, который я намерен отредактировать и поместить под git, который скрывает токен:
. [github] user = giuliop token = —hidden— .
и сценарий оболочки, который мне нужно запустить, если я изменю «.gitconfig-hidden-token» файл для создания».файл gitconfig хранит настройки»:
cp .gitconfig .gitconfig.backup sed ‘s/—hidden—/123456789/’ .gitconfig-hidden-token > .gitconfig
недостатком является необходимость запустите вручную скрипт каждый раз я modidy файла. Есть ли лучший, полностью автоматизированный способ сделать это?
4 ответов
добавить .gitconfig хранит настройки с git add -N .
затем git add -p это, отредактируйте ломоть, замените токен чем угодно и нажмите это. Нет необходимости в дополнительном файле таким образом.
Как хранить токены, API ключи и секретную информацию в env переменных, на примере python приложений
Добавление: при дополнительных изменениях файла используйте git add -p еще раз и отредактируйте ломоть, чтобы ваша первоначальная манипуляция не была перезаписана.
Я только что сделал это для себя. «Правильный» способ решить проблему-разделить gitconfig на два файла, общедоступный с псевдонимом/config/etc и частный файл, который хранит ваше имя пользователя и секреты. Вот так.
.gitconfig хранит настройки:
[include] # For username / creds / etc path = ~/.gitconfig.local [alias] .
.gitconfig хранит настройки.местный:
.пример:
/.gitconfig.local
автор: Dave Dopson
теперь вы можете включить другой файл в свой gitconfig.
Вы можете поместить свой раздел github в этот дополнительный файл. См. этот вопрос:можно ли включить файл в ваш .gitconfig хранит настройки
автор: idbrii
Я сделал скрипт, чтобы обновить мой dotfiles РЕПО, также redacts конфиденциальной информации, такой как моем GitHub знак. Я не думаю, что токен github больше используется GitHub, но поправьте меня, если я ошибаюсь.
вы можете просмотреть мой скрипт здесь.
Источник: askdev.ru
Обновить
Если вы хотите выполнить развертывание на Heroku, лучшим подходом будет использование переменной среды.
TOKEN = None with open(«token.txt») as f: TOKEN = f.read().strip()
import os TOKEN = os.environ[«TOKEN»]
Затем используйте команду heroku config:add TOKEN=… , чтобы установить переменную среды.
Чтобы запустить своего бота локально, используйте:
TOKEN=… python3 bot.py
Надеюсь, это поможет!
Оригинальный ответ
.gitignore нельзя использовать для игнорирования строк кода, только целые файлы.
Однако вы можете прочитать токен из файла и поместить этот в свой .gitignore .
Вот как бы я это сделал:
TOKEN = None with open(«token.txt») as f: TOKEN = f.read().strip()
Источник: question-it.com
2 УРОК — КАК СКРЫТЬ ТОКЕН БОТА + GitHub | ПЕРЕМЕННАЯ ОКРУЖЕНИЯ | ПОЛНЫЙ КУРС ПО AIOGRAM
Скрыть токен telegram-бота в открытом коде
17 янв 2020 в 12:05
Конечно, просто думал, что вы знаете данное решение, и ищете как именно скрыть, а не вынести в конфиг и попросить пользователя задать значение конфига
17 янв 2020 в 12:39
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Необходимо вынести токен в конфигурационный файл. Конфигурационный файл должен находится в src/main/resources/config.properties Содержание файла config.properties следующее:
# Токен необходимо задать при установке token=
В таком виде конфигурационный файл закоммитить. После коммита можно будет вставить значение реального токена, чтобы была возможность запустить бота, но не коммитить значение
# Токен необходимо задать при установке token=12344
Чтобы считывать токен из файла нужно воспользоваться классом import java.util.Properties;
Properties prop = new Properties(); try < //load a properties file from class path, inside static method prop.load(App.class.getClassLoader().getResourceAsStream(«config.properties»)); //get the property value and print it out System.out.println(prop.getProperty(«token»)); >catch (IOException ex)
Чтобы в дальнейшем случайно не перезатереть файл с пустым токеном, реальным, который используется для разработки, нужно будет прописать файл config.properties в .gitignore
Источник: ru.stackoverflow.com