Python Django设置和GitHub操作机密

Python Django设置和GitHub操作机密,python,django,github,django-settings,building-github-actions,Python,Django,Github,Django Settings,Building Github Actions,我有一个Django项目,正在使用Postgres数据库。我想找出一种更简单的方法,在本地和Github上存储我的凭据,这样我就可以在这两个地方运行测试,但我的敏感信息都不在git repo中 尽管数据库只存在于我的计算机上(Github测试数据库在Github上一次只存在大约一分钟),但我想对机密使用最佳实践,所以当我上线时,我已经准备好了 目前,我仅有的敏感数据是数据库密码。下面是我如何将我的真实密码保存在GitHub之外的 settings.py(Git): localsettings.p

我有一个Django项目,正在使用Postgres数据库。我想找出一种更简单的方法,在本地和Github上存储我的凭据,这样我就可以在这两个地方运行测试,但我的敏感信息都不在git repo中

尽管数据库只存在于我的计算机上(Github测试数据库在Github上一次只存在大约一分钟),但我想对机密使用最佳实践,所以当我上线时,我已经准备好了

目前,我仅有的敏感数据是数据库密码。下面是我如何将我的真实密码保存在GitHub之外的

settings.py(Git):

localsettings.py(不在Git中):

testsettings.py(Git):

通过此设置,我可以在本地正常运行测试
python manage.py测试
但是当我在Github上运行它们时,我必须使用
python manage.py test--settings=path.to.testsettings


是否有一种类似GiTub的方式存储本地秘密的方法,这样我就可以有一个设置文件,它将在本地工作,在Github上?

< P>我会考虑从环境变量传递秘密到Django配置文件。


您只需将变量变量与秘密传递给GITHUB操作中的容器。

< P>我会考虑从环境变量传递秘密到Django配置文件。

然后,您只需将带有机密的env变量传递给Github操作中运行的容器

VAR_1='abc'
VAR_2 = '123'

#DOES NOT INCLUDE DATABASE CONFIG

VAR_3 = 'efg'

# Add settings from local file into main settings
try:
    from .localsettings import *
except ImportError:
    import sys
    print('localsettings not defined.')

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'real-db-name',
        'USER': 'real-user',
        'PASSWORD': 'real-password',
        'HOST': 'localhost',
        'PORT': '',
    }
}
# import main settings and then overright certian values
try:
    from .settings import *
except ImportError:
    import sys
    print('settings not defined.')

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'github-db-name',
        'USER': 'github-db-user',
        'PASSWORD': 'github-user-password',
        'HOST': 'localhost',
        'PORT': '',
    }
}