Я хочу сохранить учетные данные и другие секреты из моего репозитория git.По разным причинам (я работаю над разветвленным репозиторием GitHub) учетные данные хранятся в классе, а не в файле конфигурации.
Для создания на базе Центра приложений Microsoft я успешно заменяю учетные данные наПеременные среды с использованием следующего сценария:
#!/usr/bin/env bash
echo "Updating user settings..."
SettingsFile=$APPCENTER_SOURCE_DIRECTORY/Client/MyApp/Helpers/UserSettings.cs
sed -i '' "s/APPCENTER_MICROSOFT/$APPCENTER_MICROSOFT/g" $SettingsFile
sed -i '' "s/APPCENTER_ANDROID/$APPCENTER_ANDROID/g" $SettingsFile
sed -i '' "s/APPCENTER_IOS/$APPCENTER_IOS/g" $SettingsFile
echo "Updating cloud service settings..."
CloudServiceFile=$APPCENTER_SOURCE_DIRECTORY/Client/MyApp/Services/SurveyCloudService.cs
sed -i '' "s/APP_NAME_REPLACE/$APP_NAME_REPLACE/g" $CloudServiceFile
echo "Settings updated"
Проблема, с которой я столкнулся сейчас, заключается в том, что мне также необходимо выполнять эти замены при локальном тестировании.Могу ли я использовать события сборки для замены токенов без постоянного изменения исходных файлов (возможно, с использованием файла .bat, добавленного в .gitignore), или есть лучший способ сделать это?
Редактировать: Мое текущее решение - сохранить учетные данные, внеся изменения в файлы, а затем использовать git stash save credentials
для отслеживания изменений.Затем, если мне нужно построить локально, я могу применить изменения, используя git stash list
и git stash apply stash@{<n>}
.После завершения тестирования и отладки я могу использовать git reset --hard
для удаления учетных данных.Это работает, но должно быть более элегантное решение.