簡體   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