Skip to content

nikoksr/doppler-go

Repository files navigation

 

doppler-go

A Go client for the Doppler API.

 

codecov Go Report Card Codacy Badge Maintainability go.dev reference

 

About

doppler-go is a Go client for the Doppler API. It provides a simple and easy to use interface for interacting with the Doppler API.

The base design is heavily inspired by the Stripe Go client, yet there are still some distinct differences.

Stability

This project is currently in an early stage of development. I have not yet confirmed the functionality of all endpoints through extensive end-to-end testing. Therefore, I cannot guarantee for any stability or correctness.

I plan to support this project for the foreseeable future. However, I cannot guarantee that I will be able to fix bugs or add new features in a timely manner.

If you find any bugs or have any suggestions, please open an issue or a pull request.

Features

  • Doppler REST API v3:
    • Audit
    • Auth
    • Configs
    • Config Logs
    • Dynamic Secrets
    • Environments
    • Projects
    • Secrets
    • Service Tokens
    • Token Sharing
    • Workplaces

Install

go get -u github.com/nikoksr/doppler-go

Example usage

package main

import (
  "context"
  "fmt"
  "log"

  "github.com/nikoksr/doppler-go"
  "github.com/nikoksr/doppler-go/secret"
)

func main() {
  // Set your API key
  doppler.Key = "YOUR_API_KEY"

  // List all your secrets
  secrets, err := secret.List(context.Background(), &doppler.SecretListOptions{
    Project: "YOUR_PROJECT",
    Config:  "YOUR_CONFIG",
  })
  if err != nil {
    log.Fatalf("failed to list secrets: %v", err)
  }

  for name, value := range secrets {
    fmt.Printf("%s: %v\n", name, value)
  }
}

Contributing

Contributions of all kinds are very welcome! Feel free to check our open issues. Please also take a look at the contribution guidelines.

Show your support

Please give a ⭐️ if you like this project! This helps us to get more visibility and helps other people to find this project.