GitHubにパスワード等をアップロードしない設定

はじめに

さて、GitHubがスタートアップや個人開発者に対して無料で利用できるサービスを提供するようになったことで、プログラミングの初心者や日曜大工的なアプローチを取る人々が履歴管理やリポジトリを作成し、コードを共有・管理することができるようになった。いまは、パブリックリポジトリは少ないのだけれど、そのうち公開するかもしれないので、機密情報をアップロードしない設定を忘れないように残しておこうと思う。

一時期、Raspberry Piに載せたセンサーが収集するデータをデータベースに収集し、そのデータをグラフ化してTwitterに毎朝8時にアップロードしてたりした。イーロン・マスクに買収されXになったりしてこの仕組みがうまく動かなくなったので、今は動かしていないがこのコードを書いたときに機密情報をアップロードしない仕組みにしていたので、参考にする。

パスワードを記述したファイルを無視する

無視するには.gitignoreにファイル名を記述する。この場合、jsonファイルに機密情報を記述しているので、.gitignoreに以下の様に記述した。また、不要な一時ファイルや生成した画像ファイルなども記入している。

tweeter_token.json                                                                                                                  
error.txt
img.png
.python-version

jsonファイルの内容

jsonファイルには次のように機密情報を記載した。

{
	"Authentication_Tokens":{
		"access_token":		"XXXXXXXXX",
  		"access_token_secret":	"XXXXXXXXX",
  		"bearer_token":		"XXXXXXXXX"
	},  

	"Consumer_Keys":{
  		"api_key":		"XXXXXXXX",
  		"api_key_secret":	"XXXXXXXX"                                              
	},

	"Database":{
  		"User":	"XXXXXX",
  		"password":	"XXXXXX",
  		"Address":	"XXXXXX",
  		"Table":	"XXXXXX"
 	}
}

jsonファイルから必用な情報の取得

実際にファイルから必用な情報を入手

import tweepy
import json

json_file = open('/home/kimio/Documents/Tweet/tweeter_token.json', 'r')
access_db = json.load(json_file)

#Authentication Tokens
AT = access_token = access_db["Authentication_Tokens"]["access_token"]
ATS = access_token_secret = access_db["Authentication_Tokens"]["access_token_secret"]
bearer_token = access_db["Authentication_Tokens"]["bearer_token"]
#Consumer Keys
CK = api_key = access_db["Consumer_Keys"]["api_key"]
CKS = api_key_secret = access_db["Consumer_Keys"]["api_key_secret"]

# mariadbへのアクセス用
db_id = access_db["Database"]["User"]
db_pass = access_db["Database"]["password"]
db_addr = access_db["Database"]["Address"]
db_tbl =  access_db["Database"]["table"]

# Twitterへのアクセス
auth = tweepy.OAuthHandler(CK, CKS)
auth.set_access_token(AT, ATS)
api = tweepy.API(auth)

これで、うまく動いていたんだけどね。今はお金払わないとできないのかな?

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA