読者です 読者をやめる 読者になる 読者になる

【Go】設定ファイルなどを非公開にして無料Githubでプロジェクト管理する

Go git Github

はじめに

Githubのアカウントは持ってたけどコード管理したりはしてなかった。
で、今回試しに使ってみようかと思った。
個人用途なので無料のパブリックなレポジトリで。

基本的にコードの中身は見られても問題ないけどアカウントやファイルパスなどは公開しない方法を検討

実装

どうやるのがいいのか迷ったけど今回は以下の方法でやってみた
・値自体は環境変数でセットする(今回はdirenvを使用)
・config.goパッケージを作ってココでGoから使えるようにセット

.envrc

export DB_USER=db_user
export DB_PASS=db_pass
export DB_HOST=db_host
export DB_NAME=db_name

config.go

package config

import "os"

var values = map[string]string{
  "DB_USER": os.Getenv("DB_USER"),
  "DB_PASS": os.Getenv("DB_PASS"),
  "DB_HOST": os.Getenv("DB_HOST"),
  "DB_NAME": os.Getenv("DB_NAME"),
}

func Get(key string) string {
  return values[key]
}

test.go

package main

import(
  "fmt"

  "./config"
)

func main() {
  fmt.Println(config.Get("DB_USER"))
}

さすがに実務案件でパブリックレポジトリにコードを公開するっていうことはあまりしないかとは思うけど
個人や仲間うちで何か作るときはこんなかんじでいいかな

あとはセットされているべき環境変数がないときにはエラー処理もいれたほうがいいかも。。。

もっとちゃんとしたやり方ご存知の方いましたら教えてください。以上です