157 lines
4.6 KiB
Go
157 lines
4.6 KiB
Go
package datastore
|
|
|
|
import (
|
|
"io"
|
|
|
|
"github.com/drone/drone/common"
|
|
)
|
|
|
|
var (
|
|
ErrConflict = "Key not unique"
|
|
ErrNotFound = "Key not found"
|
|
)
|
|
|
|
type Datastore interface {
|
|
// User returns a user by user login.
|
|
User(string) (*common.User, error)
|
|
|
|
// UserCount returns a count of all registered users.
|
|
UserCount() (int, error)
|
|
|
|
// UserList returns a list of all registered users.
|
|
UserList() ([]*common.User, error)
|
|
|
|
// SetUser inserts or updates a user.
|
|
SetUser(*common.User) error
|
|
|
|
// SetUserNotExists inserts a new user into the datastore.
|
|
// If the user login already exists ErrConflict is returned.
|
|
SetUserNotExists(*common.User) error
|
|
|
|
// Del deletes the user.
|
|
DelUser(*common.User) error
|
|
|
|
// Token returns the token for the given user and label.
|
|
Token(string, string) (*common.Token, error)
|
|
|
|
// TokenList returns a list of all tokens for the given
|
|
// user login.
|
|
TokenList(string) ([]*common.Token, error)
|
|
|
|
// SetToken inserts a new user token in the datastore.
|
|
SetToken(*common.Token) error
|
|
|
|
// DelToken deletes the token.
|
|
DelToken(*common.Token) error
|
|
|
|
// Subscribed returns true if the user is subscribed
|
|
// to the named repository.
|
|
Subscribed(string, string) (bool, error)
|
|
|
|
// SetSubscriber inserts a subscriber for the named
|
|
// repository.
|
|
SetSubscriber(string, string) error
|
|
|
|
// DelSubscriber removes the subscriber by login for the
|
|
// named repository.
|
|
DelSubscriber(string, string) error
|
|
|
|
// Repo returns the repository with the given name.
|
|
Repo(string) (*common.Repo, error)
|
|
|
|
// RepoList returns a list of repositories for the
|
|
// given user account.
|
|
RepoList(string) ([]*common.Repo, error)
|
|
|
|
// RepoParams returns the private environment parameters
|
|
// for the given repository.
|
|
RepoParams(string) (map[string]string, error)
|
|
|
|
// RepoKeypair returns the private and public rsa keys
|
|
// for the given repository.
|
|
RepoKeypair(string) (*common.Keypair, error)
|
|
|
|
// SetRepo inserts or updates a repository.
|
|
SetRepo(*common.Repo) error
|
|
|
|
// SetRepo updates a repository. If the repository
|
|
// already exists ErrConflict is returned.
|
|
SetRepoNotExists(*common.User, *common.Repo) error
|
|
|
|
// SetRepoParams inserts or updates the private
|
|
// environment parameters for the named repository.
|
|
SetRepoParams(string, map[string]string) error
|
|
|
|
// SetRepoKeypair inserts or updates the private and
|
|
// public keypair for the named repository.
|
|
SetRepoKeypair(string, *common.Keypair) error
|
|
|
|
// DelRepo deletes the repository.
|
|
DelRepo(*common.Repo) error
|
|
|
|
// Build gets the specified build number for the
|
|
// named repository and build number
|
|
Build(string, int) (*common.Build, error)
|
|
|
|
// BuildList gets a list of recent builds for the
|
|
// named repository.
|
|
BuildList(string) ([]*common.Build, error)
|
|
|
|
// BuildLast gets the last executed build for the
|
|
// named repository.
|
|
BuildLast(string) (*common.Build, error)
|
|
|
|
// SetBuild inserts or updates a build for the named
|
|
// repository. The build number is incremented and
|
|
// assigned to the provided build.
|
|
SetBuild(string, *common.Build) error
|
|
|
|
// Status returns the status for the given repository
|
|
// and build number.
|
|
Status(string, int, string) (*common.Status, error)
|
|
|
|
// StatusList returned a list of all build statues for
|
|
// the given repository and build number.
|
|
StatusList(string, int) ([]*common.Status, error)
|
|
|
|
// SetStatus inserts a new build status for the
|
|
// named repository and build number. If the status already
|
|
// exists an error is returned.
|
|
SetStatus(string, int, *common.Status) error
|
|
|
|
// GetTask gets the task at index N for the named
|
|
// repository and build number.
|
|
Task(string, int, int) (*common.Task, error)
|
|
|
|
// TaskList gets all tasks for the named repository
|
|
// and build number.
|
|
TaskList(string, int) ([]*common.Task, error)
|
|
|
|
// SetTask inserts or updates a task for the named
|
|
// repository and build number.
|
|
SetTask(string, int, *common.Task) error
|
|
|
|
// LogReader gets the task logs at index N for
|
|
// the named repository and build number.
|
|
LogReader(string, int, int) (io.Reader, error)
|
|
|
|
// SetLogs inserts or updates a task logs for the
|
|
// named repository and build number.
|
|
SetLogs(string, int, int, []byte) error
|
|
|
|
// Experimental
|
|
|
|
// SetBuildState updates an existing build's start time,
|
|
// finish time, duration and state. No other fields are
|
|
// updated.
|
|
SetBuildState(string, *common.Build) error
|
|
|
|
// SetBuildStatus appends a new build status to an
|
|
// existing build record.
|
|
SetBuildStatus(string, int, *common.Status) error
|
|
|
|
// SetBuildTask updates an existing build task. The build
|
|
// and task must already exist. If the task does not exist
|
|
// an error is returned.
|
|
SetBuildTask(string, int, *common.Task) error
|
|
}
|