Help us shape the future of Go! Take the 2026 Go Developer Survey

usersdb

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 10, 2026 License: AGPL-3.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AuthAuditLog

type AuthAuditLog struct {
	ID         int64
	ActorID    pgtype.Int8
	Action     string
	TargetType string
	TargetID   pgtype.Int8
	Meta       []byte
	CreatedAt  pgtype.Timestamptz
}

type AuthThrottle

type AuthThrottle struct {
	ID              int64
	Scope           string
	Identifier      string
	Hits            int32
	WindowStartedAt pgtype.Timestamptz
}

type BranchProtectionRule

type BranchProtectionRule struct {
	ID                             int64
	RepoID                         int64
	Pattern                        string
	PreventForcePush               bool
	PreventDeletion                bool
	RequirePrForPush               bool
	AllowedPusherUserIds           []int64
	RequireSignedCommits           bool
	StatusChecksRequired           []string
	CreatedAt                      pgtype.Timestamptz
	UpdatedAt                      pgtype.Timestamptz
	CreatedByUserID                pgtype.Int8
	RequiredReviewCount            int32
	DismissStaleReviewsOnPush      bool
	RequireCodeOwnerReview         bool
	DismissStaleStatusChecksOnPush bool
}

type BumpAuthThrottleParams

type BumpAuthThrottleParams struct {
	Scope           string
	Identifier      string
	WindowStartedAt pgtype.Timestamptz
}

type BumpAuthThrottleRow

type BumpAuthThrottleRow struct {
	Hits            int32
	WindowStartedAt pgtype.Timestamptz
}

type BumpTOTPCounterParams

type BumpTOTPCounterParams struct {
	UserID          int64
	LastUsedCounter int64
}

type CheckConclusion

type CheckConclusion string
const (
	CheckConclusionSuccess        CheckConclusion = "success"
	CheckConclusionFailure        CheckConclusion = "failure"
	CheckConclusionNeutral        CheckConclusion = "neutral"
	CheckConclusionCancelled      CheckConclusion = "cancelled"
	CheckConclusionSkipped        CheckConclusion = "skipped"
	CheckConclusionTimedOut       CheckConclusion = "timed_out"
	CheckConclusionActionRequired CheckConclusion = "action_required"
	CheckConclusionStale          CheckConclusion = "stale"
)

func (*CheckConclusion) Scan

func (e *CheckConclusion) Scan(src interface{}) error

type CheckRun

type CheckRun struct {
	ID          int64
	SuiteID     int64
	RepoID      int64
	HeadSha     string
	Name        string
	Status      CheckStatus
	Conclusion  NullCheckConclusion
	StartedAt   pgtype.Timestamptz
	CompletedAt pgtype.Timestamptz
	DetailsUrl  string
	Output      []byte
	ExternalID  pgtype.Text
	CreatedAt   pgtype.Timestamptz
	UpdatedAt   pgtype.Timestamptz
}

type CheckStatus

type CheckStatus string
const (
	CheckStatusQueued     CheckStatus = "queued"
	CheckStatusInProgress CheckStatus = "in_progress"
	CheckStatusCompleted  CheckStatus = "completed"
	CheckStatusPending    CheckStatus = "pending"
)

func (*CheckStatus) Scan

func (e *CheckStatus) Scan(src interface{}) error

type CheckSuite

type CheckSuite struct {
	ID         int64
	RepoID     int64
	HeadSha    string
	AppSlug    string
	Status     CheckStatus
	Conclusion NullCheckConclusion
	CreatedAt  pgtype.Timestamptz
	UpdatedAt  pgtype.Timestamptz
}

type CodeSearchContent

type CodeSearchContent struct {
	RepoID      int64
	RefName     string
	Path        string
	ContentTsv  interface{}
	ContentTrgm string
}

type CodeSearchPath

type CodeSearchPath struct {
	RepoID  int64
	RefName string
	Path    string
	Tsv     interface{}
}

type CollabRole

type CollabRole string
const (
	CollabRoleRead     CollabRole = "read"
	CollabRoleTriage   CollabRole = "triage"
	CollabRoleWrite    CollabRole = "write"
	CollabRoleMaintain CollabRole = "maintain"
	CollabRoleAdmin    CollabRole = "admin"
)

func (*CollabRole) Scan

func (e *CollabRole) Scan(src interface{}) error

type ConfirmUserTOTPParams

type ConfirmUserTOTPParams struct {
	UserID          int64
	LastUsedCounter int64
}

type ConsumeRecoveryCodeParams

type ConsumeRecoveryCodeParams struct {
	UserID   int64
	CodeHash []byte
}

type CountRecentUsernameChangesParams

type CountRecentUsernameChangesParams struct {
	UserID    int64
	ChangedAt pgtype.Timestamptz
}

type CreateEmailVerificationParams

type CreateEmailVerificationParams struct {
	UserEmailID int64
	TokenHash   []byte
	ExpiresAt   pgtype.Timestamptz
}

type CreatePasswordResetParams

type CreatePasswordResetParams struct {
	UserID    int64
	TokenHash []byte
	ExpiresAt pgtype.Timestamptz
}

type CreateUserEmailParams

type CreateUserEmailParams struct {
	UserID                int64
	Email                 string
	IsPrimary             bool
	Verified              bool
	VerificationTokenHash []byte
}

type CreateUserParams

type CreateUserParams struct {
	Username     string
	DisplayName  string
	PasswordHash string
}

type DBTX

type DBTX interface {
	Exec(context.Context, string, ...interface{}) (pgconn.CommandTag, error)
	Query(context.Context, string, ...interface{}) (pgx.Rows, error)
	QueryRow(context.Context, string, ...interface{}) pgx.Row
}

type DeleteUserEmailParams

type DeleteUserEmailParams struct {
	ID     int64
	UserID int64
}

type DeleteUserNotificationPrefParams

type DeleteUserNotificationPrefParams struct {
	UserID int64
	Key    string
}

type DeleteUserSSHKeyParams

type DeleteUserSSHKeyParams struct {
	ID     int64
	UserID int64
}

type DomainEvent

type DomainEvent struct {
	ID          int64
	ActorUserID pgtype.Int8
	Kind        string
	RepoID      pgtype.Int8
	SourceKind  string
	SourceID    int64
	Public      bool
	Payload     []byte
	CreatedAt   pgtype.Timestamptz
}

type DomainEventsProcessed

type DomainEventsProcessed struct {
	Consumer    string
	LastEventID int64
	UpdatedAt   pgtype.Timestamptz
}

type EmailVerification

type EmailVerification struct {
	ID          int64
	UserEmailID int64
	TokenHash   []byte
	ExpiresAt   pgtype.Timestamptz
	UsedAt      pgtype.Timestamptz
	CreatedAt   pgtype.Timestamptz
}

type InsertAuditLogParams

type InsertAuditLogParams struct {
	ActorID    pgtype.Int8
	Action     string
	TargetType string
	TargetID   pgtype.Int8
	Meta       []byte
}

type InsertRecoveryCodeParams

type InsertRecoveryCodeParams struct {
	UserID   int64
	CodeHash []byte
}

type InsertUserSSHKeyParams

type InsertUserSSHKeyParams struct {
	UserID            int64
	Title             string
	FingerprintSha256 string
	KeyType           string
	KeyBits           int32
	PublicKey         string
}

type InsertUserTokenParams

type InsertUserTokenParams struct {
	UserID      int64
	Name        string
	TokenHash   []byte
	TokenPrefix string
	Scopes      []string
	ExpiresAt   pgtype.Timestamptz
}

type InsertUsernameRedirectParams

type InsertUsernameRedirectParams struct {
	OldUsername string
	UserID      int64
}

type Issue

type Issue struct {
	ID                int64
	RepoID            int64
	Number            int64
	Kind              IssueKind
	Title             string
	Body              string
	BodyHtmlCached    pgtype.Text
	MdPipelineVersion int32
	AuthorUserID      pgtype.Int8
	State             IssueState
	StateReason       NullIssueStateReason
	Locked            bool
	LockReason        pgtype.Text
	MilestoneID       pgtype.Int8
	CreatedAt         pgtype.Timestamptz
	UpdatedAt         pgtype.Timestamptz
	EditedAt          pgtype.Timestamptz
	ClosedAt          pgtype.Timestamptz
	ClosedByUserID    pgtype.Int8
}

type IssueAssignee

type IssueAssignee struct {
	IssueID          int64
	UserID           int64
	AssignedAt       pgtype.Timestamptz
	AssignedByUserID pgtype.Int8
}

type IssueComment

type IssueComment struct {
	ID                int64
	IssueID           int64
	AuthorUserID      pgtype.Int8
	Body              string
	BodyHtmlCached    pgtype.Text
	MdPipelineVersion int32
	CreatedAt         pgtype.Timestamptz
	UpdatedAt         pgtype.Timestamptz
	EditedAt          pgtype.Timestamptz
}

type IssueEvent

type IssueEvent struct {
	ID          int64
	IssueID     int64
	ActorUserID pgtype.Int8
	Kind        string
	Meta        []byte
	RefTargetID pgtype.Int8
	CreatedAt   pgtype.Timestamptz
}

type IssueKind

type IssueKind string
const (
	IssueKindIssue IssueKind = "issue"
	IssueKindPr    IssueKind = "pr"
)

func (*IssueKind) Scan

func (e *IssueKind) Scan(src interface{}) error

type IssueLabel

type IssueLabel struct {
	IssueID         int64
	LabelID         int64
	AppliedAt       pgtype.Timestamptz
	AppliedByUserID pgtype.Int8
}

type IssueRefSource

type IssueRefSource string
const (
	IssueRefSourceCommentBody   IssueRefSource = "comment_body"
	IssueRefSourceIssueBody     IssueRefSource = "issue_body"
	IssueRefSourceCommitMessage IssueRefSource = "commit_message"
)

func (*IssueRefSource) Scan

func (e *IssueRefSource) Scan(src interface{}) error

type IssueReference

type IssueReference struct {
	ID             int64
	SourceIssueID  pgtype.Int8
	TargetIssueID  int64
	SourceKind     IssueRefSource
	SourceObjectID pgtype.Int8
	CreatedAt      pgtype.Timestamptz
}

type IssueState

type IssueState string
const (
	IssueStateOpen   IssueState = "open"
	IssueStateClosed IssueState = "closed"
)

func (*IssueState) Scan

func (e *IssueState) Scan(src interface{}) error

type IssueStateReason

type IssueStateReason string
const (
	IssueStateReasonCompleted  IssueStateReason = "completed"
	IssueStateReasonNotPlanned IssueStateReason = "not_planned"
	IssueStateReasonReopened   IssueStateReason = "reopened"
	IssueStateReasonDuplicate  IssueStateReason = "duplicate"
)

func (*IssueStateReason) Scan

func (e *IssueStateReason) Scan(src interface{}) error

type IssuesSearch

type IssuesSearch struct {
	IssueID      int64
	RepoID       int64
	Kind         IssueKind
	State        IssueState
	AuthorUserID pgtype.Int8
	Tsv          interface{}
}

type Job

type Job struct {
	ID          int64
	Kind        string
	Payload     []byte
	RunAt       pgtype.Timestamptz
	Attempts    int32
	MaxAttempts int32
	LastError   pgtype.Text
	LockedBy    pgtype.Text
	LockedAt    pgtype.Timestamptz
	CompletedAt pgtype.Timestamptz
	FailedAt    pgtype.Timestamptz
	CreatedAt   pgtype.Timestamptz
}

type Label

type Label struct {
	ID          int64
	RepoID      int64
	Name        string
	Color       string
	Description string
	CreatedAt   pgtype.Timestamptz
}

type LinkUserPrimaryEmailParams

type LinkUserPrimaryEmailParams struct {
	ID             int64
	PrimaryEmailID pgtype.Int8
}

type ListAuditLogForTargetParams

type ListAuditLogForTargetParams struct {
	TargetType string
	TargetID   pgtype.Int8
	Limit      int32
}

type LookupUsernameRedirectRow

type LookupUsernameRedirectRow struct {
	Username  string
	ChangedAt pgtype.Timestamptz
}

type Meta

type Meta struct {
	Key       string
	Value     []byte
	UpdatedAt pgtype.Timestamptz
}

type Milestone

type Milestone struct {
	ID          int64
	RepoID      int64
	Title       string
	Description string
	State       MilestoneState
	DueOn       pgtype.Timestamptz
	CreatedAt   pgtype.Timestamptz
	ClosedAt    pgtype.Timestamptz
}

type MilestoneState

type MilestoneState string
const (
	MilestoneStateOpen   MilestoneState = "open"
	MilestoneStateClosed MilestoneState = "closed"
)

func (*MilestoneState) Scan

func (e *MilestoneState) Scan(src interface{}) error

type Notification

type Notification struct {
	ID              int64
	RecipientUserID int64
	Kind            string
	Reason          string
	RepoID          pgtype.Int8
	ThreadKind      NullNotificationThreadKind
	ThreadID        pgtype.Int8
	SourceEventID   pgtype.Int8
	Unread          bool
	LastEventAt     pgtype.Timestamptz
	LastActorUserID pgtype.Int8
	Summary         []byte
	CreatedAt       pgtype.Timestamptz
	UpdatedAt       pgtype.Timestamptz
}

type NotificationEmailLog

type NotificationEmailLog struct {
	ID              int64
	RecipientUserID int64
	NotificationID  pgtype.Int8
	ThreadKind      NullNotificationThreadKind
	ThreadID        pgtype.Int8
	SentAt          pgtype.Timestamptz
	MessageID       pgtype.Text
}

type NotificationThread

type NotificationThread struct {
	RecipientUserID int64
	ThreadKind      NotificationThreadKind
	ThreadID        int64
	Subscribed      bool
	Reason          string
	UpdatedAt       pgtype.Timestamptz
}

type NotificationThreadKind

type NotificationThreadKind string
const (
	NotificationThreadKindIssue NotificationThreadKind = "issue"
	NotificationThreadKindPr    NotificationThreadKind = "pr"
)

func (*NotificationThreadKind) Scan

func (e *NotificationThreadKind) Scan(src interface{}) error

type NullCheckConclusion

type NullCheckConclusion struct {
	CheckConclusion CheckConclusion
	Valid           bool // Valid is true if CheckConclusion is not NULL
}

func (*NullCheckConclusion) Scan

func (ns *NullCheckConclusion) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullCheckConclusion) Value

func (ns NullCheckConclusion) Value() (driver.Value, error)

Value implements the driver Valuer interface.

type NullCheckStatus

type NullCheckStatus struct {
	CheckStatus CheckStatus
	Valid       bool // Valid is true if CheckStatus is not NULL
}

func (*NullCheckStatus) Scan

func (ns *NullCheckStatus) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullCheckStatus) Value

func (ns NullCheckStatus) Value() (driver.Value, error)

Value implements the driver Valuer interface.

type NullCollabRole

type NullCollabRole struct {
	CollabRole CollabRole
	Valid      bool // Valid is true if CollabRole is not NULL
}

func (*NullCollabRole) Scan

func (ns *NullCollabRole) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullCollabRole) Value

func (ns NullCollabRole) Value() (driver.Value, error)

Value implements the driver Valuer interface.

type NullIssueKind

type NullIssueKind struct {
	IssueKind IssueKind
	Valid     bool // Valid is true if IssueKind is not NULL
}

func (*NullIssueKind) Scan

func (ns *NullIssueKind) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullIssueKind) Value

func (ns NullIssueKind) Value() (driver.Value, error)

Value implements the driver Valuer interface.

type NullIssueRefSource

type NullIssueRefSource struct {
	IssueRefSource IssueRefSource
	Valid          bool // Valid is true if IssueRefSource is not NULL
}

func (*NullIssueRefSource) Scan

func (ns *NullIssueRefSource) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullIssueRefSource) Value

func (ns NullIssueRefSource) Value() (driver.Value, error)

Value implements the driver Valuer interface.

type NullIssueState

type NullIssueState struct {
	IssueState IssueState
	Valid      bool // Valid is true if IssueState is not NULL
}

func (*NullIssueState) Scan

func (ns *NullIssueState) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullIssueState) Value

func (ns NullIssueState) Value() (driver.Value, error)

Value implements the driver Valuer interface.

type NullIssueStateReason

type NullIssueStateReason struct {
	IssueStateReason IssueStateReason
	Valid            bool // Valid is true if IssueStateReason is not NULL
}

func (*NullIssueStateReason) Scan

func (ns *NullIssueStateReason) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullIssueStateReason) Value

func (ns NullIssueStateReason) Value() (driver.Value, error)

Value implements the driver Valuer interface.

type NullMilestoneState

type NullMilestoneState struct {
	MilestoneState MilestoneState
	Valid          bool // Valid is true if MilestoneState is not NULL
}

func (*NullMilestoneState) Scan

func (ns *NullMilestoneState) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullMilestoneState) Value

func (ns NullMilestoneState) Value() (driver.Value, error)

Value implements the driver Valuer interface.

type NullNotificationThreadKind

type NullNotificationThreadKind struct {
	NotificationThreadKind NotificationThreadKind
	Valid                  bool // Valid is true if NotificationThreadKind is not NULL
}

func (*NullNotificationThreadKind) Scan

func (ns *NullNotificationThreadKind) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullNotificationThreadKind) Value

Value implements the driver Valuer interface.

type NullOrgPlan

type NullOrgPlan struct {
	OrgPlan OrgPlan
	Valid   bool // Valid is true if OrgPlan is not NULL
}

func (*NullOrgPlan) Scan

func (ns *NullOrgPlan) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullOrgPlan) Value

func (ns NullOrgPlan) Value() (driver.Value, error)

Value implements the driver Valuer interface.

type NullOrgRole

type NullOrgRole struct {
	OrgRole OrgRole
	Valid   bool // Valid is true if OrgRole is not NULL
}

func (*NullOrgRole) Scan

func (ns *NullOrgRole) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullOrgRole) Value

func (ns NullOrgRole) Value() (driver.Value, error)

Value implements the driver Valuer interface.

type NullPrFileStatus

type NullPrFileStatus struct {
	PrFileStatus PrFileStatus
	Valid        bool // Valid is true if PrFileStatus is not NULL
}

func (*NullPrFileStatus) Scan

func (ns *NullPrFileStatus) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullPrFileStatus) Value

func (ns NullPrFileStatus) Value() (driver.Value, error)

Value implements the driver Valuer interface.

type NullPrMergeMethod

type NullPrMergeMethod struct {
	PrMergeMethod PrMergeMethod
	Valid         bool // Valid is true if PrMergeMethod is not NULL
}

func (*NullPrMergeMethod) Scan

func (ns *NullPrMergeMethod) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullPrMergeMethod) Value

func (ns NullPrMergeMethod) Value() (driver.Value, error)

Value implements the driver Valuer interface.

type NullPrMergeableState

type NullPrMergeableState struct {
	PrMergeableState PrMergeableState
	Valid            bool // Valid is true if PrMergeableState is not NULL
}

func (*NullPrMergeableState) Scan

func (ns *NullPrMergeableState) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullPrMergeableState) Value

func (ns NullPrMergeableState) Value() (driver.Value, error)

Value implements the driver Valuer interface.

type NullPrReviewSide

type NullPrReviewSide struct {
	PrReviewSide PrReviewSide
	Valid        bool // Valid is true if PrReviewSide is not NULL
}

func (*NullPrReviewSide) Scan

func (ns *NullPrReviewSide) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullPrReviewSide) Value

func (ns NullPrReviewSide) Value() (driver.Value, error)

Value implements the driver Valuer interface.

type NullPrReviewState

type NullPrReviewState struct {
	PrReviewState PrReviewState
	Valid         bool // Valid is true if PrReviewState is not NULL
}

func (*NullPrReviewState) Scan

func (ns *NullPrReviewState) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullPrReviewState) Value

func (ns NullPrReviewState) Value() (driver.Value, error)

Value implements the driver Valuer interface.

type NullPrincipalKind

type NullPrincipalKind struct {
	PrincipalKind PrincipalKind
	Valid         bool // Valid is true if PrincipalKind is not NULL
}

func (*NullPrincipalKind) Scan

func (ns *NullPrincipalKind) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullPrincipalKind) Value

func (ns NullPrincipalKind) Value() (driver.Value, error)

Value implements the driver Valuer interface.

type NullRepoInitStatus

type NullRepoInitStatus struct {
	RepoInitStatus RepoInitStatus
	Valid          bool // Valid is true if RepoInitStatus is not NULL
}

func (*NullRepoInitStatus) Scan

func (ns *NullRepoInitStatus) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullRepoInitStatus) Value

func (ns NullRepoInitStatus) Value() (driver.Value, error)

Value implements the driver Valuer interface.

type NullRepoVisibility

type NullRepoVisibility struct {
	RepoVisibility RepoVisibility
	Valid          bool // Valid is true if RepoVisibility is not NULL
}

func (*NullRepoVisibility) Scan

func (ns *NullRepoVisibility) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullRepoVisibility) Value

func (ns NullRepoVisibility) Value() (driver.Value, error)

Value implements the driver Valuer interface.

type NullTeamPrivacy

type NullTeamPrivacy struct {
	TeamPrivacy TeamPrivacy
	Valid       bool // Valid is true if TeamPrivacy is not NULL
}

func (*NullTeamPrivacy) Scan

func (ns *NullTeamPrivacy) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullTeamPrivacy) Value

func (ns NullTeamPrivacy) Value() (driver.Value, error)

Value implements the driver Valuer interface.

type NullTeamRepoRole

type NullTeamRepoRole struct {
	TeamRepoRole TeamRepoRole
	Valid        bool // Valid is true if TeamRepoRole is not NULL
}

func (*NullTeamRepoRole) Scan

func (ns *NullTeamRepoRole) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullTeamRepoRole) Value

func (ns NullTeamRepoRole) Value() (driver.Value, error)

Value implements the driver Valuer interface.

type NullTeamRole

type NullTeamRole struct {
	TeamRole TeamRole
	Valid    bool // Valid is true if TeamRole is not NULL
}

func (*NullTeamRole) Scan

func (ns *NullTeamRole) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullTeamRole) Value

func (ns NullTeamRole) Value() (driver.Value, error)

Value implements the driver Valuer interface.

type NullTransactionalEmailStatus

type NullTransactionalEmailStatus struct {
	TransactionalEmailStatus TransactionalEmailStatus
	Valid                    bool // Valid is true if TransactionalEmailStatus is not NULL
}

func (*NullTransactionalEmailStatus) Scan

func (ns *NullTransactionalEmailStatus) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullTransactionalEmailStatus) Value

Value implements the driver Valuer interface.

type NullTransferPrincipalKind

type NullTransferPrincipalKind struct {
	TransferPrincipalKind TransferPrincipalKind
	Valid                 bool // Valid is true if TransferPrincipalKind is not NULL
}

func (*NullTransferPrincipalKind) Scan

func (ns *NullTransferPrincipalKind) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullTransferPrincipalKind) Value

Value implements the driver Valuer interface.

type NullTransferStatus

type NullTransferStatus struct {
	TransferStatus TransferStatus
	Valid          bool // Valid is true if TransferStatus is not NULL
}

func (*NullTransferStatus) Scan

func (ns *NullTransferStatus) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullTransferStatus) Value

func (ns NullTransferStatus) Value() (driver.Value, error)

Value implements the driver Valuer interface.

type NullWatchLevel

type NullWatchLevel struct {
	WatchLevel WatchLevel
	Valid      bool // Valid is true if WatchLevel is not NULL
}

func (*NullWatchLevel) Scan

func (ns *NullWatchLevel) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullWatchLevel) Value

func (ns NullWatchLevel) Value() (driver.Value, error)

Value implements the driver Valuer interface.

type NullWebhookContentType

type NullWebhookContentType struct {
	WebhookContentType WebhookContentType
	Valid              bool // Valid is true if WebhookContentType is not NULL
}

func (*NullWebhookContentType) Scan

func (ns *NullWebhookContentType) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullWebhookContentType) Value

func (ns NullWebhookContentType) Value() (driver.Value, error)

Value implements the driver Valuer interface.

type NullWebhookDeliveryStatus

type NullWebhookDeliveryStatus struct {
	WebhookDeliveryStatus WebhookDeliveryStatus
	Valid                 bool // Valid is true if WebhookDeliveryStatus is not NULL
}

func (*NullWebhookDeliveryStatus) Scan

func (ns *NullWebhookDeliveryStatus) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullWebhookDeliveryStatus) Value

Value implements the driver Valuer interface.

type NullWebhookOwnerKind

type NullWebhookOwnerKind struct {
	WebhookOwnerKind WebhookOwnerKind
	Valid            bool // Valid is true if WebhookOwnerKind is not NULL
}

func (*NullWebhookOwnerKind) Scan

func (ns *NullWebhookOwnerKind) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullWebhookOwnerKind) Value

func (ns NullWebhookOwnerKind) Value() (driver.Value, error)

Value implements the driver Valuer interface.

type Org

type Org struct {
	ID                    int64
	Slug                  string
	DisplayName           string
	Description           string
	AvatarObjectKey       pgtype.Text
	Location              string
	Website               string
	BillingEmail          string
	Plan                  OrgPlan
	AllowMemberRepoCreate bool
	CreatedByUserID       pgtype.Int8
	SuspendedAt           pgtype.Timestamptz
	SuspendedReason       pgtype.Text
	DeletedAt             pgtype.Timestamptz
	CreatedAt             pgtype.Timestamptz
	UpdatedAt             pgtype.Timestamptz
}

type OrgInvitation

type OrgInvitation struct {
	ID              int64
	OrgID           int64
	InvitedByUserID pgtype.Int8
	TargetUserID    pgtype.Int8
	TargetEmail     pgtype.Text
	Role            OrgRole
	TokenHash       []byte
	ExpiresAt       pgtype.Timestamptz
	AcceptedAt      pgtype.Timestamptz
	DeclinedAt      pgtype.Timestamptz
	CanceledAt      pgtype.Timestamptz
	CreatedAt       pgtype.Timestamptz
}

type OrgMember

type OrgMember struct {
	OrgID           int64
	UserID          int64
	Role            OrgRole
	InvitedByUserID pgtype.Int8
	JoinedAt        pgtype.Timestamptz
}

type OrgPlan

type OrgPlan string
const (
	OrgPlanFree       OrgPlan = "free"
	OrgPlanTeam       OrgPlan = "team"
	OrgPlanEnterprise OrgPlan = "enterprise"
)

func (*OrgPlan) Scan

func (e *OrgPlan) Scan(src interface{}) error

type OrgRole

type OrgRole string
const (
	OrgRoleOwner  OrgRole = "owner"
	OrgRoleMember OrgRole = "member"
)

func (*OrgRole) Scan

func (e *OrgRole) Scan(src interface{}) error

type PasswordReset

type PasswordReset struct {
	ID        int64
	UserID    int64
	TokenHash []byte
	ExpiresAt pgtype.Timestamptz
	UsedAt    pgtype.Timestamptz
	CreatedAt pgtype.Timestamptz
}

type PrFileStatus

type PrFileStatus string
const (
	PrFileStatusAdded    PrFileStatus = "added"
	PrFileStatusModified PrFileStatus = "modified"
	PrFileStatusDeleted  PrFileStatus = "deleted"
	PrFileStatusRenamed  PrFileStatus = "renamed"
	PrFileStatusCopied   PrFileStatus = "copied"
)

func (*PrFileStatus) Scan

func (e *PrFileStatus) Scan(src interface{}) error

type PrMergeMethod

type PrMergeMethod string
const (
	PrMergeMethodMerge  PrMergeMethod = "merge"
	PrMergeMethodSquash PrMergeMethod = "squash"
	PrMergeMethodRebase PrMergeMethod = "rebase"
)

func (*PrMergeMethod) Scan

func (e *PrMergeMethod) Scan(src interface{}) error

type PrMergeableState

type PrMergeableState string
const (
	PrMergeableStateUnknown PrMergeableState = "unknown"
	PrMergeableStateClean   PrMergeableState = "clean"
	PrMergeableStateDirty   PrMergeableState = "dirty"
	PrMergeableStateBlocked PrMergeableState = "blocked"
	PrMergeableStateBehind  PrMergeableState = "behind"
)

func (*PrMergeableState) Scan

func (e *PrMergeableState) Scan(src interface{}) error

type PrReview

type PrReview struct {
	ID                int64
	PrIssueID         int64
	AuthorUserID      pgtype.Int8
	State             PrReviewState
	Body              string
	BodyHtmlCached    pgtype.Text
	SubmittedAt       pgtype.Timestamptz
	DismissedAt       pgtype.Timestamptz
	DismissedByUserID pgtype.Int8
	DismissalReason   string
}

type PrReviewComment

type PrReviewComment struct {
	ID                int64
	PrIssueID         int64
	ReviewID          pgtype.Int8
	AuthorUserID      pgtype.Int8
	FilePath          string
	Side              PrReviewSide
	OriginalCommitSha string
	OriginalLine      int32
	OriginalPosition  int32
	CurrentPosition   pgtype.Int4
	Body              string
	BodyHtmlCached    pgtype.Text
	InReplyToID       pgtype.Int8
	Pending           bool
	ResolvedAt        pgtype.Timestamptz
	ResolvedByUserID  pgtype.Int8
	CreatedAt         pgtype.Timestamptz
	UpdatedAt         pgtype.Timestamptz
	EditedAt          pgtype.Timestamptz
}

type PrReviewRequest

type PrReviewRequest struct {
	ID                  int64
	PrIssueID           int64
	RequestedUserID     pgtype.Int8
	RequestedTeamID     pgtype.Int8
	RequestedByUserID   pgtype.Int8
	RequestedAt         pgtype.Timestamptz
	DismissedAt         pgtype.Timestamptz
	SatisfiedByReviewID pgtype.Int8
}

type PrReviewSide

type PrReviewSide string
const (
	PrReviewSideLeft  PrReviewSide = "left"
	PrReviewSideRight PrReviewSide = "right"
)

func (*PrReviewSide) Scan

func (e *PrReviewSide) Scan(src interface{}) error

type PrReviewState

type PrReviewState string
const (
	PrReviewStateComment        PrReviewState = "comment"
	PrReviewStateApprove        PrReviewState = "approve"
	PrReviewStateRequestChanges PrReviewState = "request_changes"
)

func (*PrReviewState) Scan

func (e *PrReviewState) Scan(src interface{}) error

type Principal

type Principal struct {
	Slug string
	Kind PrincipalKind
	ID   int64
}

type PrincipalKind

type PrincipalKind string
const (
	PrincipalKindUser PrincipalKind = "user"
	PrincipalKindOrg  PrincipalKind = "org"
)

func (*PrincipalKind) Scan

func (e *PrincipalKind) Scan(src interface{}) error

type PullRequest

type PullRequest struct {
	IssueID            int64
	BaseRef            string
	HeadRef            string
	HeadRepoID         int64
	BaseOid            string
	HeadOid            string
	Draft              bool
	Mergeable          pgtype.Bool
	MergeableState     PrMergeableState
	MergeCommitSha     pgtype.Text
	MergedAt           pgtype.Timestamptz
	MergedByUserID     pgtype.Int8
	MergeMethod        NullPrMergeMethod
	BaseOidAtMerge     pgtype.Text
	HeadOidAtMerge     pgtype.Text
	LastSynchronizedAt pgtype.Timestamptz
}

type PullRequestCommit

type PullRequestCommit struct {
	PrID           int64
	Sha            string
	Position       int32
	AuthorName     string
	AuthorEmail    string
	CommitterName  string
	CommitterEmail string
	Subject        string
	Body           string
	AuthoredAt     pgtype.Timestamptz
	CommittedAt    pgtype.Timestamptz
}

type PullRequestFile

type PullRequestFile struct {
	PrID      int64
	Path      string
	Status    PrFileStatus
	OldPath   pgtype.Text
	Additions int32
	Deletions int32
	Changes   int32
}

type PushEvent

type PushEvent struct {
	ID           int64
	RepoID       int64
	PusherUserID pgtype.Int8
	BeforeSha    string
	AfterSha     string
	Ref          string
	Protocol     string
	RequestID    string
	ProcessedAt  pgtype.Timestamptz
	CreatedAt    pgtype.Timestamptz
}

type Querier

type Querier interface {
	// SPDX-License-Identifier: AGPL-3.0-or-later
	// Increments the hit counter for (scope, identifier). When the existing
	// window is older than the supplied window-start cutoff, resets to 1 and
	// starts a new window. Returns the post-bump (hits, window_started_at).
	BumpAuthThrottle(ctx context.Context, db DBTX, arg BumpAuthThrottleParams) (BumpAuthThrottleRow, error)
	// Atomically advances last_used_counter only when the proposed counter is
	// strictly greater. Returns rows affected — 0 means a replay attempt and
	// the caller should reject the code.
	BumpTOTPCounter(ctx context.Context, db DBTX, arg BumpTOTPCounterParams) (int64, error)
	BumpUserSessionEpoch(ctx context.Context, db DBTX, id int64) error
	// Sets confirmed_at on a pending row. Returns the number of rows updated;
	// callers MUST check this to handle the parallel-enrollment race
	// (only one of two concurrent confirms wins).
	ConfirmUserTOTP(ctx context.Context, db DBTX, arg ConfirmUserTOTPParams) (int64, error)
	ConsumeEmailVerification(ctx context.Context, db DBTX, id int64) error
	ConsumePasswordReset(ctx context.Context, db DBTX, id int64) error
	// Atomically marks a code as used iff it exists for the user, matches the
	// supplied hash, and isn't already used. Rows-affected==1 means accepted;
	// 0 means rejected.
	ConsumeRecoveryCode(ctx context.Context, db DBTX, arg ConsumeRecoveryCodeParams) (int64, error)
	CountActiveUserTokens(ctx context.Context, db DBTX, userID int64) (int64, error)
	// Drives the 3-changes-per-60d cap.
	CountRecentUsernameChanges(ctx context.Context, db DBTX, arg CountRecentUsernameChangesParams) (int64, error)
	CountUnusedRecoveryCodes(ctx context.Context, db DBTX, userID int64) (int64, error)
	CountUserSSHKeys(ctx context.Context, db DBTX, userID int64) (int64, error)
	CountUsers(ctx context.Context, db DBTX) (int64, error)
	CountVerifiedUserEmails(ctx context.Context, db DBTX, userID int64) (int64, error)
	// SPDX-License-Identifier: AGPL-3.0-or-later
	CreateEmailVerification(ctx context.Context, db DBTX, arg CreateEmailVerificationParams) (EmailVerification, error)
	// SPDX-License-Identifier: AGPL-3.0-or-later
	CreatePasswordReset(ctx context.Context, db DBTX, arg CreatePasswordResetParams) (PasswordReset, error)
	// SPDX-License-Identifier: AGPL-3.0-or-later
	CreateUser(ctx context.Context, db DBTX, arg CreateUserParams) (User, error)
	// SPDX-License-Identifier: AGPL-3.0-or-later
	CreateUserEmail(ctx context.Context, db DBTX, arg CreateUserEmailParams) (UserEmail, error)
	DeleteExpiredEmailVerifications(ctx context.Context, db DBTX) error
	DeleteExpiredPasswordResets(ctx context.Context, db DBTX) error
	// Scoped delete: caller must pass owning user_id. Refuses to delete
	// the primary email (UI must guide the user to set a different primary first).
	DeleteUserEmail(ctx context.Context, db DBTX, arg DeleteUserEmailParams) (int64, error)
	DeleteUserNotificationPref(ctx context.Context, db DBTX, arg DeleteUserNotificationPrefParams) error
	DeleteUserRecoveryCodes(ctx context.Context, db DBTX, userID int64) error
	// Scoped delete: caller must pass the owning user_id so a hijacked
	// handler can never delete keys it doesn't own.
	DeleteUserSSHKey(ctx context.Context, db DBTX, arg DeleteUserSSHKeyParams) (int64, error)
	DeleteUserTOTP(ctx context.Context, db DBTX, userID int64) error
	GetEmailVerificationByTokenHash(ctx context.Context, db DBTX, tokenHash []byte) (EmailVerification, error)
	GetPasswordResetByTokenHash(ctx context.Context, db DBTX, tokenHash []byte) (PasswordReset, error)
	GetUserByID(ctx context.Context, db DBTX, id int64) (User, error)
	GetUserByUsername(ctx context.Context, db DBTX, username string) (User, error)
	GetUserByUsernameIncludingDeleted(ctx context.Context, db DBTX, username string) (User, error)
	GetUserEmailByAddress(ctx context.Context, db DBTX, email string) (UserEmail, error)
	GetUserEmailByID(ctx context.Context, db DBTX, id int64) (UserEmail, error)
	GetUserEmailByVerificationHash(ctx context.Context, db DBTX, verificationTokenHash []byte) (UserEmail, error)
	// Like GetUserByID but returns the row even when deleted_at IS NOT NULL.
	GetUserIncludingDeleted(ctx context.Context, db DBTX, id int64) (User, error)
	// Hot path for sshd's AuthorizedKeysCommand. Index lookup via the UNIQUE
	// index on fingerprint_sha256.
	GetUserSSHKeyByFingerprint(ctx context.Context, db DBTX, fingerprintSha256 string) (UserSshKey, error)
	GetUserSessionEpoch(ctx context.Context, db DBTX, id int64) (int32, error)
	GetUserTOTP(ctx context.Context, db DBTX, userID int64) (UserTotp, error)
	// Hot path for the auth middleware. token_hash is UNIQUE; returns at
	// most one row. Caller MUST also check revoked_at IS NULL and
	// expires_at handling.
	GetUserTokenByHash(ctx context.Context, db DBTX, tokenHash []byte) (UserToken, error)
	// SPDX-License-Identifier: AGPL-3.0-or-later
	InsertAuditLog(ctx context.Context, db DBTX, arg InsertAuditLogParams) error
	// SPDX-License-Identifier: AGPL-3.0-or-later
	InsertRecoveryCode(ctx context.Context, db DBTX, arg InsertRecoveryCodeParams) error
	// SPDX-License-Identifier: AGPL-3.0-or-later
	InsertUserSSHKey(ctx context.Context, db DBTX, arg InsertUserSSHKeyParams) (UserSshKey, error)
	// SPDX-License-Identifier: AGPL-3.0-or-later
	InsertUserToken(ctx context.Context, db DBTX, arg InsertUserTokenParams) (UserToken, error)
	// Used by the S10 username-change flow to record an old name. The
	// redirect itself doubles as a 30-day reservation (the row stays for at
	// least that long).
	InsertUsernameRedirect(ctx context.Context, db DBTX, arg InsertUsernameRedirectParams) error
	// Sets the FK only. Does NOT flip users.email_verified — that happens via
	// MarkUserEmailPrimaryVerified after the user clicks the verification link.
	LinkUserPrimaryEmail(ctx context.Context, db DBTX, arg LinkUserPrimaryEmailParams) error
	ListAuditLogForTarget(ctx context.Context, db DBTX, arg ListAuditLogForTargetParams) ([]AuthAuditLog, error)
	ListUserEmailsForUser(ctx context.Context, db DBTX, userID int64) ([]UserEmail, error)
	// SPDX-License-Identifier: AGPL-3.0-or-later
	ListUserNotificationPrefs(ctx context.Context, db DBTX, userID int64) ([]UserNotificationPref, error)
	ListUserSSHKeys(ctx context.Context, db DBTX, userID int64) ([]UserSshKey, error)
	ListUserTokens(ctx context.Context, db DBTX, userID int64) ([]UserToken, error)
	// SPDX-License-Identifier: AGPL-3.0-or-later
	// Resolve an old username to the current username via the user_id FK.
	// Returns ErrNoRows when no redirect exists.
	LookupUsernameRedirect(ctx context.Context, db DBTX, oldUsername string) (LookupUsernameRedirectRow, error)
	// Called after MarkUserEmailVerified for the primary email, to flip the
	// denormalized users.email_verified flag.
	MarkUserEmailPrimaryVerified(ctx context.Context, db DBTX, id int64) error
	MarkUserEmailVerified(ctx context.Context, db DBTX, id int64) error
	PurgeStaleAuthThrottle(ctx context.Context, db DBTX, windowStartedAt pgtype.Timestamptz) error
	// Wrapped by the username-change flow inside a tx that also writes
	// username_redirects, so the old name becomes a redirect target atomically.
	RenameUser(ctx context.Context, db DBTX, arg RenameUserParams) error
	ResetAuthThrottle(ctx context.Context, db DBTX, arg ResetAuthThrottleParams) error
	// Clears deleted_at; called when a user logs in within the 14-day grace
	// window. The login handler enforces the window check before calling.
	RestoreUserAccount(ctx context.Context, db DBTX, id int64) error
	// Used by user suspension to revoke every active token in one statement.
	RevokeAllUserTokens(ctx context.Context, db DBTX, userID int64) error
	// Scoped revoke: caller must pass owning user_id so a hijacked handler
	// can never revoke tokens it doesn't own. No-op on already-revoked rows.
	RevokeUserToken(ctx context.Context, db DBTX, arg RevokeUserTokenParams) (int64, error)
	// Atomically unset the existing primary and set the supplied row as
	// primary. Caller MUST have already verified the row belongs to the
	// user and is verified.
	SetUserEmailPrimary(ctx context.Context, db DBTX, arg SetUserEmailPrimaryParams) error
	SetVerificationToken(ctx context.Context, db DBTX, arg SetVerificationTokenParams) error
	SoftDeleteUser(ctx context.Context, db DBTX, id int64) error
	SuspendUser(ctx context.Context, db DBTX, arg SuspendUserParams) error
	TouchSSHKeyLastUsed(ctx context.Context, db DBTX, arg TouchSSHKeyLastUsedParams) error
	TouchUserLastLogin(ctx context.Context, db DBTX, id int64) error
	TouchUserTokenLastUsed(ctx context.Context, db DBTX, arg TouchUserTokenLastUsedParams) error
	UpdateUserAvatarKey(ctx context.Context, db DBTX, arg UpdateUserAvatarKeyParams) error
	UpdateUserPassword(ctx context.Context, db DBTX, arg UpdateUserPasswordParams) error
	UpdateUserProfile(ctx context.Context, db DBTX, arg UpdateUserProfileParams) error
	UpdateUserTheme(ctx context.Context, db DBTX, arg UpdateUserThemeParams) error
	UpsertUserNotificationPref(ctx context.Context, db DBTX, arg UpsertUserNotificationPrefParams) error
	// SPDX-License-Identifier: AGPL-3.0-or-later
	// Inserts a new pending TOTP row, or replaces an existing pending row for
	// the same user. Confirmed rows are NOT replaced — disable+regenerate
	// must go through the dedicated query.
	UpsertUserTOTP(ctx context.Context, db DBTX, arg UpsertUserTOTPParams) (UserTotp, error)
}

type Queries

type Queries struct {
}

func New

func New() *Queries

func (*Queries) BumpAuthThrottle

func (q *Queries) BumpAuthThrottle(ctx context.Context, db DBTX, arg BumpAuthThrottleParams) (BumpAuthThrottleRow, error)

SPDX-License-Identifier: AGPL-3.0-or-later Increments the hit counter for (scope, identifier). When the existing window is older than the supplied window-start cutoff, resets to 1 and starts a new window. Returns the post-bump (hits, window_started_at).

func (*Queries) BumpTOTPCounter

func (q *Queries) BumpTOTPCounter(ctx context.Context, db DBTX, arg BumpTOTPCounterParams) (int64, error)

Atomically advances last_used_counter only when the proposed counter is strictly greater. Returns rows affected — 0 means a replay attempt and the caller should reject the code.

func (*Queries) BumpUserSessionEpoch

func (q *Queries) BumpUserSessionEpoch(ctx context.Context, db DBTX, id int64) error

func (*Queries) ConfirmUserTOTP

func (q *Queries) ConfirmUserTOTP(ctx context.Context, db DBTX, arg ConfirmUserTOTPParams) (int64, error)

Sets confirmed_at on a pending row. Returns the number of rows updated; callers MUST check this to handle the parallel-enrollment race (only one of two concurrent confirms wins).

func (*Queries) ConsumeEmailVerification

func (q *Queries) ConsumeEmailVerification(ctx context.Context, db DBTX, id int64) error

func (*Queries) ConsumePasswordReset

func (q *Queries) ConsumePasswordReset(ctx context.Context, db DBTX, id int64) error

func (*Queries) ConsumeRecoveryCode

func (q *Queries) ConsumeRecoveryCode(ctx context.Context, db DBTX, arg ConsumeRecoveryCodeParams) (int64, error)

Atomically marks a code as used iff it exists for the user, matches the supplied hash, and isn't already used. Rows-affected==1 means accepted; 0 means rejected.

func (*Queries) CountActiveUserTokens

func (q *Queries) CountActiveUserTokens(ctx context.Context, db DBTX, userID int64) (int64, error)

func (*Queries) CountRecentUsernameChanges

func (q *Queries) CountRecentUsernameChanges(ctx context.Context, db DBTX, arg CountRecentUsernameChangesParams) (int64, error)

Drives the 3-changes-per-60d cap.

func (*Queries) CountUnusedRecoveryCodes

func (q *Queries) CountUnusedRecoveryCodes(ctx context.Context, db DBTX, userID int64) (int64, error)

func (*Queries) CountUserSSHKeys

func (q *Queries) CountUserSSHKeys(ctx context.Context, db DBTX, userID int64) (int64, error)

func (*Queries) CountUsers

func (q *Queries) CountUsers(ctx context.Context, db DBTX) (int64, error)

func (*Queries) CountVerifiedUserEmails

func (q *Queries) CountVerifiedUserEmails(ctx context.Context, db DBTX, userID int64) (int64, error)

func (*Queries) CreateEmailVerification

func (q *Queries) CreateEmailVerification(ctx context.Context, db DBTX, arg CreateEmailVerificationParams) (EmailVerification, error)

SPDX-License-Identifier: AGPL-3.0-or-later

func (*Queries) CreatePasswordReset

func (q *Queries) CreatePasswordReset(ctx context.Context, db DBTX, arg CreatePasswordResetParams) (PasswordReset, error)

SPDX-License-Identifier: AGPL-3.0-or-later

func (*Queries) CreateUser

func (q *Queries) CreateUser(ctx context.Context, db DBTX, arg CreateUserParams) (User, error)

SPDX-License-Identifier: AGPL-3.0-or-later

func (*Queries) CreateUserEmail

func (q *Queries) CreateUserEmail(ctx context.Context, db DBTX, arg CreateUserEmailParams) (UserEmail, error)

SPDX-License-Identifier: AGPL-3.0-or-later

func (*Queries) DeleteExpiredEmailVerifications

func (q *Queries) DeleteExpiredEmailVerifications(ctx context.Context, db DBTX) error

func (*Queries) DeleteExpiredPasswordResets

func (q *Queries) DeleteExpiredPasswordResets(ctx context.Context, db DBTX) error

func (*Queries) DeleteUserEmail

func (q *Queries) DeleteUserEmail(ctx context.Context, db DBTX, arg DeleteUserEmailParams) (int64, error)

Scoped delete: caller must pass owning user_id. Refuses to delete the primary email (UI must guide the user to set a different primary first).

func (*Queries) DeleteUserNotificationPref

func (q *Queries) DeleteUserNotificationPref(ctx context.Context, db DBTX, arg DeleteUserNotificationPrefParams) error

func (*Queries) DeleteUserRecoveryCodes

func (q *Queries) DeleteUserRecoveryCodes(ctx context.Context, db DBTX, userID int64) error

func (*Queries) DeleteUserSSHKey

func (q *Queries) DeleteUserSSHKey(ctx context.Context, db DBTX, arg DeleteUserSSHKeyParams) (int64, error)

Scoped delete: caller must pass the owning user_id so a hijacked handler can never delete keys it doesn't own.

func (*Queries) DeleteUserTOTP

func (q *Queries) DeleteUserTOTP(ctx context.Context, db DBTX, userID int64) error

func (*Queries) GetEmailVerificationByTokenHash

func (q *Queries) GetEmailVerificationByTokenHash(ctx context.Context, db DBTX, tokenHash []byte) (EmailVerification, error)

func (*Queries) GetPasswordResetByTokenHash

func (q *Queries) GetPasswordResetByTokenHash(ctx context.Context, db DBTX, tokenHash []byte) (PasswordReset, error)

func (*Queries) GetUserByID

func (q *Queries) GetUserByID(ctx context.Context, db DBTX, id int64) (User, error)

func (*Queries) GetUserByUsername

func (q *Queries) GetUserByUsername(ctx context.Context, db DBTX, username string) (User, error)

func (*Queries) GetUserByUsernameIncludingDeleted

func (q *Queries) GetUserByUsernameIncludingDeleted(ctx context.Context, db DBTX, username string) (User, error)

func (*Queries) GetUserEmailByAddress

func (q *Queries) GetUserEmailByAddress(ctx context.Context, db DBTX, email string) (UserEmail, error)

func (*Queries) GetUserEmailByID

func (q *Queries) GetUserEmailByID(ctx context.Context, db DBTX, id int64) (UserEmail, error)

func (*Queries) GetUserEmailByVerificationHash

func (q *Queries) GetUserEmailByVerificationHash(ctx context.Context, db DBTX, verificationTokenHash []byte) (UserEmail, error)

func (*Queries) GetUserIncludingDeleted

func (q *Queries) GetUserIncludingDeleted(ctx context.Context, db DBTX, id int64) (User, error)

Like GetUserByID but returns the row even when deleted_at IS NOT NULL.

func (*Queries) GetUserSSHKeyByFingerprint

func (q *Queries) GetUserSSHKeyByFingerprint(ctx context.Context, db DBTX, fingerprintSha256 string) (UserSshKey, error)

Hot path for sshd's AuthorizedKeysCommand. Index lookup via the UNIQUE index on fingerprint_sha256.

func (*Queries) GetUserSessionEpoch

func (q *Queries) GetUserSessionEpoch(ctx context.Context, db DBTX, id int64) (int32, error)

func (*Queries) GetUserTOTP

func (q *Queries) GetUserTOTP(ctx context.Context, db DBTX, userID int64) (UserTotp, error)

func (*Queries) GetUserTokenByHash

func (q *Queries) GetUserTokenByHash(ctx context.Context, db DBTX, tokenHash []byte) (UserToken, error)

Hot path for the auth middleware. token_hash is UNIQUE; returns at most one row. Caller MUST also check revoked_at IS NULL and expires_at handling.

func (*Queries) InsertAuditLog

func (q *Queries) InsertAuditLog(ctx context.Context, db DBTX, arg InsertAuditLogParams) error

SPDX-License-Identifier: AGPL-3.0-or-later

func (*Queries) InsertRecoveryCode

func (q *Queries) InsertRecoveryCode(ctx context.Context, db DBTX, arg InsertRecoveryCodeParams) error

SPDX-License-Identifier: AGPL-3.0-or-later

func (*Queries) InsertUserSSHKey

func (q *Queries) InsertUserSSHKey(ctx context.Context, db DBTX, arg InsertUserSSHKeyParams) (UserSshKey, error)

SPDX-License-Identifier: AGPL-3.0-or-later

func (*Queries) InsertUserToken

func (q *Queries) InsertUserToken(ctx context.Context, db DBTX, arg InsertUserTokenParams) (UserToken, error)

SPDX-License-Identifier: AGPL-3.0-or-later

func (*Queries) InsertUsernameRedirect

func (q *Queries) InsertUsernameRedirect(ctx context.Context, db DBTX, arg InsertUsernameRedirectParams) error

Used by the S10 username-change flow to record an old name. The redirect itself doubles as a 30-day reservation (the row stays for at least that long).

func (*Queries) LinkUserPrimaryEmail

func (q *Queries) LinkUserPrimaryEmail(ctx context.Context, db DBTX, arg LinkUserPrimaryEmailParams) error

Sets the FK only. Does NOT flip users.email_verified — that happens via MarkUserEmailPrimaryVerified after the user clicks the verification link.

func (*Queries) ListAuditLogForTarget

func (q *Queries) ListAuditLogForTarget(ctx context.Context, db DBTX, arg ListAuditLogForTargetParams) ([]AuthAuditLog, error)

func (*Queries) ListUserEmailsForUser

func (q *Queries) ListUserEmailsForUser(ctx context.Context, db DBTX, userID int64) ([]UserEmail, error)

func (*Queries) ListUserNotificationPrefs

func (q *Queries) ListUserNotificationPrefs(ctx context.Context, db DBTX, userID int64) ([]UserNotificationPref, error)

SPDX-License-Identifier: AGPL-3.0-or-later

func (*Queries) ListUserSSHKeys

func (q *Queries) ListUserSSHKeys(ctx context.Context, db DBTX, userID int64) ([]UserSshKey, error)

func (*Queries) ListUserTokens

func (q *Queries) ListUserTokens(ctx context.Context, db DBTX, userID int64) ([]UserToken, error)

func (*Queries) LookupUsernameRedirect

func (q *Queries) LookupUsernameRedirect(ctx context.Context, db DBTX, oldUsername string) (LookupUsernameRedirectRow, error)

SPDX-License-Identifier: AGPL-3.0-or-later Resolve an old username to the current username via the user_id FK. Returns ErrNoRows when no redirect exists.

func (*Queries) MarkUserEmailPrimaryVerified

func (q *Queries) MarkUserEmailPrimaryVerified(ctx context.Context, db DBTX, id int64) error

Called after MarkUserEmailVerified for the primary email, to flip the denormalized users.email_verified flag.

func (*Queries) MarkUserEmailVerified

func (q *Queries) MarkUserEmailVerified(ctx context.Context, db DBTX, id int64) error

func (*Queries) PurgeStaleAuthThrottle

func (q *Queries) PurgeStaleAuthThrottle(ctx context.Context, db DBTX, windowStartedAt pgtype.Timestamptz) error

func (*Queries) RenameUser

func (q *Queries) RenameUser(ctx context.Context, db DBTX, arg RenameUserParams) error

Wrapped by the username-change flow inside a tx that also writes username_redirects, so the old name becomes a redirect target atomically.

func (*Queries) ResetAuthThrottle

func (q *Queries) ResetAuthThrottle(ctx context.Context, db DBTX, arg ResetAuthThrottleParams) error

func (*Queries) RestoreUserAccount

func (q *Queries) RestoreUserAccount(ctx context.Context, db DBTX, id int64) error

Clears deleted_at; called when a user logs in within the 14-day grace window. The login handler enforces the window check before calling.

func (*Queries) RevokeAllUserTokens

func (q *Queries) RevokeAllUserTokens(ctx context.Context, db DBTX, userID int64) error

Used by user suspension to revoke every active token in one statement.

func (*Queries) RevokeUserToken

func (q *Queries) RevokeUserToken(ctx context.Context, db DBTX, arg RevokeUserTokenParams) (int64, error)

Scoped revoke: caller must pass owning user_id so a hijacked handler can never revoke tokens it doesn't own. No-op on already-revoked rows.

func (*Queries) SetUserEmailPrimary

func (q *Queries) SetUserEmailPrimary(ctx context.Context, db DBTX, arg SetUserEmailPrimaryParams) error

Atomically unset the existing primary and set the supplied row as primary. Caller MUST have already verified the row belongs to the user and is verified.

func (*Queries) SetVerificationToken

func (q *Queries) SetVerificationToken(ctx context.Context, db DBTX, arg SetVerificationTokenParams) error

func (*Queries) SoftDeleteUser

func (q *Queries) SoftDeleteUser(ctx context.Context, db DBTX, id int64) error

func (*Queries) SuspendUser

func (q *Queries) SuspendUser(ctx context.Context, db DBTX, arg SuspendUserParams) error

func (*Queries) TouchSSHKeyLastUsed

func (q *Queries) TouchSSHKeyLastUsed(ctx context.Context, db DBTX, arg TouchSSHKeyLastUsedParams) error

func (*Queries) TouchUserLastLogin

func (q *Queries) TouchUserLastLogin(ctx context.Context, db DBTX, id int64) error

func (*Queries) TouchUserTokenLastUsed

func (q *Queries) TouchUserTokenLastUsed(ctx context.Context, db DBTX, arg TouchUserTokenLastUsedParams) error

func (*Queries) UpdateUserAvatarKey

func (q *Queries) UpdateUserAvatarKey(ctx context.Context, db DBTX, arg UpdateUserAvatarKeyParams) error

func (*Queries) UpdateUserPassword

func (q *Queries) UpdateUserPassword(ctx context.Context, db DBTX, arg UpdateUserPasswordParams) error

func (*Queries) UpdateUserProfile

func (q *Queries) UpdateUserProfile(ctx context.Context, db DBTX, arg UpdateUserProfileParams) error

func (*Queries) UpdateUserTheme

func (q *Queries) UpdateUserTheme(ctx context.Context, db DBTX, arg UpdateUserThemeParams) error

func (*Queries) UpsertUserNotificationPref

func (q *Queries) UpsertUserNotificationPref(ctx context.Context, db DBTX, arg UpsertUserNotificationPrefParams) error

func (*Queries) UpsertUserTOTP

func (q *Queries) UpsertUserTOTP(ctx context.Context, db DBTX, arg UpsertUserTOTPParams) (UserTotp, error)

SPDX-License-Identifier: AGPL-3.0-or-later Inserts a new pending TOTP row, or replaces an existing pending row for the same user. Confirmed rows are NOT replaced — disable+regenerate must go through the dedicated query.

type RateLimit

type RateLimit struct {
	Scope           string
	Key             string
	Hits            int32
	WindowStartedAt pgtype.Timestamptz
}

type RenameUserParams

type RenameUserParams struct {
	ID       int64
	Username string
}

type Repo

type Repo struct {
	ID                 int64
	OwnerUserID        pgtype.Int8
	OwnerOrgID         pgtype.Int8
	Name               string
	Description        string
	Visibility         RepoVisibility
	DefaultBranch      string
	IsArchived         bool
	ArchivedAt         pgtype.Timestamptz
	DeletedAt          pgtype.Timestamptz
	DiskUsedBytes      int64
	ForkOfRepoID       pgtype.Int8
	LicenseKey         pgtype.Text
	PrimaryLanguage    pgtype.Text
	HasIssues          bool
	HasPulls           bool
	CreatedAt          pgtype.Timestamptz
	UpdatedAt          pgtype.Timestamptz
	DefaultBranchOid   pgtype.Text
	AllowSquashMerge   bool
	AllowRebaseMerge   bool
	AllowMergeCommit   bool
	DefaultMergeMethod PrMergeMethod
	StarCount          int64
	WatcherCount       int64
	ForkCount          int64
	InitStatus         RepoInitStatus
	LastIndexedOid     pgtype.Text
}

type RepoCollaborator

type RepoCollaborator struct {
	RepoID        int64
	UserID        int64
	Role          CollabRole
	AddedAt       pgtype.Timestamptz
	AddedByUserID pgtype.Int8
}

type RepoInitStatus

type RepoInitStatus string
const (
	RepoInitStatusInitialized RepoInitStatus = "initialized"
	RepoInitStatusInitPending RepoInitStatus = "init_pending"
	RepoInitStatusInitFailed  RepoInitStatus = "init_failed"
)

func (*RepoInitStatus) Scan

func (e *RepoInitStatus) Scan(src interface{}) error

type RepoIssueCounter

type RepoIssueCounter struct {
	RepoID     int64
	NextNumber int64
}

type RepoRedirect

type RepoRedirect struct {
	OldOwnerUserID pgtype.Int8
	OldOwnerOrgID  pgtype.Int8
	OldName        string
	RepoID         int64
	RedirectedAt   pgtype.Timestamptz
}

type RepoTopic

type RepoTopic struct {
	RepoID    int64
	Topic     string
	CreatedAt pgtype.Timestamptz
}

type RepoTransferRequest

type RepoTransferRequest struct {
	ID              int64
	RepoID          int64
	FromUserID      int64
	ToPrincipalKind TransferPrincipalKind
	ToPrincipalID   int64
	CreatedBy       int64
	CreatedAt       pgtype.Timestamptz
	ExpiresAt       pgtype.Timestamptz
	Status          TransferStatus
	AcceptedAt      pgtype.Timestamptz
	DeclinedAt      pgtype.Timestamptz
	CanceledAt      pgtype.Timestamptz
}

type RepoVisibility

type RepoVisibility string
const (
	RepoVisibilityPublic  RepoVisibility = "public"
	RepoVisibilityPrivate RepoVisibility = "private"
)

func (*RepoVisibility) Scan

func (e *RepoVisibility) Scan(src interface{}) error

type ReposSearch

type ReposSearch struct {
	RepoID int64
	Tsv    interface{}
}

type ResetAuthThrottleParams

type ResetAuthThrottleParams struct {
	Scope      string
	Identifier string
}

type RevokeUserTokenParams

type RevokeUserTokenParams struct {
	ID     int64
	UserID int64
}

type SetUserEmailPrimaryParams

type SetUserEmailPrimaryParams struct {
	UserID int64
	ID     int64
}

type SetVerificationTokenParams

type SetVerificationTokenParams struct {
	ID                    int64
	VerificationTokenHash []byte
}

type SignupIpThrottle

type SignupIpThrottle struct {
	Cidr            netip.Addr
	Hits            int32
	WindowStartedAt pgtype.Timestamptz
}

type Star

type Star struct {
	UserID    int64
	RepoID    int64
	StarredAt pgtype.Timestamptz
}

type SuspendUserParams

type SuspendUserParams struct {
	ID              int64
	SuspendedReason pgtype.Text
}

type Team

type Team struct {
	ID              int64
	OrgID           int64
	Slug            string
	DisplayName     string
	Description     string
	ParentTeamID    pgtype.Int8
	Privacy         TeamPrivacy
	CreatedByUserID pgtype.Int8
	CreatedAt       pgtype.Timestamptz
	UpdatedAt       pgtype.Timestamptz
}

type TeamMember

type TeamMember struct {
	TeamID        int64
	UserID        int64
	Role          TeamRole
	AddedByUserID pgtype.Int8
	AddedAt       pgtype.Timestamptz
}

type TeamPrivacy

type TeamPrivacy string
const (
	TeamPrivacyVisible TeamPrivacy = "visible"
	TeamPrivacySecret  TeamPrivacy = "secret"
)

func (*TeamPrivacy) Scan

func (e *TeamPrivacy) Scan(src interface{}) error

type TeamRepoAccess

type TeamRepoAccess struct {
	TeamID        int64
	RepoID        int64
	Role          TeamRepoRole
	AddedByUserID pgtype.Int8
	AddedAt       pgtype.Timestamptz
}

type TeamRepoRole

type TeamRepoRole string
const (
	TeamRepoRoleRead     TeamRepoRole = "read"
	TeamRepoRoleTriage   TeamRepoRole = "triage"
	TeamRepoRoleWrite    TeamRepoRole = "write"
	TeamRepoRoleMaintain TeamRepoRole = "maintain"
	TeamRepoRoleAdmin    TeamRepoRole = "admin"
)

func (*TeamRepoRole) Scan

func (e *TeamRepoRole) Scan(src interface{}) error

type TeamRole

type TeamRole string
const (
	TeamRoleMember     TeamRole = "member"
	TeamRoleMaintainer TeamRole = "maintainer"
)

func (*TeamRole) Scan

func (e *TeamRole) Scan(src interface{}) error

type TouchSSHKeyLastUsedParams

type TouchSSHKeyLastUsedParams struct {
	ID         int64
	LastUsedIp *netip.Addr
}

type TouchUserTokenLastUsedParams

type TouchUserTokenLastUsedParams struct {
	ID         int64
	LastUsedIp *netip.Addr
}

type TransactionalEmailLog

type TransactionalEmailLog struct {
	ID              int64
	RecipientUserID pgtype.Int8
	RecipientEmail  string
	Kind            string
	Subject         string
	ProviderID      string
	Status          TransactionalEmailStatus
	ErrorSummary    pgtype.Text
	SentAt          pgtype.Timestamptz
	DeliveredAt     pgtype.Timestamptz
}

type TransactionalEmailStatus

type TransactionalEmailStatus string
const (
	TransactionalEmailStatusQueued      TransactionalEmailStatus = "queued"
	TransactionalEmailStatusSent        TransactionalEmailStatus = "sent"
	TransactionalEmailStatusSoftBounced TransactionalEmailStatus = "soft_bounced"
	TransactionalEmailStatusHardBounced TransactionalEmailStatus = "hard_bounced"
	TransactionalEmailStatusDropped     TransactionalEmailStatus = "dropped"
)

func (*TransactionalEmailStatus) Scan

func (e *TransactionalEmailStatus) Scan(src interface{}) error

type TransferPrincipalKind

type TransferPrincipalKind string
const (
	TransferPrincipalKindUser TransferPrincipalKind = "user"
	TransferPrincipalKindOrg  TransferPrincipalKind = "org"
)

func (*TransferPrincipalKind) Scan

func (e *TransferPrincipalKind) Scan(src interface{}) error

type TransferStatus

type TransferStatus string
const (
	TransferStatusPending  TransferStatus = "pending"
	TransferStatusAccepted TransferStatus = "accepted"
	TransferStatusDeclined TransferStatus = "declined"
	TransferStatusCanceled TransferStatus = "canceled"
	TransferStatusExpired  TransferStatus = "expired"
)

func (*TransferStatus) Scan

func (e *TransferStatus) Scan(src interface{}) error

type UpdateUserAvatarKeyParams

type UpdateUserAvatarKeyParams struct {
	ID              int64
	AvatarObjectKey pgtype.Text
}

type UpdateUserPasswordParams

type UpdateUserPasswordParams struct {
	ID           int64
	PasswordHash string
	PasswordAlgo string
}

type UpdateUserProfileParams

type UpdateUserProfileParams struct {
	ID          int64
	DisplayName string
	Bio         string
	Location    string
	Website     string
	Company     string
	Pronouns    string
}

type UpdateUserThemeParams

type UpdateUserThemeParams struct {
	ID    int64
	Theme string
}

type UpsertUserNotificationPrefParams

type UpsertUserNotificationPrefParams struct {
	UserID int64
	Key    string
	Value  []byte
}

type UpsertUserTOTPParams

type UpsertUserTOTPParams struct {
	UserID          int64
	SecretEncrypted []byte
	SecretNonce     []byte
}

type User

type User struct {
	ID                int64
	Username          string
	DisplayName       string
	PrimaryEmailID    pgtype.Int8
	PasswordHash      string
	PasswordAlgo      string
	PasswordUpdatedAt pgtype.Timestamptz
	EmailVerified     bool
	LastLoginAt       pgtype.Timestamptz
	SuspendedAt       pgtype.Timestamptz
	SuspendedReason   pgtype.Text
	DeletedAt         pgtype.Timestamptz
	CreatedAt         pgtype.Timestamptz
	UpdatedAt         pgtype.Timestamptz
	Bio               string
	Location          string
	Website           string
	Company           string
	Pronouns          string
	AvatarObjectKey   pgtype.Text
	Theme             string
	SessionEpoch      int32
	IsSiteAdmin       bool
}

type UserEmail

type UserEmail struct {
	ID                    int64
	UserID                int64
	Email                 string
	IsPrimary             bool
	Verified              bool
	VerificationTokenHash []byte
	VerificationSentAt    pgtype.Timestamptz
	VerifiedAt            pgtype.Timestamptz
	CreatedAt             pgtype.Timestamptz
}

type UserNotificationPref

type UserNotificationPref struct {
	UserID    int64
	Key       string
	Value     []byte
	UpdatedAt pgtype.Timestamptz
}

type UserRecoveryCode

type UserRecoveryCode struct {
	ID          int64
	UserID      int64
	CodeHash    []byte
	UsedAt      pgtype.Timestamptz
	GeneratedAt pgtype.Timestamptz
	CreatedAt   pgtype.Timestamptz
}

type UserSshKey

type UserSshKey struct {
	ID                int64
	UserID            int64
	Title             string
	FingerprintSha256 string
	KeyType           string
	KeyBits           int32
	PublicKey         string
	LastUsedAt        pgtype.Timestamptz
	LastUsedIp        *netip.Addr
	CreatedAt         pgtype.Timestamptz
}

type UserToken

type UserToken struct {
	ID          int64
	UserID      int64
	Name        string
	TokenHash   []byte
	TokenPrefix string
	Scopes      []string
	ExpiresAt   pgtype.Timestamptz
	LastUsedAt  pgtype.Timestamptz
	LastUsedIp  *netip.Addr
	RevokedAt   pgtype.Timestamptz
	CreatedAt   pgtype.Timestamptz
}

type UserTotp

type UserTotp struct {
	ID              int64
	UserID          int64
	SecretEncrypted []byte
	SecretNonce     []byte
	ConfirmedAt     pgtype.Timestamptz
	LastUsedCounter int64
	CreatedAt       pgtype.Timestamptz
	UpdatedAt       pgtype.Timestamptz
}

type UsernameRedirect

type UsernameRedirect struct {
	OldUsername string
	UserID      int64
	ChangedAt   pgtype.Timestamptz
}

type UsersSearch

type UsersSearch struct {
	UserID int64
	Tsv    interface{}
}

type Watch

type Watch struct {
	UserID    int64
	RepoID    int64
	Level     WatchLevel
	UpdatedAt pgtype.Timestamptz
}

type WatchLevel

type WatchLevel string
const (
	WatchLevelAll           WatchLevel = "all"
	WatchLevelParticipating WatchLevel = "participating"
	WatchLevelIgnore        WatchLevel = "ignore"
)

func (*WatchLevel) Scan

func (e *WatchLevel) Scan(src interface{}) error

type Webhook

type Webhook struct {
	ID                   int64
	OwnerKind            WebhookOwnerKind
	OwnerID              int64
	Url                  string
	ContentType          WebhookContentType
	Events               []string
	SecretCiphertext     []byte
	SecretNonce          []byte
	Active               bool
	SslVerification      bool
	ConsecutiveFailures  int32
	AutoDisableThreshold int32
	DisabledAt           pgtype.Timestamptz
	DisabledReason       pgtype.Text
	LastSuccessAt        pgtype.Timestamptz
	LastFailureAt        pgtype.Timestamptz
	CreatedByUserID      pgtype.Int8
	CreatedAt            pgtype.Timestamptz
	UpdatedAt            pgtype.Timestamptz
}

type WebhookContentType

type WebhookContentType string
const (
	WebhookContentTypeJson WebhookContentType = "json"
	WebhookContentTypeForm WebhookContentType = "form"
)

func (*WebhookContentType) Scan

func (e *WebhookContentType) Scan(src interface{}) error

type WebhookDelivery

type WebhookDelivery struct {
	ID                int64
	WebhookID         int64
	EventKind         string
	EventID           pgtype.Int8
	DeliveryUuid      pgtype.UUID
	Payload           []byte
	RequestHeaders    []byte
	RequestBody       []byte
	ResponseStatus    pgtype.Int4
	ResponseHeaders   []byte
	ResponseBody      []byte
	ResponseTruncated bool
	StartedAt         pgtype.Timestamptz
	CompletedAt       pgtype.Timestamptz
	Attempt           int32
	MaxAttempts       int32
	NextRetryAt       pgtype.Timestamptz
	Status            WebhookDeliveryStatus
	IdempotencyKey    string
	ErrorSummary      pgtype.Text
	RedeliverOf       pgtype.Int8
}

type WebhookDeliveryStatus

type WebhookDeliveryStatus string
const (
	WebhookDeliveryStatusPending         WebhookDeliveryStatus = "pending"
	WebhookDeliveryStatusSucceeded       WebhookDeliveryStatus = "succeeded"
	WebhookDeliveryStatusFailedRetry     WebhookDeliveryStatus = "failed_retry"
	WebhookDeliveryStatusFailedPermanent WebhookDeliveryStatus = "failed_permanent"
)

func (*WebhookDeliveryStatus) Scan

func (e *WebhookDeliveryStatus) Scan(src interface{}) error

type WebhookEventsPending

type WebhookEventsPending struct {
	ID        int64
	RepoID    int64
	EventKind string
	Payload   []byte
	CreatedAt pgtype.Timestamptz
}

type WebhookOwnerKind

type WebhookOwnerKind string
const (
	WebhookOwnerKindRepo WebhookOwnerKind = "repo"
	WebhookOwnerKindOrg  WebhookOwnerKind = "org"
)

func (*WebhookOwnerKind) Scan

func (e *WebhookOwnerKind) Scan(src interface{}) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL