Общая библиотека для использования в разных приложениях: логгер, подключение к Sentry, хранилище (BadgerDB).
go get github.com/gurunn/inject@v0.3.0В коде:
import (
"github.com/gurunn/inject/logger"
"github.com/gurunn/inject/sentryconnect"
"github.com/gurunn/inject/storage"
)
// Логгер
logger.InitLogger()
logger.LogError(err, "context")
logger.LogAndCapture(hub, err, "context", nil)
// Sentry (version и moduleName из вашего приложения)
hub, err := sentryconnect.InitSentry(version, moduleName)
// Хранилище
db := &storage.Badger{
Path: "/tmp/badger",
SentryBadger: hub,
AfterInsert: func(taskID string, data []byte) { /* опционально */ },
}
db.Open()
db.Insert(taskID, jsonData)
res, err := db.Get(taskID) // *storage.TaskResultЕсли Go обращается к checksum-базе и выдаёт ошибку:
go env -w GONOSUMDB=github.com/gurunn/inject-
Отключите прокси для модуля:
go env -w GOPRIVATE=github.com/gurunn/inject
-
Настройте доступ (HTTPS с токеном или SSH), например:
git config --global url."git@github.com:".insteadOf "https://github.com/"
В go.mod вашего приложения:
require github.com/gurunn/inject v0.0.0
replace github.com/gurunn/inject => /path/to/injectПосле публикации уберите replace и укажите нужную версию (например, v0.3.0).