woodpecker/plugins/secrets.go
2017-04-11 19:06:45 +02:00

45 lines
1.3 KiB
Go

package plugins
import (
"fmt"
"github.com/drone/drone/model"
)
type secretPlugin struct {
endpoint string
}
// NewSecret returns a new secret plugin.
func NewSecret(endpoint string) interface{} {
return secretPlugin{endpoint}
}
func (s *secretPlugin) SecretFind(repo *model.Repo, name string) (*model.Secret, error) {
path := fmt.Sprintf("%s/secrets/%s/%s/%s", s.endpoint, repo.Owner, repo.Name, name)
out := new(model.Secret)
err := do("GET", path, nil, out)
return out, err
}
func (s *secretPlugin) SecretList(repo *model.Repo) ([]*model.Secret, error) {
path := fmt.Sprintf("%s/secrets/%s/%s", s.endpoint, repo.Owner, repo.Name)
out := []*model.Secret{}
err := do("GET", path, nil, out)
return out, err
}
func (s *secretPlugin) SecretCreate(repo *model.Repo, in *model.Secret) error {
path := fmt.Sprintf("%s/secrets/%s/%s", s.endpoint, repo.Owner, repo.Name)
return do("POST", path, in, nil)
}
func (s *secretPlugin) SecretUpdate(repo *model.Repo, in *model.Secret) error {
path := fmt.Sprintf("%s/secrets/%s/%s/%s", s.endpoint, repo.Owner, repo.Name, in.Name)
return do("PATCH", path, in, nil)
}
func (s *secretPlugin) SecretDelete(repo *model.Repo, name string) error {
path := fmt.Sprintf("%s/secrets/%s/%s/%s", s.endpoint, repo.Owner, repo.Name, name)
return do("DELETE", path, nil, nil)
}