2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitHubのpublicリポジトリで.envのみ公開しない方法[python][python-dotenv]

Last updated at Posted at 2024-12-11

前書き

自分のソースコードをGitHubでpublicリポジトリとして公開しようとした際、環境変数などが書かれたままだとよろしくないと思い、そういった情報のみ公開しないように色々調べた結果を記録します。

すでにQiita上で公開されている情報をひとまとめにしました。

参考サイト

この記事でわかること

Gitで管理しているリポジトリ内の特定のファイルのみを非公開にする方法

・.envファイルの作成
・config.pyでの.envの内容取得
・.gitignoreの作成
・gitにコミット・プッシュ

使用するツール

python-dotenvを使用します。ターミナルを開き、以下のコマンドでインストールします。

pip install python-dotenv

公開したくない情報をまとめた.envファイルを作成

私の場合、.gitフォルダのあるディレクトリ上に.envファイルを新規作成しました。
やり方は以下。
[新規作成]⇒[テキストドキュメント]⇒ファイル名を「.env」に変更

.envファイルに公開したくない情報を記入します。以下はサンプルです。

.env
DIRECTORY='環境変数などの情報'
API_KEY='公開したくないAPIキーなどの情報'

私の作成したソースコードでは、もともとconfig.pyというファイルで環境変数やAPIキーを指定していたので、config.pyで.envファイルから取得するように変更しました。以下はサンプルです。

config.py
from dotenv import load_dotenv
load_dotenv()

import os

directory = os.getenv('DIRECTORY') 
api_key = os.getenv('API_KEY')

#以下の2行のコメントアウトを外し、一度config.pyを実行してみてください。
#.envファイルで指定した内容が表示されていればOKです。
#print(directory)
#print(api_key)

Gitにコミット

.gitignoreファイルを作成します。やり方は.envファイルのときと同じです。
.gitignoreファイルに以下を記入します。
※すでに.gitignoreファイルを作成している場合は、追記でOK

.gitignore
/.env

調べたところ、「/.env」ではなく「.env」だけでもいけそうなのですが、私は"/"ありにしました!

あとは、コミット&プッシュするだけです。

git add .
git commit -m ".gitignore追加"
git push origin master

.gitignoreで.envをgitの管理から除外したおかげで、今後「git add .」をしても.envファイルはaddされません!

GitHubなどでソースコードを見られるなら、本当にプッシュされていないか確認することをおすすめします。

以上です。初めてこういう記事を書いたので、わかりづらい所があったらすみません。

2
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?