Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ContextKey = &struct{ string }{"store"}
ContextKey is the store context key.
Functions ¶
Types ¶
type AccessTokenStore ¶
type AccessTokenStore interface {
GetAccessToken(ctx context.Context, h db.Handler, id int64) (models.AccessToken, error)
GetAccessTokenByToken(ctx context.Context, h db.Handler, token string) (models.AccessToken, error)
GetAccessTokensByUserID(ctx context.Context, h db.Handler, userID int64) ([]models.AccessToken, error)
CreateAccessToken(ctx context.Context, h db.Handler, name string, userID int64, token string, expiresAt time.Time) (models.AccessToken, error)
DeleteAccessToken(ctx context.Context, h db.Handler, id int64) error
DeleteAccessTokenForUser(ctx context.Context, h db.Handler, userID int64, id int64) error
}
AccessTokenStore is an interface for managing access tokens.
type CollaboratorStore ¶
type CollaboratorStore interface {
GetCollabByUsernameAndRepo(ctx context.Context, h db.Handler, username string, repo string) (models.Collab, error)
AddCollabByUsernameAndRepo(ctx context.Context, h db.Handler, username string, repo string, level access.AccessLevel) error
RemoveCollabByUsernameAndRepo(ctx context.Context, h db.Handler, username string, repo string) error
ListCollabsByRepo(ctx context.Context, h db.Handler, repo string) ([]models.Collab, error)
ListCollabsByRepoAsUsers(ctx context.Context, h db.Handler, repo string) ([]models.User, error)
}
CollaboratorStore is an interface for managing collaborators.
type LFSStore ¶
type LFSStore interface {
CreateLFSObject(ctx context.Context, h db.Handler, repoID int64, oid string, size int64) error
GetLFSObjectByOid(ctx context.Context, h db.Handler, repoID int64, oid string) (models.LFSObject, error)
GetLFSObjects(ctx context.Context, h db.Handler, repoID int64) ([]models.LFSObject, error)
GetLFSObjectsByName(ctx context.Context, h db.Handler, name string) ([]models.LFSObject, error)
DeleteLFSObjectByOid(ctx context.Context, h db.Handler, repoID int64, oid string) error
CreateLFSLockForUser(ctx context.Context, h db.Handler, repoID int64, userID int64, path string, refname string) error
GetLFSLocks(ctx context.Context, h db.Handler, repoID int64, page int, limit int) ([]models.LFSLock, error)
GetLFSLocksWithCount(ctx context.Context, h db.Handler, repoID int64, page int, limit int) ([]models.LFSLock, int64, error)
GetLFSLocksForUser(ctx context.Context, h db.Handler, repoID int64, userID int64) ([]models.LFSLock, error)
GetLFSLockForPath(ctx context.Context, h db.Handler, repoID int64, path string) (models.LFSLock, error)
GetLFSLockForUserPath(ctx context.Context, h db.Handler, repoID int64, userID int64, path string) (models.LFSLock, error)
GetLFSLockByID(ctx context.Context, h db.Handler, id int64) (models.LFSLock, error)
GetLFSLockForUserByID(ctx context.Context, h db.Handler, repoID int64, userID int64, id int64) (models.LFSLock, error)
DeleteLFSLock(ctx context.Context, h db.Handler, repoID int64, id int64) error
DeleteLFSLockForUserByID(ctx context.Context, h db.Handler, repoID int64, userID int64, id int64) error
}
LFSStore is the interface for the LFS store.
type RepositoryStore ¶
type RepositoryStore interface {
GetRepoByName(ctx context.Context, h db.Handler, name string) (models.Repo, error)
GetAllRepos(ctx context.Context, h db.Handler) ([]models.Repo, error)
GetUserRepos(ctx context.Context, h db.Handler, userID int64) ([]models.Repo, error)
CreateRepo(ctx context.Context, h db.Handler, name string, userID int64, projectName string, description string, isPrivate bool, isHidden bool, isMirror bool) error
DeleteRepoByName(ctx context.Context, h db.Handler, name string) error
SetRepoNameByName(ctx context.Context, h db.Handler, name string, newName string) error
GetRepoProjectNameByName(ctx context.Context, h db.Handler, name string) (string, error)
SetRepoProjectNameByName(ctx context.Context, h db.Handler, name string, projectName string) error
GetRepoDescriptionByName(ctx context.Context, h db.Handler, name string) (string, error)
SetRepoDescriptionByName(ctx context.Context, h db.Handler, name string, description string) error
GetRepoIsPrivateByName(ctx context.Context, h db.Handler, name string) (bool, error)
SetRepoIsPrivateByName(ctx context.Context, h db.Handler, name string, isPrivate bool) error
GetRepoIsHiddenByName(ctx context.Context, h db.Handler, name string) (bool, error)
SetRepoIsHiddenByName(ctx context.Context, h db.Handler, name string, isHidden bool) error
GetRepoIsMirrorByName(ctx context.Context, h db.Handler, name string) (bool, error)
}
RepositoryStore is an interface for managing repositories.
type SettingStore ¶
type SettingStore interface {
GetAnonAccess(ctx context.Context, h db.Handler) (access.AccessLevel, error)
SetAnonAccess(ctx context.Context, h db.Handler, level access.AccessLevel) error
GetAllowKeylessAccess(ctx context.Context, h db.Handler) (bool, error)
SetAllowKeylessAccess(ctx context.Context, h db.Handler, allow bool) error
}
SettingStore is an interface for managing settings.
type Store ¶
type Store interface {
RepositoryStore
UserStore
CollaboratorStore
SettingStore
LFSStore
AccessTokenStore
WebhookStore
}
Store is an interface for managing repositories, users, and settings.
func FromContext ¶
FromContext returns the store from the given context.
type UserStore ¶
type UserStore interface {
GetUserByID(ctx context.Context, h db.Handler, id int64) (models.User, error)
FindUserByUsername(ctx context.Context, h db.Handler, username string) (models.User, error)
FindUserByPublicKey(ctx context.Context, h db.Handler, pk ssh.PublicKey) (models.User, error)
FindUserByAccessToken(ctx context.Context, h db.Handler, token string) (models.User, error)
GetAllUsers(ctx context.Context, h db.Handler) ([]models.User, error)
CreateUser(ctx context.Context, h db.Handler, username string, isAdmin bool, pks []ssh.PublicKey) error
DeleteUserByUsername(ctx context.Context, h db.Handler, username string) error
SetUsernameByUsername(ctx context.Context, h db.Handler, username string, newUsername string) error
SetAdminByUsername(ctx context.Context, h db.Handler, username string, isAdmin bool) error
AddPublicKeyByUsername(ctx context.Context, h db.Handler, username string, pk ssh.PublicKey) error
RemovePublicKeyByUsername(ctx context.Context, h db.Handler, username string, pk ssh.PublicKey) error
ListPublicKeysByUserID(ctx context.Context, h db.Handler, id int64) ([]ssh.PublicKey, error)
ListPublicKeysByUsername(ctx context.Context, h db.Handler, username string) ([]ssh.PublicKey, error)
SetUserPassword(ctx context.Context, h db.Handler, userID int64, password string) error
SetUserPasswordByUsername(ctx context.Context, h db.Handler, username string, password string) error
}
UserStore is an interface for managing users.
type WebhookStore ¶
type WebhookStore interface {
// GetWebhookByID returns a webhook by its ID.
GetWebhookByID(ctx context.Context, h db.Handler, repoID int64, id int64) (models.Webhook, error)
// GetWebhooksByRepoID returns all webhooks for a repository.
GetWebhooksByRepoID(ctx context.Context, h db.Handler, repoID int64) ([]models.Webhook, error)
// GetWebhooksByRepoIDWhereEvent returns all webhooks for a repository where event is in the events.
GetWebhooksByRepoIDWhereEvent(ctx context.Context, h db.Handler, repoID int64, events []int) ([]models.Webhook, error)
// CreateWebhook creates a webhook.
CreateWebhook(ctx context.Context, h db.Handler, repoID int64, url string, secret string, contentType int, active bool) (int64, error)
// UpdateWebhookByID updates a webhook by its ID.
UpdateWebhookByID(ctx context.Context, h db.Handler, repoID int64, id int64, url string, secret string, contentType int, active bool) error
// DeleteWebhookByID deletes a webhook by its ID.
DeleteWebhookByID(ctx context.Context, h db.Handler, id int64) error
// DeleteWebhookForRepoByID deletes a webhook for a repository by its ID.
DeleteWebhookForRepoByID(ctx context.Context, h db.Handler, repoID int64, id int64) error
// GetWebhookEventByID returns a webhook event by its ID.
GetWebhookEventByID(ctx context.Context, h db.Handler, id int64) (models.WebhookEvent, error)
// GetWebhookEventsByWebhookID returns all webhook events for a webhook.
GetWebhookEventsByWebhookID(ctx context.Context, h db.Handler, webhookID int64) ([]models.WebhookEvent, error)
// CreateWebhookEvents creates webhook events for a webhook.
CreateWebhookEvents(ctx context.Context, h db.Handler, webhookID int64, events []int) error
// DeleteWebhookEventsByWebhookID deletes all webhook events for a webhook.
DeleteWebhookEventsByID(ctx context.Context, h db.Handler, ids []int64) error
// GetWebhookDeliveryByID returns a webhook delivery by its ID.
GetWebhookDeliveryByID(ctx context.Context, h db.Handler, webhookID int64, id uuid.UUID) (models.WebhookDelivery, error)
// GetWebhookDeliveriesByWebhookID returns all webhook deliveries for a webhook.
GetWebhookDeliveriesByWebhookID(ctx context.Context, h db.Handler, webhookID int64) ([]models.WebhookDelivery, error)
// ListWebhookDeliveriesByWebhookID returns all webhook deliveries for a webhook.
// This only returns the delivery ID, response status, and event.
ListWebhookDeliveriesByWebhookID(ctx context.Context, h db.Handler, webhookID int64) ([]models.WebhookDelivery, error)
// CreateWebhookDelivery creates a webhook delivery.
CreateWebhookDelivery(ctx context.Context, h db.Handler, id uuid.UUID, webhookID int64, event int, url string, method string, requestError error, requestHeaders string, requestBody string, responseStatus int, responseHeaders string, responseBody string) error
// DeleteWebhookDeliveryByID deletes a webhook delivery by its ID.
DeleteWebhookDeliveryByID(ctx context.Context, h db.Handler, webhookID int64, id uuid.UUID) error
}
WebhookStore is an interface for managing webhooks.
Source Files
¶
Click to show internal directories.
Click to hide internal directories.