Documentation ¶
Overview ¶
Package cache contains a caching layer on top of the low-level bug and identity functions to provide efficient querying, filtering, sorting.
Index ¶
- Variables
- type BugCache
- func (c *BugCache) AddComment(message string) (entity.CombinedId, *bug.AddCommentOperation, error)
- func (c *BugCache) AddCommentRaw(author *IdentityCache, unixTime int64, message string, files []repository.Hash, ...) (entity.CombinedId, *bug.AddCommentOperation, error)
- func (c *BugCache) AddCommentWithFiles(message string, files []repository.Hash) (entity.CombinedId, *bug.AddCommentOperation, error)
- func (c *BugCache) ChangeLabels(added []string, removed []string) ([]bug.LabelChangeResult, *bug.LabelChangeOperation, error)
- func (c *BugCache) ChangeLabelsRaw(author *IdentityCache, unixTime int64, added []string, removed []string, ...) ([]bug.LabelChangeResult, *bug.LabelChangeOperation, error)
- func (c *BugCache) Close() (*bug.SetStatusOperation, error)
- func (c *BugCache) CloseRaw(author *IdentityCache, unixTime int64, metadata map[string]string) (*bug.SetStatusOperation, error)
- func (c *BugCache) Commit() error
- func (c *BugCache) CommitAsNeeded() error
- func (c *BugCache) EditComment(target entity.CombinedId, message string) (*bug.EditCommentOperation, error)
- func (c *BugCache) EditCommentRaw(author *IdentityCache, unixTime int64, target entity.CombinedId, ...) (*bug.EditCommentOperation, error)
- func (c *BugCache) EditCreateComment(body string) (entity.CombinedId, *bug.EditCommentOperation, error)
- func (c *BugCache) EditCreateCommentRaw(author *IdentityCache, unixTime int64, body string, metadata map[string]string) (entity.CombinedId, *bug.EditCommentOperation, error)
- func (c *BugCache) ForceChangeLabels(added []string, removed []string) (*bug.LabelChangeOperation, error)
- func (c *BugCache) ForceChangeLabelsRaw(author *IdentityCache, unixTime int64, added []string, removed []string, ...) (*bug.LabelChangeOperation, error)
- func (c *BugCache) Id() entity.Id
- func (c *BugCache) NeedCommit() bool
- func (c *BugCache) Open() (*bug.SetStatusOperation, error)
- func (c *BugCache) OpenRaw(author *IdentityCache, unixTime int64, metadata map[string]string) (*bug.SetStatusOperation, error)
- func (c *BugCache) ResolveOperationWithMetadata(key string, value string) (entity.Id, error)
- func (c *BugCache) SetMetadata(target entity.Id, newMetadata map[string]string) (*dag.SetMetadataOperation[*bug.Snapshot], error)
- func (c *BugCache) SetMetadataRaw(author *IdentityCache, unixTime int64, target entity.Id, ...) (*dag.SetMetadataOperation[*bug.Snapshot], error)
- func (c *BugCache) SetTitle(title string) (*bug.SetTitleOperation, error)
- func (c *BugCache) SetTitleRaw(author *IdentityCache, unixTime int64, title string, ...) (*bug.SetTitleOperation, error)
- func (c *BugCache) Snapshot() *bug.Snapshot
- type BugExcerpt
- type BugsByCreationTime
- type BugsByEditTime
- type BugsById
- type Filter
- func ActorFilter(query string) Filter
- func AuthorFilter(query string) Filter
- func LabelFilter(label string) Filter
- func MetadataFilter(pair query.StringPair) Filter
- func NoLabelFilter() Filter
- func ParticipantFilter(query string) Filter
- func StatusFilter(status common.Status) Filter
- func TitleFilter(query string) Filter
- type IdentityById
- type IdentityCache
- type IdentityExcerpt
- type LRUIdCache
- func (c *LRUIdCache) Add(id entity.Id) bool
- func (c *LRUIdCache) Contains(id entity.Id) bool
- func (c *LRUIdCache) Get(id entity.Id) bool
- func (c *LRUIdCache) GetOldest() (entity.Id, bool)
- func (c *LRUIdCache) GetOldestToNewest() (ids []entity.Id)
- func (c *LRUIdCache) Len() int
- func (c *LRUIdCache) Remove(id entity.Id) bool
- type LegacyAuthorExcerpt
- type Matcher
- type MultiRepoCache
- func (c *MultiRepoCache) Close() error
- func (c *MultiRepoCache) DefaultRepo() (*RepoCache, error)
- func (c *MultiRepoCache) RegisterDefaultRepository(repo repository.ClockedRepo) (*RepoCache, error)
- func (c *MultiRepoCache) RegisterRepository(ref string, repo repository.ClockedRepo) (*RepoCache, error)
- func (c *MultiRepoCache) ResolveRepo(ref string) (*RepoCache, error)
- type RepoCache
- func (c *RepoCache) AllBugsIds() []entity.Id
- func (c *RepoCache) AllIdentityIds() []entity.Id
- func (c *RepoCache) AnyConfig() repository.ConfigRead
- func (c *RepoCache) Close() error
- func (c *RepoCache) Fetch(remote string) (string, error)
- func (c *RepoCache) GetCoreEditor() (string, error)
- func (c *RepoCache) GetRemotes() (map[string]string, error)
- func (c *RepoCache) GetUserEmail() (string, error)
- func (c *RepoCache) GetUserIdentity() (*IdentityCache, error)
- func (c *RepoCache) GetUserIdentityExcerpt() (*IdentityExcerpt, error)
- func (c *RepoCache) GetUserName() (string, error)
- func (c *RepoCache) GlobalConfig() repository.Config
- func (c *RepoCache) IsUserIdentitySet() (bool, error)
- func (c *RepoCache) Keyring() repository.Keyring
- func (c *RepoCache) LocalConfig() repository.Config
- func (c *RepoCache) LocalStorage() billy.Filesystem
- func (c *RepoCache) MergeAll(remote string) <-chan entity.MergeResult
- func (c *RepoCache) Name() string
- func (c *RepoCache) NewBug(title string, message string) (*BugCache, *bug.CreateOperation, error)
- func (c *RepoCache) NewBugRaw(author *IdentityCache, unixTime int64, title string, message string, ...) (*BugCache, *bug.CreateOperation, error)
- func (c *RepoCache) NewBugWithFiles(title string, message string, files []repository.Hash) (*BugCache, *bug.CreateOperation, error)
- func (c *RepoCache) NewIdentity(name string, email string) (*IdentityCache, error)
- func (c *RepoCache) NewIdentityFromGitUser() (*IdentityCache, error)
- func (c *RepoCache) NewIdentityFromGitUserRaw(metadata map[string]string) (*IdentityCache, error)
- func (c *RepoCache) NewIdentityFull(name string, email string, login string, avatarUrl string, ...) (*IdentityCache, error)
- func (c *RepoCache) NewIdentityRaw(name string, email string, login string, avatarUrl string, ...) (*IdentityCache, error)
- func (c *RepoCache) Pull(remote string) error
- func (c *RepoCache) Push(remote string) (string, error)
- func (c *RepoCache) QueryBugs(q *query.Query) ([]entity.Id, error)
- func (c *RepoCache) ReadData(hash repository.Hash) ([]byte, error)
- func (c *RepoCache) RemoveBug(prefix string) error
- func (c *RepoCache) ResolveBug(id entity.Id) (*BugCache, error)
- func (c *RepoCache) ResolveBugCreateMetadata(key string, value string) (*BugCache, error)
- func (c *RepoCache) ResolveBugExcerpt(id entity.Id) (*BugExcerpt, error)
- func (c *RepoCache) ResolveBugExcerptMatcher(f func(*BugExcerpt) bool) (*BugExcerpt, error)
- func (c *RepoCache) ResolveBugExcerptPrefix(prefix string) (*BugExcerpt, error)
- func (c *RepoCache) ResolveBugMatcher(f func(*BugExcerpt) bool) (*BugCache, error)
- func (c *RepoCache) ResolveBugPrefix(prefix string) (*BugCache, error)
- func (c *RepoCache) ResolveComment(prefix string) (*BugCache, entity.CombinedId, error)
- func (c *RepoCache) ResolveIdentity(id entity.Id) (*IdentityCache, error)
- func (c *RepoCache) ResolveIdentityExcerpt(id entity.Id) (*IdentityExcerpt, error)
- func (c *RepoCache) ResolveIdentityExcerptMatcher(f func(*IdentityExcerpt) bool) (*IdentityExcerpt, error)
- func (c *RepoCache) ResolveIdentityExcerptPrefix(prefix string) (*IdentityExcerpt, error)
- func (c *RepoCache) ResolveIdentityImmutableMetadata(key string, value string) (*IdentityCache, error)
- func (c *RepoCache) ResolveIdentityMatcher(f func(*IdentityExcerpt) bool) (*IdentityCache, error)
- func (c *RepoCache) ResolveIdentityPrefix(prefix string) (*IdentityCache, error)
- func (c *RepoCache) SetUserIdentity(i *IdentityCache) error
- func (c *RepoCache) StoreData(data []byte) (repository.Hash, error)
- func (c *RepoCache) ValidLabels() []bug.Label
Constants ¶
This section is empty.
Variables ¶
var ErrNoMatchingOp = fmt.Errorf("no matching operation found")
Functions ¶
This section is empty.
Types ¶
type BugCache ¶
type BugCache struct {
// contains filtered or unexported fields
}
BugCache is a wrapper around a Bug. It provides multiple functions:
1. Provide a higher level API to use than the raw API from Bug. 2. Maintain an up-to-date Snapshot available. 3. Deal with concurrency.
func (*BugCache) AddComment ¶
func (c *BugCache) AddComment(message string) (entity.CombinedId, *bug.AddCommentOperation, error)
func (*BugCache) AddCommentRaw ¶
func (c *BugCache) AddCommentRaw(author *IdentityCache, unixTime int64, message string, files []repository.Hash, metadata map[string]string) (entity.CombinedId, *bug.AddCommentOperation, error)
func (*BugCache) AddCommentWithFiles ¶
func (c *BugCache) AddCommentWithFiles(message string, files []repository.Hash) (entity.CombinedId, *bug.AddCommentOperation, error)
func (*BugCache) ChangeLabels ¶
func (c *BugCache) ChangeLabels(added []string, removed []string) ([]bug.LabelChangeResult, *bug.LabelChangeOperation, error)
func (*BugCache) ChangeLabelsRaw ¶
func (c *BugCache) ChangeLabelsRaw(author *IdentityCache, unixTime int64, added []string, removed []string, metadata map[string]string) ([]bug.LabelChangeResult, *bug.LabelChangeOperation, error)
func (*BugCache) CloseRaw ¶
func (c *BugCache) CloseRaw(author *IdentityCache, unixTime int64, metadata map[string]string) (*bug.SetStatusOperation, error)
func (*BugCache) CommitAsNeeded ¶
func (*BugCache) EditComment ¶
func (c *BugCache) EditComment(target entity.CombinedId, message string) (*bug.EditCommentOperation, error)
func (*BugCache) EditCommentRaw ¶
func (c *BugCache) EditCommentRaw(author *IdentityCache, unixTime int64, target entity.CombinedId, message string, metadata map[string]string) (*bug.EditCommentOperation, error)
func (*BugCache) EditCreateComment ¶
func (c *BugCache) EditCreateComment(body string) (entity.CombinedId, *bug.EditCommentOperation, error)
EditCreateComment is a convenience function to edit the body of a bug (the first comment)
func (*BugCache) EditCreateCommentRaw ¶
func (c *BugCache) EditCreateCommentRaw(author *IdentityCache, unixTime int64, body string, metadata map[string]string) (entity.CombinedId, *bug.EditCommentOperation, error)
EditCreateCommentRaw is a convenience function to edit the body of a bug (the first comment)
func (*BugCache) ForceChangeLabels ¶
func (*BugCache) ForceChangeLabelsRaw ¶
func (c *BugCache) ForceChangeLabelsRaw(author *IdentityCache, unixTime int64, added []string, removed []string, metadata map[string]string) (*bug.LabelChangeOperation, error)
func (*BugCache) NeedCommit ¶
func (*BugCache) OpenRaw ¶
func (c *BugCache) OpenRaw(author *IdentityCache, unixTime int64, metadata map[string]string) (*bug.SetStatusOperation, error)
func (*BugCache) ResolveOperationWithMetadata ¶
ResolveOperationWithMetadata will find an operation that has the matching metadata
func (*BugCache) SetMetadata ¶
func (*BugCache) SetMetadataRaw ¶
func (*BugCache) SetTitle ¶
func (c *BugCache) SetTitle(title string) (*bug.SetTitleOperation, error)
func (*BugCache) SetTitleRaw ¶
func (c *BugCache) SetTitleRaw(author *IdentityCache, unixTime int64, title string, metadata map[string]string) (*bug.SetTitleOperation, error)
type BugExcerpt ¶
type BugExcerpt struct { Id entity.Id CreateLamportTime lamport.Time EditLamportTime lamport.Time CreateUnixTime int64 EditUnixTime int64 AuthorId entity.Id Status common.Status Labels []bug.Label Title string LenComments int Actors []entity.Id Participants []entity.Id CreateMetadata map[string]string }
BugExcerpt hold a subset of the bug values to be able to sort and filter bugs efficiently without having to read and compile each raw bugs.
func NewBugExcerpt ¶
func NewBugExcerpt(b bug.Interface, snap *bug.Snapshot) *BugExcerpt
func (*BugExcerpt) CreateTime ¶ added in v0.8.0
func (b *BugExcerpt) CreateTime() time.Time
func (*BugExcerpt) EditTime ¶ added in v0.8.0
func (b *BugExcerpt) EditTime() time.Time
type BugsByCreationTime ¶
type BugsByCreationTime []*BugExcerpt
func (BugsByCreationTime) Len ¶
func (b BugsByCreationTime) Len() int
func (BugsByCreationTime) Less ¶
func (b BugsByCreationTime) Less(i, j int) bool
func (BugsByCreationTime) Swap ¶
func (b BugsByCreationTime) Swap(i, j int)
type BugsByEditTime ¶
type BugsByEditTime []*BugExcerpt
func (BugsByEditTime) Len ¶
func (b BugsByEditTime) Len() int
func (BugsByEditTime) Less ¶
func (b BugsByEditTime) Less(i, j int) bool
func (BugsByEditTime) Swap ¶
func (b BugsByEditTime) Swap(i, j int)
type BugsById ¶
type BugsById []*BugExcerpt
type Filter ¶
type Filter func(excerpt *BugExcerpt, resolver resolver) bool
Filter is a predicate that match a subset of bugs
func ActorFilter ¶
ActorFilter return a Filter that match a bug actor
func AuthorFilter ¶
AuthorFilter return a Filter that match a bug author
func LabelFilter ¶
LabelFilter return a Filter that match a label
func MetadataFilter ¶ added in v0.8.0
func MetadataFilter(pair query.StringPair) Filter
MetadataFilter return a Filter that match a bug metadata at creation time
func NoLabelFilter ¶
func NoLabelFilter() Filter
NoLabelFilter return a Filter that match the absence of labels
func ParticipantFilter ¶
ParticipantFilter return a Filter that match a bug participant
func StatusFilter ¶
StatusFilter return a Filter that match a bug status
func TitleFilter ¶
TitleFilter return a Filter that match if the title contains the given query
type IdentityById ¶
type IdentityById []*IdentityExcerpt
func (IdentityById) Len ¶
func (b IdentityById) Len() int
func (IdentityById) Less ¶
func (b IdentityById) Less(i, j int) bool
func (IdentityById) Swap ¶
func (b IdentityById) Swap(i, j int)
type IdentityCache ¶
IdentityCache is a wrapper around an Identity for caching.
func NewIdentityCache ¶
func NewIdentityCache(repoCache *RepoCache, id *identity.Identity) *IdentityCache
func (*IdentityCache) Commit ¶
func (i *IdentityCache) Commit() error
func (*IdentityCache) CommitAsNeeded ¶
func (i *IdentityCache) CommitAsNeeded() error
func (*IdentityCache) Mutate ¶
func (i *IdentityCache) Mutate(repo repository.RepoClock, f func(*identity.Mutator)) error
type IdentityExcerpt ¶
type IdentityExcerpt struct { Id entity.Id Name string Login string ImmutableMetadata map[string]string }
IdentityExcerpt hold a subset of the identity values to be able to sort and filter identities efficiently without having to read and compile each raw identity.
func NewIdentityExcerpt ¶
func NewIdentityExcerpt(i *identity.Identity) *IdentityExcerpt
func (*IdentityExcerpt) DisplayName ¶
func (i *IdentityExcerpt) DisplayName() string
DisplayName return a non-empty string to display, representing the identity, based on the non-empty values.
func (*IdentityExcerpt) Match ¶
func (i *IdentityExcerpt) Match(query string) bool
Match matches a query with the identity name, login and ID prefixes
type LRUIdCache ¶ added in v0.8.0
type LRUIdCache struct {
// contains filtered or unexported fields
}
func NewLRUIdCache ¶ added in v0.8.0
func NewLRUIdCache() *LRUIdCache
func (*LRUIdCache) GetOldestToNewest ¶ added in v0.8.0
func (c *LRUIdCache) GetOldestToNewest() (ids []entity.Id)
func (*LRUIdCache) Len ¶ added in v0.8.0
func (c *LRUIdCache) Len() int
type LegacyAuthorExcerpt ¶
identity.Bare data are directly embedded in the bug excerpt
func (LegacyAuthorExcerpt) DisplayName ¶
func (l LegacyAuthorExcerpt) DisplayName() string
type Matcher ¶
type Matcher struct { Status []Filter Author []Filter Metadata []Filter Actor []Filter Participant []Filter Label []Filter Title []Filter NoFilters []Filter }
Matcher is a collection of Filter that implement a complex filter
func (*Matcher) Match ¶
func (f *Matcher) Match(excerpt *BugExcerpt, resolver resolver) bool
Match check if a bug match the set of filters
type MultiRepoCache ¶
type MultiRepoCache struct {
// contains filtered or unexported fields
}
MultiRepoCache is the root cache, holding multiple RepoCache.
func NewMultiRepoCache ¶
func NewMultiRepoCache() *MultiRepoCache
func (*MultiRepoCache) Close ¶
func (c *MultiRepoCache) Close() error
Close will do anything that is needed to close the cache properly
func (*MultiRepoCache) DefaultRepo ¶
func (c *MultiRepoCache) DefaultRepo() (*RepoCache, error)
DefaultRepo retrieve the default repository
func (*MultiRepoCache) RegisterDefaultRepository ¶
func (c *MultiRepoCache) RegisterDefaultRepository(repo repository.ClockedRepo) (*RepoCache, error)
RegisterDefaultRepository register a unnamed repository. Use this for mono-repo setup
func (*MultiRepoCache) RegisterRepository ¶
func (c *MultiRepoCache) RegisterRepository(ref string, repo repository.ClockedRepo) (*RepoCache, error)
RegisterRepository register a named repository. Use this for multi-repo setup
func (*MultiRepoCache) ResolveRepo ¶
func (c *MultiRepoCache) ResolveRepo(ref string) (*RepoCache, error)
ResolveRepo retrieve a repository with a reference
type RepoCache ¶
type RepoCache struct {
// contains filtered or unexported fields
}
RepoCache is a cache for a Repository. This cache has multiple functions:
- After being loaded, a Bug is kept in memory in the cache, allowing for fast access later.
- The cache maintain in memory and on disk a pre-digested excerpt for each bug, allowing for fast querying the whole set of bugs without having to load them individually.
- The cache guarantee that a single instance of a Bug is loaded at once, avoiding loss of data that we could have with multiple copies in the same process.
- The same way, the cache maintain in memory a single copy of the loaded identities.
The cache also protect the on-disk data by locking the git repository for its own usage, by writing a lock file. Of course, normal git operations are not affected, only git-bug related one.
func NewNamedRepoCache ¶
func NewNamedRepoCache(r repository.ClockedRepo, name string) (*RepoCache, error)
func NewRepoCache ¶
func NewRepoCache(r repository.ClockedRepo) (*RepoCache, error)
func (*RepoCache) AllBugsIds ¶
AllBugsIds return all known bug ids
func (*RepoCache) AllIdentityIds ¶
AllIdentityIds return all known identity ids
func (*RepoCache) AnyConfig ¶ added in v0.8.0
func (c *RepoCache) AnyConfig() repository.ConfigRead
AnyConfig give access to a merged local/global configuration
func (*RepoCache) Fetch ¶
Fetch retrieve updates from a remote This does not change the local bugs or identities state
func (*RepoCache) GetCoreEditor ¶
GetCoreEditor returns the name of the editor that the user has used to configure git.
func (*RepoCache) GetRemotes ¶
GetRemotes returns the configured remotes repositories.
func (*RepoCache) GetUserEmail ¶
GetUserEmail returns the email address that the user has used to configure git.
func (*RepoCache) GetUserIdentity ¶
func (c *RepoCache) GetUserIdentity() (*IdentityCache, error)
func (*RepoCache) GetUserIdentityExcerpt ¶
func (c *RepoCache) GetUserIdentityExcerpt() (*IdentityExcerpt, error)
func (*RepoCache) GetUserName ¶
GetUserName returns the name the user has used to configure git
func (*RepoCache) GlobalConfig ¶
func (c *RepoCache) GlobalConfig() repository.Config
GlobalConfig give access to the global scoped configuration
func (*RepoCache) IsUserIdentitySet ¶
func (*RepoCache) Keyring ¶ added in v0.8.0
func (c *RepoCache) Keyring() repository.Keyring
Keyring give access to a user-wide storage for secrets
func (*RepoCache) LocalConfig ¶
func (c *RepoCache) LocalConfig() repository.Config
LocalConfig give access to the repository scoped configuration
func (*RepoCache) LocalStorage ¶ added in v0.8.0
func (c *RepoCache) LocalStorage() billy.Filesystem
LocalStorage return a billy.Filesystem giving access to $RepoPath/.git/git-bug
func (*RepoCache) MergeAll ¶
func (c *RepoCache) MergeAll(remote string) <-chan entity.MergeResult
MergeAll will merge all the available remote bug and identities
func (*RepoCache) NewBug ¶
NewBug create a new bug The new bug is written in the repository (commit)
func (*RepoCache) NewBugRaw ¶
func (c *RepoCache) NewBugRaw(author *IdentityCache, unixTime int64, title string, message string, files []repository.Hash, metadata map[string]string) (*BugCache, *bug.CreateOperation, error)
NewBugRaw create a new bug with attached files for the message, as well as metadata for the Create operation. The new bug is written in the repository (commit)
func (*RepoCache) NewBugWithFiles ¶
func (c *RepoCache) NewBugWithFiles(title string, message string, files []repository.Hash) (*BugCache, *bug.CreateOperation, error)
NewBugWithFiles create a new bug with attached files for the message The new bug is written in the repository (commit)
func (*RepoCache) NewIdentity ¶
func (c *RepoCache) NewIdentity(name string, email string) (*IdentityCache, error)
NewIdentity create a new identity The new identity is written in the repository (commit)
func (*RepoCache) NewIdentityFromGitUser ¶
func (c *RepoCache) NewIdentityFromGitUser() (*IdentityCache, error)
func (*RepoCache) NewIdentityFromGitUserRaw ¶
func (c *RepoCache) NewIdentityFromGitUserRaw(metadata map[string]string) (*IdentityCache, error)
func (*RepoCache) NewIdentityFull ¶
func (c *RepoCache) NewIdentityFull(name string, email string, login string, avatarUrl string, keys []*identity.Key) (*IdentityCache, error)
NewIdentityFull create a new identity The new identity is written in the repository (commit)
func (*RepoCache) NewIdentityRaw ¶
func (*RepoCache) Pull ¶
Pull will do a Fetch + MergeAll This function will return an error if a merge fail
func (*RepoCache) ReadData ¶ added in v0.8.0
func (c *RepoCache) ReadData(hash repository.Hash) ([]byte, error)
ReadData will attempt to read arbitrary data from the given hash
func (*RepoCache) RemoveBug ¶ added in v0.8.0
RemoveBug removes a bug from the cache and repo given a bug id prefix
func (*RepoCache) ResolveBug ¶
ResolveBug retrieve a bug matching the exact given id
func (*RepoCache) ResolveBugCreateMetadata ¶
ResolveBugCreateMetadata retrieve a bug that has the exact given metadata on its Create operation, that is, the first operation. It fails if multiple bugs match.
func (*RepoCache) ResolveBugExcerpt ¶
func (c *RepoCache) ResolveBugExcerpt(id entity.Id) (*BugExcerpt, error)
ResolveBugExcerpt retrieve a BugExcerpt matching the exact given id
func (*RepoCache) ResolveBugExcerptMatcher ¶
func (c *RepoCache) ResolveBugExcerptMatcher(f func(*BugExcerpt) bool) (*BugExcerpt, error)
func (*RepoCache) ResolveBugExcerptPrefix ¶
func (c *RepoCache) ResolveBugExcerptPrefix(prefix string) (*BugExcerpt, error)
ResolveBugExcerptPrefix retrieve a BugExcerpt matching an id prefix. It fails if multiple bugs match.
func (*RepoCache) ResolveBugMatcher ¶
func (c *RepoCache) ResolveBugMatcher(f func(*BugExcerpt) bool) (*BugCache, error)
func (*RepoCache) ResolveBugPrefix ¶
ResolveBugPrefix retrieve a bug matching an id prefix. It fails if multiple bugs match.
func (*RepoCache) ResolveComment ¶ added in v0.8.0
ResolveComment search for a Bug/Comment combination matching the merged bug/comment Id prefix. Returns the Bug containing the Comment and the Comment's Id.
func (*RepoCache) ResolveIdentity ¶
func (c *RepoCache) ResolveIdentity(id entity.Id) (*IdentityCache, error)
ResolveIdentity retrieve an identity matching the exact given id
func (*RepoCache) ResolveIdentityExcerpt ¶
func (c *RepoCache) ResolveIdentityExcerpt(id entity.Id) (*IdentityExcerpt, error)
ResolveIdentityExcerpt retrieve a IdentityExcerpt matching the exact given id
func (*RepoCache) ResolveIdentityExcerptMatcher ¶
func (c *RepoCache) ResolveIdentityExcerptMatcher(f func(*IdentityExcerpt) bool) (*IdentityExcerpt, error)
func (*RepoCache) ResolveIdentityExcerptPrefix ¶
func (c *RepoCache) ResolveIdentityExcerptPrefix(prefix string) (*IdentityExcerpt, error)
ResolveIdentityExcerptPrefix retrieve a IdentityExcerpt matching an id prefix. It fails if multiple identities match.
func (*RepoCache) ResolveIdentityImmutableMetadata ¶
func (c *RepoCache) ResolveIdentityImmutableMetadata(key string, value string) (*IdentityCache, error)
ResolveIdentityImmutableMetadata retrieve an Identity that has the exact given metadata on one of it's version. If multiple version have the same key, the first defined take precedence.
func (*RepoCache) ResolveIdentityMatcher ¶
func (c *RepoCache) ResolveIdentityMatcher(f func(*IdentityExcerpt) bool) (*IdentityCache, error)
func (*RepoCache) ResolveIdentityPrefix ¶
func (c *RepoCache) ResolveIdentityPrefix(prefix string) (*IdentityCache, error)
ResolveIdentityPrefix retrieve an Identity matching an id prefix. It fails if multiple identities match.
func (*RepoCache) SetUserIdentity ¶
func (c *RepoCache) SetUserIdentity(i *IdentityCache) error
func (*RepoCache) StoreData ¶ added in v0.8.0
func (c *RepoCache) StoreData(data []byte) (repository.Hash, error)
StoreData will store arbitrary data and return the corresponding hash
func (*RepoCache) ValidLabels ¶
ValidLabels list valid labels
Note: in the future, a proper label policy could be implemented where valid labels are defined in a configuration file. Until that, the default behavior is to return the list of labels already used.