GitHubにパスワード等をアップロードしない設定
はじめに
さて、GitHubがスタートアップや個人開発者に対して無料で利用できるサービスを提供するようになったことで、プログラミングの初心者や日曜大工的なアプローチを取る人々が履歴管理やリポジトリを作成し、コードを共有・管理することができるようになった。いまは、パブリックリポジトリは少ないのだけれど、そのうち公開するかもしれないので、機密情報をアップロードしない設定を忘れないように残しておこうと思う。
一時期、Raspberry Piに載せたセンサーが収集するデータをデータベースに収集し、そのデータをグラフ化してTwitterに毎朝8時にアップロードしてたりした。イーロン・マスクに買収されXになったりしてこの仕組みがうまく動かなくなったので、今は動かしていないがこのコードを書いたときに機密情報をアップロードしない仕組みにしていたので、参考にする。
パスワードを記述したファイルを無視する
無視するには.gitignoreにファイル名を記述する。この場合、jsonファイルに機密情報を記述しているので、.gitignoreに以下の様に記述した。また、不要な一時ファイルや生成した画像ファイルなども記入している。
| 1 2 3 4 | tweeter_token.json                                                                                                                   error.txt img.png .python-version | 
jsonファイルの内容
jsonファイルには次のように機密情報を記載した。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | { 	"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ファイルから必用な情報の取得
実際にファイルから必用な情報を入手
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 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) | 
これで、うまく動いていたんだけどね。今はお金払わないとできないのかな?


