Documentation ¶
Index ¶
- Variables
- func ConvertToGroups(repos []*Repository) []string
- func CreateTemplate(name string, files []*TemplateFile) error
- func DeleteSecret(key string) error
- func DeleteTemplate(name string) error
- func GetJobPath(name string) (string, error)
- func GetSecret(key string, allowCreate bool) (string, error)
- func GetTemplate(name string) (string, error)
- func ListBuilderNames() ([]string, error)
- func ListJobNames() ([]string, error)
- func ListRemoteNames() ([]string, error)
- func ListTemplates() ([]string, error)
- func ListWorkflowNames() ([]string, error)
- func SetSecret(key string) (string, error)
- func SortRepositories(repos []*Repository)
- func SplitGroup(name string) (string, string)
- func UseTemplate(name, dst string) error
- type BuildFile
- type Builder
- type Job
- type JobError
- type JumpKeywordStorage
- type Remote
- type RemoteGroup
- type Repository
- func AttachRepository(remote *Remote, name, path string) (*Repository, error)
- func DiscoverLocalRepositories(rootDir string) ([]*Repository, error)
- func NewLocalRepository(rootDir, name string) (*Repository, error)
- func SelectLocalRepository(rootDir, name string) (*Repository, error)
- func WorkspaceRepository(remote *Remote, name string) (*Repository, error)
- func (repo *Repository) Base() string
- func (repo *Repository) Dir() string
- func (repo *Repository) EnsureDir() (string, error)
- func (repo *Repository) FullName() string
- func (repo *Repository) Group() string
- func (repo *Repository) MarkAccess()
- func (repo *Repository) Score() uint64
- func (repo *Repository) SetEnv(remote *Remote, env osutil.Env) error
- type RepositoryStorage
- func (s *RepositoryStorage) Add(repo *Repository) error
- func (s *RepositoryStorage) Close() error
- func (s *RepositoryStorage) Delete(repo *Repository)
- func (s *RepositoryStorage) DeleteAll(repo *Repository) error
- func (s *RepositoryStorage) GetByName(remote, name string) *Repository
- func (s *RepositoryStorage) GetByPath(path string) (*Repository, error)
- func (s *RepositoryStorage) GetCurrent() (*Repository, error)
- func (s *RepositoryStorage) GetLocal(remote *Remote, name string) (*Repository, error)
- func (s *RepositoryStorage) List(remote string) []*Repository
- func (s *RepositoryStorage) ReadOnly()
- type Secret
- type Secrets
- type TemplateFile
- type Workflow
- type WorkflowMatchItem
- type WorkflowSelect
Constants ¶
This section is empty.
Variables ¶
View Source
var DefaultBuilder = func() *Builder { var b Builder err := yaml.Unmarshal([]byte(config.DefaultBuilder), &b) if err != nil { panic(err) } err = b.Validate() if err != nil { panic(err) } return &b }()
View Source
var MuteJob bool
Functions ¶
func ConvertToGroups ¶ added in v0.1.0
func ConvertToGroups(repos []*Repository) []string
func CreateTemplate ¶ added in v0.5.0
func CreateTemplate(name string, files []*TemplateFile) error
func DeleteSecret ¶ added in v0.6.0
func DeleteTemplate ¶ added in v0.5.0
func GetJobPath ¶ added in v0.2.0
func GetTemplate ¶ added in v0.5.0
func ListBuilderNames ¶ added in v0.2.0
func ListJobNames ¶ added in v0.2.0
func ListRemoteNames ¶
func ListTemplates ¶ added in v0.5.0
func ListWorkflowNames ¶ added in v0.2.0
func SortRepositories ¶ added in v0.3.0
func SortRepositories(repos []*Repository)
func SplitGroup ¶
func UseTemplate ¶ added in v0.5.0
Types ¶
type Builder ¶ added in v0.2.0
type Builder struct { Create []*Job `yaml:"create" validate:"dive"` Templates []string `yaml:"templates"` Files []*BuildFile `yaml:"files" validate:"unique=Name,dive"` Init []*Job `yaml:"init" validate:"dive"` // contains filtered or unexported fields }
func GetBuilder ¶ added in v0.2.0
type Job ¶ added in v0.2.0
type Job struct { Name string `yaml:"name" validate:"required"` Run string `yaml:"run"` RequireEnv []string `yaml:"require_env"` }
type JobError ¶ added in v0.2.0
type JumpKeywordStorage ¶ added in v0.3.0
type JumpKeywordStorage struct {
// contains filtered or unexported fields
}
func NewJumpKeywordStorage ¶ added in v0.3.0
func NewJumpKeywordStorage() (*JumpKeywordStorage, error)
func (*JumpKeywordStorage) Add ¶ added in v0.3.0
func (s *JumpKeywordStorage) Add(kw string)
func (*JumpKeywordStorage) Close ¶ added in v0.3.0
func (s *JumpKeywordStorage) Close() error
func (*JumpKeywordStorage) List ¶ added in v0.3.0
func (s *JumpKeywordStorage) List() []string
type Remote ¶
type Remote struct { Name string `toml:"-"` Host string `toml:"host" validate:"required"` Protocol string `toml:"protocol" validate:"enum_protocol"` User string `toml:"user" validate:"required"` Email string `toml:"email" validate:"email"` Provider string `toml:"provider" validate:"enum_provider"` Token string `toml:"token"` TokenSecret bool `toml:"token_secret"` API string `toml:"api" validate:"omitempty,uri"` Groups []*RemoteGroup `toml:"groups" validate:"unique=Name,dive"` }
func (*Remote) GetCloneURL ¶
func (r *Remote) GetCloneURL(repo *Repository) (string, error)
func (*Remote) GetUserEmail ¶
func (r *Remote) GetUserEmail(repo *Repository) (string, string)
type RemoteGroup ¶
type Repository ¶
type Repository struct { Path string Name string Remote string LastAccess int64 Access uint64 // contains filtered or unexported fields }
func AttachRepository ¶
func AttachRepository(remote *Remote, name, path string) (*Repository, error)
func DiscoverLocalRepositories ¶ added in v0.2.0
func DiscoverLocalRepositories(rootDir string) ([]*Repository, error)
func NewLocalRepository ¶ added in v0.2.0
func NewLocalRepository(rootDir, name string) (*Repository, error)
func SelectLocalRepository ¶ added in v0.6.0
func SelectLocalRepository(rootDir, name string) (*Repository, error)
func WorkspaceRepository ¶ added in v0.2.0
func WorkspaceRepository(remote *Remote, name string) (*Repository, error)
func (*Repository) Base ¶
func (repo *Repository) Base() string
func (*Repository) Dir ¶ added in v0.2.0
func (repo *Repository) Dir() string
func (*Repository) EnsureDir ¶ added in v0.2.0
func (repo *Repository) EnsureDir() (string, error)
func (*Repository) FullName ¶
func (repo *Repository) FullName() string
func (*Repository) Group ¶
func (repo *Repository) Group() string
func (*Repository) MarkAccess ¶ added in v0.3.0
func (repo *Repository) MarkAccess()
func (*Repository) Score ¶ added in v0.3.0
func (repo *Repository) Score() uint64
calculate score for a repo. The algorithm comes from:
https://github.com/ajeetdsouza/zoxide/wiki/Algorithm
Each repo is assigned a access count, starting with 1 the first time it is accessed. Every repo access increases the access count by 1. When a query is made, we calculate score based on the last time the repo was accessed:
- Last access within the last hour: score = access * 16
- Last access within the last day: score = access * 8
- Last access within the last week: score = access * 2
- Last access more that one week: score = access
type RepositoryStorage ¶
type RepositoryStorage struct {
// contains filtered or unexported fields
}
func NewRepositoryStorage ¶
func NewRepositoryStorage() (*RepositoryStorage, error)
func (*RepositoryStorage) Add ¶
func (s *RepositoryStorage) Add(repo *Repository) error
func (*RepositoryStorage) Close ¶
func (s *RepositoryStorage) Close() error
func (*RepositoryStorage) Delete ¶
func (s *RepositoryStorage) Delete(repo *Repository)
func (*RepositoryStorage) DeleteAll ¶ added in v0.5.0
func (s *RepositoryStorage) DeleteAll(repo *Repository) error
func (*RepositoryStorage) GetByName ¶
func (s *RepositoryStorage) GetByName(remote, name string) *Repository
func (*RepositoryStorage) GetByPath ¶
func (s *RepositoryStorage) GetByPath(path string) (*Repository, error)
func (*RepositoryStorage) GetCurrent ¶ added in v0.5.0
func (s *RepositoryStorage) GetCurrent() (*Repository, error)
func (*RepositoryStorage) GetLocal ¶ added in v0.5.0
func (s *RepositoryStorage) GetLocal(remote *Remote, name string) (*Repository, error)
func (*RepositoryStorage) List ¶
func (s *RepositoryStorage) List(remote string) []*Repository
func (*RepositoryStorage) ReadOnly ¶
func (s *RepositoryStorage) ReadOnly()
type TemplateFile ¶ added in v0.5.0
type TemplateFile struct { Name string Read io.ReadCloser Mode os.FileMode }
func FindTemplateFiles ¶ added in v0.5.0
func FindTemplateFiles(root string) ([]*TemplateFile, error)
func (*TemplateFile) WriteTo ¶ added in v0.5.0
func (file *TemplateFile) WriteTo(dstRoot string) error
type Workflow ¶ added in v0.2.0
type Workflow struct { Select *WorkflowSelect `yaml:"select"` Jobs []*Job `yaml:"jobs" validate:"required,dive"` }
func GetWorkflow ¶ added in v0.2.0
type WorkflowMatchItem ¶ added in v0.2.0
type WorkflowMatchItem struct { Path string Env osutil.Env Repo *Repository }
type WorkflowSelect ¶ added in v0.2.0
func (*WorkflowSelect) Match ¶ added in v0.2.0
func (s *WorkflowSelect) Match(store *RepositoryStorage) ([]*WorkflowMatchItem, error)
Click to show internal directories.
Click to hide internal directories.