繁体   English   中英

Django 设置和 GitHub 操作秘密

[英]Django Settings and GitHub Action Secrets

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

即使该数据库仅存在于我的计算机上(并且 Github 测试数据库在 GitHub 上一次仅存在大约一分钟),我想对 SECRETS 使用可能的最佳实践,所以当我进行go直播时,我已经准备好了。

目前,我拥有的唯一敏感数据是数据库密码。 这是我如何将我的真实密码保留在 GitHub 之外的方法。

settings.py(在 Git 中):

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.')

localsettings.py(不在 Git 中):

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

testsettings.py(在 Git 中):

# 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': '',
    }
}

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

有没有一种类似于 GitHub 的方式在本地存储机密的方法,这样我就可以只有一个设置文件,它可以在本地和 GitHub 上工作?

我会考虑将秘密从环境变量传递给 Django 配置文件。 https://django-environ.readthedocs.io/en/latest/

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM