SYMBOL INDEX (1333 symbols across 222 files) FILE: cmd/cmd.go function InitBackendContext (line 20) | func InitBackendContext(cmd *cobra.Command, _ []string) error { function CloseDBContext (line 45) | func CloseDBContext(cmd *cobra.Command, _ []string) error { function InitializeHooks (line 58) | func InitializeHooks(ctx context.Context, cfg *config.Config, be *backen... FILE: cmd/soft/admin/admin.go function init (line 71) | func init() { FILE: cmd/soft/browse/browse.go type state (line 68) | type state constant startState (line 71) | startState state = iota constant errorState (line 72) | errorState type model (line 75) | type model struct method SetSize (line 87) | func (m *model) SetSize(w, h int) { method ShortHelp (line 101) | func (m model) ShortHelp() []key.Binding { method FullHelp (line 115) | func (m model) FullHelp() [][]key.Binding { method Init (line 133) | func (m *model) Init() tea.Cmd { method Update (line 145) | func (m *model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { method View (line 202) | func (m *model) View() tea.View { type repository (line 238) | type repository struct method Description (line 245) | func (r repository) Description() string { method ID (line 250) | func (r repository) ID() int64 { method IsHidden (line 255) | func (repository) IsHidden() bool { method IsMirror (line 260) | func (repository) IsMirror() bool { method IsPrivate (line 265) | func (repository) IsPrivate() bool { method Name (line 270) | func (r repository) Name() string { method Open (line 275) | func (r repository) Open() (*git.Repository, error) { method ProjectName (line 280) | func (r repository) ProjectName() string { method UpdatedAt (line 285) | func (r repository) UpdatedAt() time.Time { method UserID (line 295) | func (r repository) UserID() int64 { method CreatedAt (line 300) | func (r repository) CreatedAt() time.Time { FILE: cmd/soft/hook/hook.go function init (line 156) | func init() { function runCommand (line 166) | func runCommand(ctx context.Context, in io.Reader, out io.Writer, err io... FILE: cmd/soft/main.go function init (line 68) | func init() { function main (line 100) | func main() { FILE: cmd/soft/serve/certreloader.go type CertReloader (line 11) | type CertReloader struct method Reload (line 35) | func (cr *CertReloader) Reload() error { method GetCertificateFunc (line 48) | func (cr *CertReloader) GetCertificateFunc() func(*tls.ClientHelloInfo... function NewCertReloader (line 19) | func NewCertReloader(certPath, keyPath string, logger *log.Logger) (*Cer... FILE: cmd/soft/serve/certreloader_test.go function generateTestCert (line 21) | func generateTestCert(t *testing.T, certPath, keyPath, cn string) { function TestCertReloader (line 63) | func TestCertReloader(t *testing.T) { FILE: cmd/soft/serve/serve.go function init (line 140) | func init() { constant updateHookExample (line 144) | updateHookExample = `#!/bin/sh FILE: cmd/soft/serve/server.go type Server (line 26) | type Server struct method ReloadCertificates (line 107) | func (s *Server) ReloadCertificates() error { method Start (line 115) | func (s *Server) Start() error { method Shutdown (line 170) | func (s *Server) Shutdown(ctx context.Context) error { method Close (line 196) | func (s *Server) Close() error { function NewServer (line 45) | func NewServer(ctx context.Context) (*Server, error) { FILE: git/attr.go type Attribute (line 13) | type Attribute struct method CheckAttributes (line 19) | func (r *Repository) CheckAttributes(ref *Reference, path string) ([]Att... function parseAttributes (line 42) | func parseAttributes(path string, buf []byte) []Attribute { FILE: git/attr_test.go function TestParseAttr (line 9) | func TestParseAttr(t *testing.T) { FILE: git/command.go function NewCommand (line 9) | func NewCommand(args ...string) *git.Command { FILE: git/commit.go constant ZeroID (line 10) | ZeroID = git.EmptyID function IsZeroHash (line 13) | func IsZeroHash(h string) bool { type Commits (line 22) | type Commits method Len (line 25) | func (cl Commits) Len() int { return len(cl) } method Swap (line 28) | func (cl Commits) Swap(i, j int) { cl[i], cl[j] = cl[j], cl[i] } method Less (line 31) | func (cl Commits) Less(i, j int) bool { FILE: git/config.go method Config (line 11) | func (r *Repository) Config() (*gcfg.Config, error) { method SetConfig (line 29) | func (r *Repository) SetConfig(cfg *gcfg.Config) error { FILE: git/patch.go type DiffSection (line 16) | type DiffSection struct method diffFor (line 24) | func (s *DiffSection) diffFor(line *git.DiffLine) string { function diffsToString (line 63) | func diffsToString(diffs []diffmatchpatch.Diff, lineType git.DiffLineTyp... type DiffFile (line 89) | type DiffFile struct method Files (line 117) | func (f *DiffFile) Files() (from *DiffFileChange, to *DiffFileChange) { type DiffFileChange (line 95) | type DiffFileChange struct method Hash (line 102) | func (f *DiffFileChange) Hash() string { method Name (line 107) | func (f *DiffFileChange) Name() string { method Mode (line 112) | func (f *DiffFileChange) Mode() git.EntryMode { type FileStats (line 136) | type FileStats method String (line 139) | func (fs FileStats) String() string { function printStats (line 143) | func printStats(stats FileStats) string { type Diff (line 231) | type Diff struct method Stats (line 237) | func (d *Diff) Stats() FileStats { method Patch (line 322) | func (d *Diff) Patch() string { constant dstPrefix (line 242) | dstPrefix = "b/" constant srcPrefix (line 243) | srcPrefix = "a/" function appendPathLines (line 246) | func appendPathLines(lines []string, fromPath, toPath string, isBinary b... function writeFilePatchHeader (line 258) | func writeFilePatchHeader(sb *strings.Builder, filePatch *DiffFile) { function toDiff (line 336) | func toDiff(ddiff *git.Diff) *Diff { FILE: git/reference.go constant HEAD (line 11) | HEAD = "HEAD" constant RefsHeads (line 13) | RefsHeads = git.RefsHeads constant RefsTags (line 15) | RefsTags = git.RefsTags type Reference (line 19) | type Reference struct method Name (line 38) | func (r *Reference) Name() ReferenceName { method IsBranch (line 43) | func (r *Reference) IsBranch() bool { method IsTag (line 48) | func (r *Reference) IsTag() bool { type ReferenceName (line 25) | type ReferenceName method String (line 28) | func (r ReferenceName) String() string { method Short (line 33) | func (r ReferenceName) Short() string { FILE: git/repo.go type Repository (line 20) | type Repository struct method HEAD (line 66) | func (r *Repository) HEAD() (*Reference, error) { method References (line 85) | func (r *Repository) References() ([]*Reference, error) { method LsTree (line 101) | func (r *Repository) LsTree(ref string) (*Tree, error) { method Tree (line 114) | func (r *Repository) Tree(ref *Reference) (*Tree, error) { method TreePath (line 126) | func (r *Repository) TreePath(ref *Reference, path string) (*Tree, err... method Diff (line 142) | func (r *Repository) Diff(commit *Commit) (*Diff, error) { method Patch (line 155) | func (r *Repository) Patch(commit *Commit) (string, error) { method CountCommits (line 164) | func (r *Repository) CountCommits(ref *Reference) (int64, error) { method CommitsByPage (line 169) | func (r *Repository) CommitsByPage(ref *Reference, page, size int) (Co... method SymbolicRef (line 181) | func (r *Repository) SymbolicRef(name string, ref string, opts ...git.... function Clone (line 27) | func Clone(src, dst string, opts ...git.CloneOptions) error { function Init (line 32) | func Init(path string, bare bool) (*Repository, error) { function gitDir (line 44) | func gitDir(r *git.Repository) (string, error) { function Open (line 49) | func Open(path string) (*Repository, error) { FILE: git/server.go function UpdateServerInfo (line 10) | func UpdateServerInfo(ctx context.Context, path string) error { FILE: git/stash.go method StashDiff (line 6) | func (r *Repository) StashDiff(index int) (*Diff, error) { FILE: git/tree.go type Tree (line 15) | type Tree struct method SubTree (line 84) | func (t *Tree) SubTree(path string) (*Tree, error) { method Entries (line 97) | func (t *Tree) Entries() (Entries, error) { method TreeEntry (line 113) | func (t *Tree) TreeEntry(path string) (*TreeEntry, error) { type TreeEntry (line 22) | type TreeEntry struct method Mode (line 163) | func (e *TreeEntry) Mode() fs.FileMode { method File (line 174) | func (e *TreeEntry) File() *File { method Contents (line 183) | func (e *TreeEntry) Contents() ([]byte, error) { type Entries (line 29) | type Entries method Len (line 41) | func (es Entries) Len() int { return len(es) } method Swap (line 44) | func (es Entries) Swap(i, j int) { es[i], es[j] = es[j], es[i] } method Less (line 47) | func (es Entries) Less(i, j int) bool { method Sort (line 63) | func (es Entries) Sort() { type File (line 68) | type File struct method Name (line 74) | func (f *File) Name() string { method Path (line 79) | func (f *File) Path() string { method IsBinary (line 151) | func (f *File) IsBinary() (bool, error) { method Contents (line 188) | func (f *File) Contents() ([]byte, error) { constant sniffLen (line 124) | sniffLen = 8000 function IsBinary (line 128) | func IsBinary(r io.Reader) (bool, error) { FILE: git/utils.go function LatestFile (line 11) | func LatestFile(repo *Repository, ref *Reference, pattern string) (strin... function isGitDir (line 59) | func isGitDir(path string) bool { FILE: pkg/access/access.go type AccessLevel (line 9) | type AccessLevel method String (line 26) | func (a AccessLevel) String() string { method UnmarshalText (line 66) | func (a *AccessLevel) UnmarshalText(text []byte) error { method MarshalText (line 78) | func (a AccessLevel) MarshalText() (text []byte, err error) { constant NoAccess (line 13) | NoAccess AccessLevel = iota constant ReadOnlyAccess (line 16) | ReadOnlyAccess constant ReadWriteAccess (line 19) | ReadWriteAccess constant AdminAccess (line 22) | AdminAccess function ParseAccessLevel (line 42) | func ParseAccessLevel(s string) AccessLevel { FILE: pkg/access/access_test.go function TestParseAccessLevel (line 5) | func TestParseAccessLevel(t *testing.T) { FILE: pkg/access/context.go function FromContext (line 9) | func FromContext(ctx context.Context) AccessLevel { function WithContext (line 18) | func WithContext(ctx context.Context, ac AccessLevel) context.Context { FILE: pkg/access/context_test.go function TestGoodFromContext (line 8) | func TestGoodFromContext(t *testing.T) { function TestBadFromContext (line 15) | func TestBadFromContext(t *testing.T) { FILE: pkg/backend/access_token.go method CreateAccessToken (line 14) | func (b *Backend) CreateAccessToken(ctx context.Context, user proto.User... method DeleteAccessToken (line 34) | func (b *Backend) DeleteAccessToken(ctx context.Context, user proto.User... method ListAccessTokens (line 57) | func (b *Backend) ListAccessTokens(ctx context.Context, user proto.User)... FILE: pkg/backend/auth.go constant saltySalt (line 12) | saltySalt = "salty-soft-serve" function HashPassword (line 15) | func HashPassword(password string) (string, error) { function VerifyPassword (line 25) | func VerifyPassword(password, hash string) bool { function GenerateToken (line 31) | func GenerateToken() string { function HashToken (line 42) | func HashToken(token string) string { FILE: pkg/backend/auth_test.go function TestHashPassword (line 5) | func TestHashPassword(t *testing.T) { function TestVerifyPassword (line 15) | func TestVerifyPassword(t *testing.T) { function TestGenerateToken (line 25) | func TestGenerateToken(t *testing.T) { function TestHashToken (line 32) | func TestHashToken(t *testing.T) { FILE: pkg/backend/backend.go type Backend (line 15) | type Backend struct function New (line 26) | func New(ctx context.Context, cfg *config.Config, db *db.DB, st store.St... FILE: pkg/backend/cache.go type cache (line 6) | type cache struct method Get (line 21) | func (c *cache) Get(repo string) (*repo, bool) { method Set (line 25) | func (c *cache) Set(repo string, r *repo) { method Delete (line 29) | func (c *cache) Delete(repo string) { method Len (line 33) | func (c *cache) Len() int { function newCache (line 11) | func newCache(b *Backend, size int) *cache { FILE: pkg/backend/collab.go method AddCollaborator (line 19) | func (d *Backend) AddCollaborator(ctx context.Context, repo string, user... method Collaborators (line 54) | func (d *Backend) Collaborators(ctx context.Context, repo string) ([]str... method IsCollaborator (line 76) | func (d *Backend) IsCollaborator(ctx context.Context, repo string, usern... method RemoveCollaborator (line 97) | func (d *Backend) RemoveCollaborator(ctx context.Context, repo string, u... FILE: pkg/backend/context.go function FromContext (line 9) | func FromContext(ctx context.Context) *Backend { function WithContext (line 18) | func WithContext(ctx context.Context, b *Backend) context.Context { FILE: pkg/backend/hooks.go method PostReceive (line 21) | func (d *Backend) PostReceive(_ context.Context, _ io.Writer, _ io.Write... method PreReceive (line 28) | func (d *Backend) PreReceive(_ context.Context, _ io.Writer, _ io.Writer... method Update (line 35) | func (d *Backend) Update(ctx context.Context, _ io.Writer, _ io.Writer, ... method PostUpdate (line 92) | func (d *Backend) PostUpdate(ctx context.Context, _ io.Writer, _ io.Writ... function populateLastModified (line 110) | func populateLastModified(ctx context.Context, d *Backend, name string) ... FILE: pkg/backend/lfs.go function StoreRepoMissingLFSObjects (line 20) | func StoreRepoMissingLFSObjects(ctx context.Context, repo proto.Reposito... FILE: pkg/backend/repo.go function validateImportRemote (line 28) | func validateImportRemote(remote string) error { method CreateRepository (line 40) | func (d *Backend) CreateRepository(ctx context.Context, name string, use... method ImportRepository (line 102) | func (d *Backend) ImportRepository(_ context.Context, name string, user ... method DeleteRepository (line 227) | func (d *Backend) DeleteRepository(ctx context.Context, name string) err... method DeleteUserRepositories (line 297) | func (d *Backend) DeleteUserRepositories(ctx context.Context, username s... method RenameRepository (line 326) | func (d *Backend) RenameRepository(ctx context.Context, oldName string, ... method Repositories (line 386) | func (d *Backend) Repositories(ctx context.Context) ([]proto.Repository,... method Repository (line 419) | func (d *Backend) Repository(ctx context.Context, name string) (proto.Re... method Description (line 461) | func (d *Backend) Description(ctx context.Context, name string) (string,... method IsMirror (line 478) | func (d *Backend) IsMirror(ctx context.Context, name string) (bool, erro... method IsPrivate (line 494) | func (d *Backend) IsPrivate(ctx context.Context, name string) (bool, err... method IsHidden (line 511) | func (d *Backend) IsHidden(ctx context.Context, name string) (bool, erro... method ProjectName (line 528) | func (d *Backend) ProjectName(ctx context.Context, name string) (string,... method SetHidden (line 545) | func (d *Backend) SetHidden(ctx context.Context, name string, hidden boo... method SetDescription (line 559) | func (d *Backend) SetDescription(ctx context.Context, name string, desc ... method SetPrivate (line 580) | func (d *Backend) SetPrivate(ctx context.Context, name string, private b... method SetProjectName (line 633) | func (d *Backend) SetProjectName(ctx context.Context, repo string, name ... method repoPath (line 648) | func (d *Backend) repoPath(name string) string { type repo (line 657) | type repo struct method ID (line 666) | func (r *repo) ID() int64 { method UserID (line 674) | func (r *repo) UserID() int64 { method Description (line 684) | func (r *repo) Description() string { method IsMirror (line 691) | func (r *repo) IsMirror() bool { method IsPrivate (line 698) | func (r *repo) IsPrivate() bool { method Name (line 705) | func (r *repo) Name() string { method Open (line 712) | func (r *repo) Open() (*git.Repository, error) { method ProjectName (line 719) | func (r *repo) ProjectName() string { method IsHidden (line 726) | func (r *repo) IsHidden() bool { method CreatedAt (line 731) | func (r *repo) CreatedAt() time.Time { method UpdatedAt (line 736) | func (r *repo) UpdatedAt() time.Time { method writeLastModified (line 755) | func (r *repo) writeLastModified(t time.Time) error { function readOneline (line 764) | func readOneline(path string) (string, error) { FILE: pkg/backend/settings.go method AllowKeyless (line 13) | func (b *Backend) AllowKeyless(ctx context.Context) bool { method SetAllowKeyless (line 29) | func (b *Backend) SetAllowKeyless(ctx context.Context, allow bool) error { method AnonAccess (line 38) | func (b *Backend) AnonAccess(ctx context.Context) access.AccessLevel { method SetAnonAccess (line 54) | func (b *Backend) SetAnonAccess(ctx context.Context, level access.Access... FILE: pkg/backend/user.go method AccessLevel (line 21) | func (d *Backend) AccessLevel(ctx context.Context, repo string, username... method AccessLevelByPublicKey (line 29) | func (d *Backend) AccessLevelByPublicKey(ctx context.Context, repo strin... method AccessLevelForUser (line 46) | func (d *Backend) AccessLevelForUser(ctx context.Context, repo string, u... method User (line 110) | func (d *Backend) User(ctx context.Context, username string) (proto.User... method UserByID (line 143) | func (d *Backend) UserByID(ctx context.Context, id int64) (proto.User, e... method UserByPublicKey (line 173) | func (d *Backend) UserByPublicKey(ctx context.Context, pk ssh.PublicKey)... method UserByAccessToken (line 202) | func (d *Backend) UserByAccessToken(ctx context.Context, token string) (... method Users (line 242) | func (d *Backend) Users(ctx context.Context) ([]string, error) { method AddPublicKey (line 265) | func (d *Backend) AddPublicKey(ctx context.Context, username string, pk ... method CreateUser (line 281) | func (d *Backend) CreateUser(ctx context.Context, username string, opts ... method DeleteUser (line 300) | func (d *Backend) DeleteUser(ctx context.Context, username string) error { method RemovePublicKey (line 318) | func (d *Backend) RemovePublicKey(ctx context.Context, username string, ... method ListPublicKeys (line 327) | func (d *Backend) ListPublicKeys(ctx context.Context, username string) (... method SetUsername (line 348) | func (d *Backend) SetUsername(ctx context.Context, username string, newU... method SetAdmin (line 364) | func (d *Backend) SetAdmin(ctx context.Context, username string, admin b... method SetPassword (line 378) | func (d *Backend) SetPassword(ctx context.Context, username string, rawP... type user (line 396) | type user struct method IsAdmin (line 404) | func (u *user) IsAdmin() bool { method PublicKeys (line 409) | func (u *user) PublicKeys() []ssh.PublicKey { method Username (line 414) | func (u *user) Username() string { method ID (line 419) | func (u *user) ID() int64 { method Password (line 424) | func (u *user) Password() string { FILE: pkg/backend/utils.go function LatestFile (line 10) | func LatestFile(r proto.Repository, ref *git.Reference, pattern string) ... function Readme (line 19) | func Readme(r proto.Repository, ref *git.Reference) (readme string, path... FILE: pkg/backend/webhooks.go method CreateWebhook (line 18) | func (b *Backend) CreateWebhook(ctx context.Context, repo proto.Reposito... method Webhook (line 47) | func (b *Backend) Webhook(ctx context.Context, repo proto.Repository, id... method ListWebhooks (line 80) | func (b *Backend) ListWebhooks(ctx context.Context, repo proto.Repositor... method UpdateWebhook (line 124) | func (b *Backend) UpdateWebhook(ctx context.Context, repo proto.Reposito... method DeleteWebhook (line 186) | func (b *Backend) DeleteWebhook(ctx context.Context, repo proto.Reposito... method ListWebhookDeliveries (line 204) | func (b *Backend) ListWebhookDeliveries(ctx context.Context, id int64) (... method RedeliverWebhookDelivery (line 233) | func (b *Backend) RedeliverWebhookDelivery(ctx context.Context, repo pro... method WebhookDelivery (line 269) | func (b *Backend) WebhookDelivery(ctx context.Context, webhookID int64, ... FILE: pkg/config/config.go type SSHConfig (line 20) | type SSHConfig struct type GitConfig (line 44) | type GitConfig struct type CORSConfig (line 65) | type CORSConfig struct type HTTPConfig (line 74) | type HTTPConfig struct type StatsConfig (line 95) | type StatsConfig struct type LogConfig (line 104) | type LogConfig struct type DBConfig (line 119) | type DBConfig struct type LFSConfig (line 128) | type LFSConfig struct type JobsConfig (line 138) | type JobsConfig struct type Config (line 143) | type Config struct method Environ (line 179) | func (c *Config) Environ() []string { method ParseFile (line 259) | func (c *Config) ParseFile() error { method ParseEnv (line 285) | func (c *Config) ParseEnv() error { method Parse (line 291) | func (c *Config) Parse() error { method WriteConfig (line 308) | func (c *Config) WriteConfig() error { method ConfigPath (line 325) | func (c *Config) ConfigPath() string { //nolint:revive method Exist (line 341) | func (c *Config) Exist() bool { method Validate (line 404) | func (c *Config) Validate() error { method AdminKeys (line 472) | func (c *Config) AdminKeys() []ssh.PublicKey { function IsDebug (line 229) | func IsDebug() bool { function IsVerbose (line 236) | func IsVerbose() bool { function parseFile (line 243) | func parseFile(cfg *Config, path string) error { function parseEnv (line 264) | func parseEnv(cfg *Config) error { function writeConfig (line 300) | func writeConfig(cfg *Config, path string) error { function DefaultDataPath (line 315) | func DefaultDataPath() string { function exist (line 335) | func exist(path string) bool { function DefaultConfig (line 348) | func DefaultConfig() *Config { function parseAuthKeys (line 452) | func parseAuthKeys(aks []string) []ssh.PublicKey { function init (line 476) | func init() { FILE: pkg/config/config_test.go function TestParseMultipleKeys (line 10) | func TestParseMultipleKeys(t *testing.T) { function TestMergeInitAdminKeys (line 27) | func TestMergeInitAdminKeys(t *testing.T) { function TestValidateInitAdminKeys (line 43) | func TestValidateInitAdminKeys(t *testing.T) { function TestCustomConfigLocation (line 60) | func TestCustomConfigLocation(t *testing.T) { function TestParseMultipleHeaders (line 83) | func TestParseMultipleHeaders(t *testing.T) { function TestParseMultipleOrigins (line 98) | func TestParseMultipleOrigins(t *testing.T) { function TestParseMultipleMethods (line 113) | func TestParseMultipleMethods(t *testing.T) { FILE: pkg/config/context.go function WithContext (line 9) | func WithContext(ctx context.Context, cfg *Config) context.Context { function FromContext (line 14) | func FromContext(ctx context.Context) *Config { FILE: pkg/config/context_test.go function TestBadFromContext (line 9) | func TestBadFromContext(t *testing.T) { function TestGoodFromContext (line 16) | func TestGoodFromContext(t *testing.T) { function TestGoodFromContextWithDefaultConfig (line 23) | func TestGoodFromContextWithDefaultConfig(t *testing.T) { FILE: pkg/config/file.go function newConfigFile (line 152) | func newConfigFile(cfg *Config) string { FILE: pkg/config/file_test.go function TestNewConfigFile (line 5) | func TestNewConfigFile(t *testing.T) { FILE: pkg/config/ssh.go function KeyPair (line 18) | func KeyPair(cfg *Config) (*keygen.SSHKeyPair, error) { FILE: pkg/config/ssh_test.go function TestBadSSHKeyPair (line 5) | func TestBadSSHKeyPair(t *testing.T) { function TestGoodSSHKeyPair (line 16) | func TestGoodSSHKeyPair(t *testing.T) { FILE: pkg/cron/cron.go type Scheduler (line 12) | type Scheduler struct method Shutdown (line 41) | func (s *Scheduler) Shutdown() { method Start (line 48) | func (s *Scheduler) Start() { method AddFunc (line 53) | func (s *Scheduler) AddFunc(spec string, fn func()) (int, error) { method Remove (line 59) | func (s *Scheduler) Remove(id int) { type cronLogger (line 18) | type cronLogger struct method Info (line 23) | func (l cronLogger) Info(msg string, keysAndValues ...interface{}) { method Error (line 28) | func (l cronLogger) Error(err error, msg string, keysAndValues ...inte... function NewScheduler (line 33) | func NewScheduler(ctx context.Context) *Scheduler { FILE: pkg/cron/cron_test.go function TestCronLogger (line 12) | func TestCronLogger(t *testing.T) { function TestSchedularAddRemove (line 24) | func TestSchedularAddRemove(t *testing.T) { FILE: pkg/daemon/conn.go type connections (line 12) | type connections struct method Add (line 17) | func (m *connections) Add(c net.Conn) { method Close (line 23) | func (m *connections) Close(c net.Conn) error { method Size (line 31) | func (m *connections) Size() int { method CloseAll (line 37) | func (m *connections) CloseAll() error { type serverConn (line 51) | type serverConn struct method Write (line 62) | func (c *serverConn) Write(p []byte) (n int, err error) { method Read (line 71) | func (c *serverConn) Read(b []byte) (n int, err error) { method Close (line 80) | func (c *serverConn) Close() (err error) { method updateDeadline (line 88) | func (c *serverConn) updateDeadline() { FILE: pkg/daemon/daemon.go type GitDaemon (line 46) | type GitDaemon struct method ListenAndServe (line 78) | func (d *GitDaemon) ListenAndServe() error { method Serve (line 91) | func (d *GitDaemon) Serve(listener net.Listener) error { method fatal (line 142) | func (d *GitDaemon) fatal(c net.Conn, err error) { method handleClient (line 150) | func (d *GitDaemon) handleClient(conn net.Conn) { method Close (line 319) | func (d *GitDaemon) Close() error { method closeListener (line 326) | func (d *GitDaemon) closeListener() error { method Shutdown (line 347) | func (d *GitDaemon) Shutdown(ctx context.Context) error { function NewGitDaemon (line 62) | func NewGitDaemon(ctx context.Context) (*GitDaemon, error) { FILE: pkg/daemon/daemon_test.go function TestMain (line 27) | func TestMain(m *testing.M) { function TestIdleTimeout (line 73) | func TestIdleTimeout(t *testing.T) { function TestInvalidRepo (line 96) | func TestInvalidRepo(t *testing.T) { function readPktline (line 110) | func readPktline(c net.Conn) (string, error) { FILE: pkg/db/context.go function FromContext (line 9) | func FromContext(ctx context.Context) *DB { function WithContext (line 17) | func WithContext(ctx context.Context, db *DB) context.Context { FILE: pkg/db/context_test.go function TestBadFromContext (line 11) | func TestBadFromContext(t *testing.T) { function TestGoodFromContext (line 18) | func TestGoodFromContext(t *testing.T) { FILE: pkg/db/db.go type DB (line 17) | type DB struct method Close (line 42) | func (d *DB) Close() error { method Transaction (line 53) | func (d *DB) Transaction(fn func(tx *Tx) error) error { method TransactionContext (line 58) | func (d *DB) TransactionContext(ctx context.Context, fn func(tx *Tx) e... function Open (line 23) | func Open(ctx context.Context, driverName string, dsn string) (*DB, erro... type Tx (line 47) | type Tx struct function rollback (line 80) | func rollback(tx *Tx, err error) error { FILE: pkg/db/db_test.go function TestOpenUnknownDriver (line 9) | func TestOpenUnknownDriver(t *testing.T) { FILE: pkg/db/errors.go function WrapError (line 22) | func WrapError(err error) error { FILE: pkg/db/errors_test.go function TestWrapErrorBadNoRows (line 10) | func TestWrapErrorBadNoRows(t *testing.T) { function TestWrapErrorGoodNoRows (line 21) | func TestWrapErrorGoodNoRows(t *testing.T) { FILE: pkg/db/handler.go type Handler (line 11) | type Handler interface FILE: pkg/db/internal/test/test.go function OpenSqlite (line 14) | func OpenSqlite(ctx context.Context, tb testing.TB) (*db.DB, error) { FILE: pkg/db/logger.go function trace (line 12) | func trace(l *log.Logger, query string, args ...interface{}) { method Select (line 22) | func (d *DB) Select(dest interface{}, query string, args ...interface{})... method Get (line 28) | func (d *DB) Get(dest interface{}, query string, args ...interface{}) er... method Queryx (line 34) | func (d *DB) Queryx(query string, args ...interface{}) (*sqlx.Rows, erro... method QueryRowx (line 40) | func (d *DB) QueryRowx(query string, args ...interface{}) *sqlx.Row { method Exec (line 48) | func (d *DB) Exec(query string, args ...interface{}) (sql.Result, error) { method SelectContext (line 54) | func (d *DB) SelectContext(ctx context.Context, dest interface{}, query ... method GetContext (line 60) | func (d *DB) GetContext(ctx context.Context, dest interface{}, query str... method QueryxContext (line 66) | func (d *DB) QueryxContext(ctx context.Context, query string, args ...in... method QueryRowxContext (line 72) | func (d *DB) QueryRowxContext(ctx context.Context, query string, args ..... method ExecContext (line 78) | func (d *DB) ExecContext(ctx context.Context, query string, args ...inte... method Select (line 84) | func (t *Tx) Select(dest interface{}, query string, args ...interface{})... method Get (line 90) | func (t *Tx) Get(dest interface{}, query string, args ...interface{}) er... method Queryx (line 96) | func (t *Tx) Queryx(query string, args ...interface{}) (*sqlx.Rows, erro... method QueryRowx (line 102) | func (t *Tx) QueryRowx(query string, args ...interface{}) *sqlx.Row { method Exec (line 110) | func (t *Tx) Exec(query string, args ...interface{}) (sql.Result, error) { method SelectContext (line 116) | func (t *Tx) SelectContext(ctx context.Context, dest interface{}, query ... method GetContext (line 122) | func (t *Tx) GetContext(ctx context.Context, dest interface{}, query str... method QueryxContext (line 128) | func (t *Tx) QueryxContext(ctx context.Context, query string, args ...in... method QueryRowxContext (line 134) | func (t *Tx) QueryRowxContext(ctx context.Context, query string, args ..... method ExecContext (line 140) | func (t *Tx) ExecContext(ctx context.Context, query string, args ...inte... FILE: pkg/db/migrate/0001_create_tables.go constant createTablesName (line 16) | createTablesName = "create tables" constant createTablesVersion (line 17) | createTablesVersion = 1 FILE: pkg/db/migrate/0001_create_tables_postgres.up.sql type settings (line 1) | CREATE TABLE IF NOT EXISTS settings ( type users (line 9) | CREATE TABLE IF NOT EXISTS users ( type public_keys (line 18) | CREATE TABLE IF NOT EXISTS public_keys ( type repos (line 30) | CREATE TABLE IF NOT EXISTS repos ( type collabs (line 47) | CREATE TABLE IF NOT EXISTS collabs ( type lfs_objects (line 65) | CREATE TABLE IF NOT EXISTS lfs_objects ( type lfs_locks (line 79) | CREATE TABLE IF NOT EXISTS lfs_locks ( type access_tokens (line 98) | CREATE TABLE IF NOT EXISTS access_tokens ( FILE: pkg/db/migrate/0001_create_tables_sqlite.up.sql type settings (line 1) | CREATE TABLE IF NOT EXISTS settings ( type users (line 9) | CREATE TABLE IF NOT EXISTS users ( type public_keys (line 18) | CREATE TABLE IF NOT EXISTS public_keys ( type repos (line 30) | CREATE TABLE IF NOT EXISTS repos ( type collabs (line 47) | CREATE TABLE IF NOT EXISTS collabs ( type lfs_objects (line 65) | CREATE TABLE IF NOT EXISTS lfs_objects ( type lfs_locks (line 79) | CREATE TABLE IF NOT EXISTS lfs_locks ( type access_tokens (line 98) | CREATE TABLE IF NOT EXISTS access_tokens ( FILE: pkg/db/migrate/0002_webhooks.go constant webhooksName (line 10) | webhooksName = "webhooks" constant webhooksVersion (line 11) | webhooksVersion = 2 FILE: pkg/db/migrate/0002_webhooks_postgres.up.sql type webhooks (line 1) | CREATE TABLE IF NOT EXISTS webhooks ( type webhook_events (line 17) | CREATE TABLE IF NOT EXISTS webhook_events ( type webhook_deliveries (line 29) | CREATE TABLE IF NOT EXISTS webhook_deliveries ( FILE: pkg/db/migrate/0002_webhooks_sqlite.up.sql type webhooks (line 1) | CREATE TABLE IF NOT EXISTS webhooks ( type webhook_events (line 17) | CREATE TABLE IF NOT EXISTS webhook_events ( type webhook_deliveries (line 29) | CREATE TABLE IF NOT EXISTS webhook_deliveries ( FILE: pkg/db/migrate/0003_migrate_lfs_objects.go constant migrateLfsObjectsName (line 16) | migrateLfsObjectsName = "migrate_lfs_objects" constant migrateLfsObjectsVersion (line 17) | migrateLfsObjectsVersion = 3 function goodRelativePath (line 58) | func goodRelativePath(oid string) string { function badRelativePath (line 65) | func badRelativePath(oid string) string { FILE: pkg/db/migrate/migrate.go type MigrateFunc (line 14) | type MigrateFunc type Migration (line 18) | type Migration struct type Migrations (line 26) | type Migrations struct method schema (line 32) | func (Migrations) schema(driverName string) string { function Migrate (line 63) | func Migrate(ctx context.Context, dbx *db.DB) error { function Rollback (line 99) | func Rollback(ctx context.Context, dbx *db.DB) error { function hasTable (line 127) | func hasTable(tx *db.Tx, tableName string) bool { FILE: pkg/db/migrate/migrate_test.go function TestMigrate (line 11) | func TestMigrate(t *testing.T) { FILE: pkg/db/migrate/migrations.go function execMigration (line 23) | func execMigration(ctx context.Context, tx *db.Tx, version int, name str... function migrateUp (line 47) | func migrateUp(ctx context.Context, tx *db.Tx, version int, name string)... function migrateDown (line 51) | func migrateDown(ctx context.Context, tx *db.Tx, version int, name strin... function toSnakeCase (line 60) | func toSnakeCase(str string) string { FILE: pkg/db/models/access_token.go type AccessToken (line 9) | type AccessToken struct FILE: pkg/db/models/collab.go type Collab (line 10) | type Collab struct FILE: pkg/db/models/lfs.go type LFSObject (line 6) | type LFSObject struct type LFSLock (line 16) | type LFSLock struct FILE: pkg/db/models/public_key.go type PublicKey (line 4) | type PublicKey struct FILE: pkg/db/models/repo.go type Repo (line 9) | type Repo struct FILE: pkg/db/models/settings.go type Settings (line 4) | type Settings struct FILE: pkg/db/models/user.go type User (line 9) | type User struct FILE: pkg/db/models/webhook.go type Webhook (line 11) | type Webhook struct type WebhookEvent (line 23) | type WebhookEvent struct type WebhookDelivery (line 31) | type WebhookDelivery struct FILE: pkg/git/git.go function WritePktline (line 21) | func WritePktline(w io.Writer, v ...interface{}) error { function WritePktlineErr (line 35) | func WritePktlineErr(w io.Writer, err error) error { function EnsureWithin (line 40) | func EnsureWithin(reposDir string, repo string) error { function EnsureDefaultBranch (line 64) | func EnsureDefaultBranch(ctx context.Context, repoPath string) error { FILE: pkg/git/git_test.go function TestPktline (line 13) | func TestPktline(t *testing.T) { function TestEnsureWithinBad (line 62) | func TestEnsureWithinBad(t *testing.T) { function TestEnsureWithinGood (line 74) | func TestEnsureWithinGood(t *testing.T) { function TestEnsureDefaultBranchEmpty (line 87) | func TestEnsureDefaultBranchEmpty(t *testing.T) { FILE: pkg/git/lfs.go type lfsTransfer (line 26) | type lfsTransfer struct method Batch (line 90) | func (t *lfsTransfer) Batch(_ string, pointers []transfer.BatchItem, _... method Download (line 113) | func (t *lfsTransfer) Download(oid string, _ transfer.Args) (io.ReadCl... method Upload (line 130) | func (t *lfsTransfer) Upload(oid string, size int64, r io.Reader, _ tr... method Verify (line 180) | func (t *lfsTransfer) Verify(oid string, size int64, _ transfer.Args) ... method LockBackend (line 207) | func (t *lfsTransfer) LockBackend(args transfer.Args) transfer.LockBac... function LFSTransfer (line 43) | func LFSTransfer(ctx context.Context, cmd ServiceCommand) error { type lfsLockBackend (line 198) | type lfsLockBackend struct method Create (line 218) | func (l *lfsLockBackend) Create(path string, refname string) (transfer... method FromID (line 248) | func (l *lfsLockBackend) FromID(id string) (transfer.Lock, error) { method FromPath (line 278) | func (l *lfsLockBackend) FromPath(path string) (transfer.Lock, error) { method Range (line 304) | func (l *lfsLockBackend) Range(cursor string, limit int, fn func(trans... method Unlock (line 360) | func (l *lfsLockBackend) Unlock(lock transfer.Lock) error { type LFSLock (line 384) | type LFSLock struct method AsArguments (line 393) | func (l *LFSLock) AsArguments() []string { method AsLockSpec (line 403) | func (l *LFSLock) AsLockSpec(ownerID bool) ([]string, error) { method FormattedTimestamp (line 425) | func (l *LFSLock) FormattedTimestamp() string { method ID (line 430) | func (l *LFSLock) ID() string { method OwnerName (line 435) | func (l *LFSLock) OwnerName() string { method Path (line 440) | func (l *LFSLock) Path() string { method Unlock (line 445) | func (l *LFSLock) Unlock() error { FILE: pkg/git/lfs_auth.go function LFSAuthenticate (line 21) | func LFSAuthenticate(ctx context.Context, cmd ServiceCommand) error { FILE: pkg/git/lfs_log.go type lfsLogger (line 8) | type lfsLogger struct method Log (line 15) | func (l *lfsLogger) Log(msg string, kv ...interface{}) { FILE: pkg/git/service.go type Service (line 17) | type Service method String (line 33) | func (s Service) String() string { method Name (line 38) | func (s Service) Name() string { method Handler (line 43) | func (s Service) Handler(ctx context.Context, cmd ServiceCommand) error { constant UploadPackService (line 21) | UploadPackService Service = "git-upload-pack" constant UploadArchiveService (line 23) | UploadArchiveService Service = "git-upload-archive" constant ReceivePackService (line 25) | ReceivePackService Service = "git-receive-pack" constant LFSTransferService (line 27) | LFSTransferService Service = "git-lfs-transfer" constant LFSAuthenticateService (line 29) | LFSAuthenticateService = "git-lfs-authenticate" type ServiceHandler (line 57) | type ServiceHandler function gitServiceHandler (line 60) | func gitServiceHandler(ctx context.Context, svc Service, scmd ServiceCom... type ServiceCommand (line 177) | type ServiceCommand struct function UploadPack (line 190) | func UploadPack(ctx context.Context, cmd ServiceCommand) error { function UploadArchive (line 195) | func UploadArchive(ctx context.Context, cmd ServiceCommand) error { function ReceivePack (line 200) | func ReceivePack(ctx context.Context, cmd ServiceCommand) error { FILE: pkg/hooks/gen.go constant PreReceiveHook (line 17) | PreReceiveHook = "pre-receive" constant UpdateHook (line 18) | UpdateHook = "update" constant PostReceiveHook (line 19) | PostReceiveHook = "post-receive" constant PostUpdateHook (line 20) | PostUpdateHook = "post-update" function GenerateHooks (line 31) | func GenerateHooks(_ context.Context, cfg *config.Config, repo string) e... constant hookTemplate (line 96) | hookTemplate = `#!/usr/bin/env bash FILE: pkg/hooks/gen_test.go function TestGenerateHooks (line 13) | func TestGenerateHooks(t *testing.T) { FILE: pkg/hooks/hooks.go type HookArg (line 9) | type HookArg struct type Hooks (line 16) | type Hooks interface FILE: pkg/jobs/jobs.go type Job (line 9) | type Job struct type Runner (line 15) | type Runner interface function Register (line 26) | func Register(name string, runner Runner) { function List (line 33) | func List() map[string]*Job { FILE: pkg/jobs/mirror.go function init (line 20) | func init() { type mirrorPull (line 24) | type mirrorPull struct method Spec (line 27) | func (m mirrorPull) Spec(ctx context.Context) string { method Func (line 36) | func (m mirrorPull) Func(ctx context.Context) func() { FILE: pkg/jwk/jwk.go type Pair (line 18) | type Pair struct method PrivateKey (line 24) | func (p Pair) PrivateKey() crypto.PrivateKey { method JWK (line 29) | func (p Pair) JWK() jose.JSONWebKey { function NewPair (line 34) | func NewPair(cfg *config.Config) (Pair, error) { FILE: pkg/jwk/jwk_test.go function TestBadNewPair (line 10) | func TestBadNewPair(t *testing.T) { function TestGoodNewPair (line 17) | func TestGoodNewPair(t *testing.T) { FILE: pkg/lfs/basic_transfer.go type BasicTransferAdapter (line 16) | type BasicTransferAdapter struct method Name (line 21) | func (a *BasicTransferAdapter) Name() string { method Download (line 26) | func (a *BasicTransferAdapter) Download(ctx context.Context, _ Pointer... method Upload (line 35) | func (a *BasicTransferAdapter) Upload(ctx context.Context, p Pointer, ... method Verify (line 54) | func (a *BasicTransferAdapter) Verify(ctx context.Context, p Pointer, ... method performRequest (line 71) | func (a *BasicTransferAdapter) performRequest(ctx context.Context, met... function handleErrorResponse (line 107) | func handleErrorResponse(resp *http.Response) error { function decodeResponseError (line 117) | func decodeResponseError(r io.Reader) (ErrorResponse, error) { FILE: pkg/lfs/client.go type DownloadCallback (line 9) | type DownloadCallback type UploadCallback (line 12) | type UploadCallback type Client (line 15) | type Client interface function NewClient (line 21) | func NewClient(e Endpoint) Client { FILE: pkg/lfs/common.go constant MediaType (line 9) | MediaType = "application/vnd.git-lfs+json" constant OperationDownload (line 12) | OperationDownload = "download" constant OperationUpload (line 15) | OperationUpload = "upload" constant ActionDownload (line 18) | ActionDownload = OperationDownload constant ActionUpload (line 21) | ActionUpload = OperationUpload constant ActionVerify (line 24) | ActionVerify = "verify" constant DefaultLocksLimit (line 28) | DefaultLocksLimit = 20 type Pointer (line 32) | type Pointer struct type PointerBlob (line 38) | type PointerBlob struct type ErrorResponse (line 44) | type ErrorResponse struct type BatchResponse (line 53) | type BatchResponse struct type ObjectResponse (line 60) | type ObjectResponse struct type Link (line 67) | type Link struct type ObjectError (line 75) | type ObjectError struct type BatchRequest (line 82) | type BatchRequest struct type Reference (line 92) | type Reference struct type AuthenticateResponse (line 97) | type AuthenticateResponse struct type LockCreateRequest (line 107) | type LockCreateRequest struct type Owner (line 113) | type Owner struct type Lock (line 120) | type Lock struct type LockDeleteRequest (line 130) | type LockDeleteRequest struct type LockListResponse (line 138) | type LockListResponse struct type LockVerifyRequest (line 144) | type LockVerifyRequest struct type LockVerifyResponse (line 153) | type LockVerifyResponse struct type LockResponse (line 160) | type LockResponse struct FILE: pkg/lfs/endpoint.go function NewEndpoint (line 13) | func NewEndpoint(rawurl string) (Endpoint, error) { function endpointFromBareSSH (line 51) | func endpointFromBareSSH(rawurl string) (*url.URL, error) { FILE: pkg/lfs/http_client.go type httpClient (line 16) | type httpClient struct method Download (line 37) | func (c *httpClient) Download(ctx context.Context, objects []Pointer, ... method Upload (line 42) | func (c *httpClient) Upload(ctx context.Context, objects []Pointer, ca... method transferNames (line 46) | func (c *httpClient) transferNames() []string { method batch (line 57) | func (c *httpClient) batch(ctx context.Context, operation string, obje... method performOperation (line 111) | func (c *httpClient) performOperation(ctx context.Context, objects []P... function newHTTPClient (line 25) | func newHTTPClient(endpoint Endpoint) *httpClient { FILE: pkg/lfs/pointer.go constant blobSizeCutoff (line 16) | blobSizeCutoff = 1024 constant HashAlgorithmSHA256 (line 19) | HashAlgorithmSHA256 = "sha256" constant MetaFileIdentifier (line 23) | MetaFileIdentifier = "version https://git-lfs.github.com/spec/v1" constant MetaFileOidPrefix (line 26) | MetaFileOidPrefix = "oid " + HashAlgorithmSHA256 + ":" function ReadPointer (line 41) | func ReadPointer(reader io.Reader) (Pointer, error) { function ReadPointerFromBuffer (line 55) | func ReadPointerFromBuffer(buf []byte) (Pointer, error) { method IsValid (line 85) | func (p Pointer) IsValid() bool { method String (line 100) | func (p Pointer) String() string { method RelativePath (line 106) | func (p Pointer) RelativePath() string { function GeneratePointer (line 115) | func GeneratePointer(content io.Reader) (Pointer, error) { FILE: pkg/lfs/pointer_test.go function TestReadPointer (line 10) | func TestReadPointer(t *testing.T) { FILE: pkg/lfs/scanner.go function SearchPointerBlobs (line 18) | func SearchPointerBlobs(ctx context.Context, repo *git.Repository, point... function createPointerResultsFromCatFileBatch (line 52) | func createPointerResultsFromCatFileBatch(ctx context.Context, catFileBa... function catFileBatch (line 105) | func catFileBatch(ctx context.Context, shasToBatchReader *io.PipeReader,... function blobsLessThan1024FromCatFileBatchCheck (line 123) | func blobsLessThan1024FromCatFileBatchCheck(catFileCheckReader *io.PipeR... function catFileBatchCheck (line 155) | func catFileBatchCheck(ctx context.Context, shasToCheckReader *io.PipeRe... function blobsFromRevListObjects (line 173) | func blobsFromRevListObjects(revListReader *io.PipeReader, shasToCheckWr... function revListAllObjects (line 202) | func revListAllObjects(ctx context.Context, revListWriter *io.PipeWriter... FILE: pkg/lfs/transfer.go constant TransferBasic (line 9) | TransferBasic = "basic" type TransferAdapter (line 12) | type TransferAdapter interface FILE: pkg/log/log.go function NewLogger (line 13) | func NewLogger(cfg *config.Config) (*log.Logger, *os.File, error) { FILE: pkg/log/log_test.go function TestGoodNewLogger (line 10) | func TestGoodNewLogger(t *testing.T) { function TestBadNewLogger (line 28) | func TestBadNewLogger(t *testing.T) { FILE: pkg/proto/access_token.go type AccessToken (line 6) | type AccessToken struct FILE: pkg/proto/context.go function RepositoryFromContext (line 12) | func RepositoryFromContext(ctx context.Context) Repository { function UserFromContext (line 20) | func UserFromContext(ctx context.Context) User { function WithRepositoryContext (line 28) | func WithRepositoryContext(ctx context.Context, r Repository) context.Co... function WithUserContext (line 33) | func WithUserContext(ctx context.Context, u User) context.Context { FILE: pkg/proto/repo.go type Repository (line 10) | type Repository interface type RepositoryOptions (line 38) | type RepositoryOptions struct function RepositoryDefaultBranch (line 49) | func RepositoryDefaultBranch(repo Repository) (string, error) { FILE: pkg/proto/user.go type User (line 6) | type User interface type UserOptions (line 20) | type UserOptions struct FILE: pkg/ssh/cmd/blob.go function blobCommand (line 15) | func blobCommand() *cobra.Command { FILE: pkg/ssh/cmd/branch.go function branchCommand (line 15) | func branchCommand() *cobra.Command { function branchListCommand (line 30) | func branchListCommand() *cobra.Command { function branchDefaultCommand (line 62) | func branchDefaultCommand() *cobra.Command { function branchDeleteCommand (line 144) | func branchDeleteCommand() *cobra.Command { FILE: pkg/ssh/cmd/cmd.go constant UsageTemplate (line 31) | UsageTemplate = `Usage:{{if .Runnable}} function UsageFunc (line 65) | func UsageFunc(c *cobra.Command) error { function trimRightSpace (line 94) | func trimRightSpace(s string) string { function rpad (line 99) | func rpad(s string, padding int) string { function CommandName (line 105) | func CommandName(args []string) string { function checkIfReadable (line 112) | func checkIfReadable(cmd *cobra.Command, args []string) error { function IsPublicKeyAdmin (line 131) | func IsPublicKeyAdmin(cfg *config.Config, pk ssh.PublicKey) bool { function checkIfAdmin (line 140) | func checkIfAdmin(cmd *cobra.Command, args []string) error { function checkIfCollab (line 172) | func checkIfCollab(cmd *cobra.Command, args []string) error { function checkIfReadableAndCollab (line 189) | func checkIfReadableAndCollab(cmd *cobra.Command, args []string) error { FILE: pkg/ssh/cmd/collab.go function collabCommand (line 9) | func collabCommand() *cobra.Command { function collabAddCommand (line 25) | func collabAddCommand() *cobra.Command { function collabRemoveCommand (line 52) | func collabRemoveCommand() *cobra.Command { function collabListCommand (line 71) | func collabListCommand() *cobra.Command { FILE: pkg/ssh/cmd/commit.go function commitCommand (line 18) | func commitCommand() *cobra.Command { function renderDiff (line 111) | func renderDiff(patch string, color bool) string { function renderStats (line 137) | func renderStats(diff *git.Diff, commonStyle *styles.Styles, color bool)... FILE: pkg/ssh/cmd/create.go function createCommand (line 13) | func createCommand() *cobra.Command { FILE: pkg/ssh/cmd/delete.go function deleteCommand (line 8) | func deleteCommand() *cobra.Command { FILE: pkg/ssh/cmd/description.go function descriptionCommand (line 10) | func descriptionCommand() *cobra.Command { FILE: pkg/ssh/cmd/git.go function GitUploadPackCommand (line 103) | func GitUploadPackCommand() *cobra.Command { function GitUploadArchiveCommand (line 116) | func GitUploadArchiveCommand() *cobra.Command { function GitReceivePackCommand (line 129) | func GitReceivePackCommand() *cobra.Command { function GitLFSAuthenticateCommand (line 142) | func GitLFSAuthenticateCommand() *cobra.Command { function GitLFSTransfer (line 155) | func GitLFSTransfer() *cobra.Command { function gitRunE (line 167) | func gitRunE(cmd *cobra.Command, args []string) error { FILE: pkg/ssh/cmd/hidden.go function hiddenCommand (line 8) | func hiddenCommand() *cobra.Command { FILE: pkg/ssh/cmd/import.go function importCommand (line 13) | func importCommand() *cobra.Command { FILE: pkg/ssh/cmd/info.go function InfoCommand (line 10) | func InfoCommand() *cobra.Command { FILE: pkg/ssh/cmd/jwt.go function JWTCommand (line 15) | func JWTCommand() *cobra.Command { FILE: pkg/ssh/cmd/list.go function listCommand (line 11) | func listCommand() *cobra.Command { FILE: pkg/ssh/cmd/mirror.go function mirrorCommand (line 8) | func mirrorCommand() *cobra.Command { FILE: pkg/ssh/cmd/private.go function privateCommand (line 11) | func privateCommand() *cobra.Command { FILE: pkg/ssh/cmd/project_name.go function projectName (line 10) | func projectName() *cobra.Command { FILE: pkg/ssh/cmd/pubkey.go function PubkeyCommand (line 12) | func PubkeyCommand() *cobra.Command { FILE: pkg/ssh/cmd/rename.go function renameCommand (line 8) | func renameCommand() *cobra.Command { FILE: pkg/ssh/cmd/repo.go function RepoCommand (line 13) | func RepoCommand() *cobra.Command { FILE: pkg/ssh/cmd/set_username.go function SetUsernameCommand (line 10) | func SetUsernameCommand() *cobra.Command { FILE: pkg/ssh/cmd/settings.go function SettingsCommand (line 13) | func SettingsCommand() *cobra.Command { FILE: pkg/ssh/cmd/tag.go function tagCommand (line 14) | func tagCommand() *cobra.Command { function tagListCommand (line 28) | func tagListCommand() *cobra.Command { function tagDeleteCommand (line 61) | func tagDeleteCommand() *cobra.Command { FILE: pkg/ssh/cmd/token.go function TokenCommand (line 17) | func TokenCommand() *cobra.Command { FILE: pkg/ssh/cmd/tree.go function treeCommand (line 15) | func treeCommand() *cobra.Command { FILE: pkg/ssh/cmd/user.go function UserCommand (line 15) | func UserCommand() *cobra.Command { FILE: pkg/ssh/cmd/webhooks.go function webhookCommand (line 17) | func webhookCommand() *cobra.Command { function init (line 37) | func init() { function webhookListCommand (line 45) | func webhookListCommand() *cobra.Command { function webhookCreateCommand (line 88) | func webhookCreateCommand() *cobra.Command { function webhookDeleteCommand (line 139) | func webhookDeleteCommand() *cobra.Command { function webhookUpdateCommand (line 165) | func webhookUpdateCommand() *cobra.Command { function webhookDeliveriesCommand (line 256) | func webhookDeliveriesCommand() *cobra.Command { function webhookDeliveriesListCommand (line 272) | func webhookDeliveriesListCommand() *cobra.Command { function webhookDeliveriesRedeliverCommand (line 312) | func webhookDeliveriesRedeliverCommand() *cobra.Command { function webhookDeliveriesGetCommand (line 343) | func webhookDeliveriesGetCommand() *cobra.Command { FILE: pkg/ssh/middleware.go function AuthenticationMiddleware (line 28) | func AuthenticationMiddleware(sh ssh.Handler) ssh.Handler { function ContextMiddleware (line 77) | func ContextMiddleware(cfg *config.Config, dbx *db.DB, datastore store.S... function CommandMiddleware (line 101) | func CommandMiddleware(sh ssh.Handler) ssh.Handler { function LoggingMiddleware (line 166) | func LoggingMiddleware(sh ssh.Handler) ssh.Handler { FILE: pkg/ssh/middleware_test.go function TestAuthenticationBypass (line 35) | func TestAuthenticationBypass(t *testing.T) { type mockSSHContext (line 152) | type mockSSHContext struct method SetValue (line 158) | func (m *mockSSHContext) SetValue(key, value any) { method Value (line 162) | func (m *mockSSHContext) Value(key any) any { method Permissions (line 169) | func (m *mockSSHContext) Permissions() *ssh.Permissions { method User (line 173) | func (m *mockSSHContext) User() string { return "" } method RemoteAddr (line 174) | func (m *mockSSHContext) RemoteAddr() net.Addr { return &net.TCPAddr{} } method LocalAddr (line 175) | func (m *mockSSHContext) LocalAddr() net.Addr { return &net.TCPAddr{} } method ServerVersion (line 176) | func (m *mockSSHContext) ServerVersion() string { return "" } method ClientVersion (line 177) | func (m *mockSSHContext) ClientVersion() string { return "" } method SessionID (line 178) | func (m *mockSSHContext) SessionID() string { return "" } method Lock (line 179) | func (m *mockSSHContext) Lock() {} method Unlock (line 180) | func (m *mockSSHContext) Unlock() {} FILE: pkg/ssh/session.go function SessionHandler (line 35) | func SessionHandler(s ssh.Session) *tea.Program { FILE: pkg/ssh/session_test.go function TestSession (line 27) | func TestSession(t *testing.T) { function setup (line 50) | func setup(tb testing.TB) (*gossh.Session, func() error) { FILE: pkg/ssh/ssh.go type SSHServer (line 43) | type SSHServer struct method ListenAndServe (line 133) | func (s *SSHServer) ListenAndServe() error { method Serve (line 138) | func (s *SSHServer) Serve(l net.Listener) error { method Close (line 143) | func (s *SSHServer) Close() error { method Shutdown (line 148) | func (s *SSHServer) Shutdown(ctx context.Context) error { method PublicKeyHandler (line 163) | func (s *SSHServer) PublicKeyHandler(ctx ssh.Context, pk ssh.PublicKey... method KeyboardInteractiveHandler (line 184) | func (s *SSHServer) KeyboardInteractiveHandler(ctx ssh.Context, _ goss... function NewSSHServer (line 52) | func NewSSHServer(ctx context.Context) (*SSHServer, error) { function initializePermissions (line 152) | func initializePermissions(ctx ssh.Context) { FILE: pkg/ssh/ui.go type page (line 20) | type page constant selectionPage (line 23) | selectionPage page = iota constant repoPage (line 24) | repoPage type sessionState (line 27) | type sessionState constant loadingState (line 30) | loadingState sessionState = iota constant errorState (line 31) | errorState constant readyState (line 32) | readyState type UI (line 36) | type UI struct method getMargins (line 67) | func (ui *UI) getMargins() (wm, hm int) { method ShortHelp (line 87) | func (ui *UI) ShortHelp() []key.Binding { method FullHelp (line 103) | func (ui *UI) FullHelp() [][]key.Binding { method SetSize (line 122) | func (ui *UI) SetSize(width, height int) { method Init (line 135) | func (ui *UI) Init() tea.Cmd { method IsFiltering (line 159) | func (ui *UI) IsFiltering() bool { method Update (line 169) | func (ui *UI) Update(msg tea.Msg) (tea.Model, tea.Cmd) { method View (line 259) | func (ui *UI) View() tea.View { method openRepo (line 297) | func (ui *UI) openRepo(rn string) (proto.Repository, error) { method setRepoCmd (line 318) | func (ui *UI) setRepoCmd(rn string) tea.Cmd { method initialRepoCmd (line 328) | func (ui *UI) initialRepoCmd(rn string) tea.Cmd { function NewUI (line 50) | func NewUI(c common.Common, initialRepo string) *UI { FILE: pkg/sshutils/utils.go function ParseAuthorizedKey (line 12) | func ParseAuthorizedKey(ak string) (gossh.PublicKey, string, error) { function MarshalAuthorizedKey (line 22) | func MarshalAuthorizedKey(pk gossh.PublicKey) string { function KeysEqual (line 30) | func KeysEqual(a, b gossh.PublicKey) bool { function PublicKeyFromContext (line 35) | func PublicKeyFromContext(ctx context.Context) gossh.PublicKey { function SessionFromContext (line 46) | func SessionFromContext(ctx context.Context) ssh.Session { FILE: pkg/sshutils/utils_test.go function generateKeys (line 10) | func generateKeys(tb testing.TB) (*keygen.SSHKeyPair, *keygen.SSHKeyPair) { function TestParseAuthorizedKey (line 23) | func TestParseAuthorizedKey(t *testing.T) { function TestMarshalAuthorizedKey (line 57) | func TestMarshalAuthorizedKey(t *testing.T) { function TestKeysEqual (line 84) | func TestKeysEqual(t *testing.T) { FILE: pkg/ssrf/ssrf.go function NewSecureClient (line 30) | func NewSecureClient() *http.Client { function isPrivateOrInternal (line 77) | func isPrivateOrInternal(ip net.IP) bool { function ValidateURL (line 130) | func ValidateURL(rawURL string) error { function ValidateIPBeforeDial (line 176) | func ValidateIPBeforeDial(ip net.IP) error { function isLocalhost (line 184) | func isLocalhost(hostname string) bool { FILE: pkg/ssrf/ssrf_test.go function TestNewSecureClientBlocksPrivateIPs (line 13) | func TestNewSecureClientBlocksPrivateIPs(t *testing.T) { function TestNewSecureClientBlocksPrivateHostnames (line 52) | func TestNewSecureClientBlocksPrivateHostnames(t *testing.T) { function TestNewSecureClientNilIPNotErrPrivateIP (line 71) | func TestNewSecureClientNilIPNotErrPrivateIP(t *testing.T) { function TestNewSecureClientBlocksRedirects (line 90) | func TestNewSecureClientBlocksRedirects(t *testing.T) { function TestIsPrivateOrInternal (line 117) | func TestIsPrivateOrInternal(t *testing.T) { function TestValidateURL (line 165) | func TestValidateURL(t *testing.T) { function TestIsLocalhost (line 208) | func TestIsLocalhost(t *testing.T) { FILE: pkg/stats/stats.go type StatsServer (line 13) | type StatsServer struct method ListenAndServe (line 39) | func (s *StatsServer) ListenAndServe() error { method Shutdown (line 44) | func (s *StatsServer) Shutdown(ctx context.Context) error { method Close (line 49) | func (s *StatsServer) Close() error { function NewStatsServer (line 20) | func NewStatsServer(ctx context.Context) (*StatsServer, error) { FILE: pkg/storage/local.go type LocalStorage (line 14) | type LocalStorage struct method Delete (line 26) | func (l *LocalStorage) Delete(name string) error { method Open (line 32) | func (l *LocalStorage) Open(name string) (Object, error) { method Stat (line 38) | func (l *LocalStorage) Stat(name string) (fs.FileInfo, error) { method Put (line 44) | func (l *LocalStorage) Put(name string, r io.Reader) (int64, error) { method Exists (line 59) | func (l *LocalStorage) Exists(name string) (bool, error) { method Rename (line 72) | func (l *LocalStorage) Rename(oldName, newName string) error { method fixPath (line 83) | func (l LocalStorage) fixPath(path string) string { function NewLocalStorage (line 21) | func NewLocalStorage(root string) *LocalStorage { FILE: pkg/storage/storage.go type Object (line 9) | type Object interface type Storage (line 16) | type Storage interface FILE: pkg/store/access_token.go type AccessTokenStore (line 12) | type AccessTokenStore interface FILE: pkg/store/collab.go type CollaboratorStore (line 12) | type CollaboratorStore interface FILE: pkg/store/context.go function FromContext (line 9) | func FromContext(ctx context.Context) Store { function WithContext (line 18) | func WithContext(ctx context.Context, s Store) context.Context { FILE: pkg/store/database/access_token.go type accessTokenStore (line 12) | type accessTokenStore struct method CreateAccessToken (line 17) | func (s *accessTokenStore) CreateAccessToken(ctx context.Context, h db... method DeleteAccessToken (line 39) | func (*accessTokenStore) DeleteAccessToken(ctx context.Context, h db.H... method DeleteAccessTokenForUser (line 46) | func (*accessTokenStore) DeleteAccessTokenForUser(ctx context.Context,... method GetAccessToken (line 53) | func (*accessTokenStore) GetAccessToken(ctx context.Context, h db.Hand... method GetAccessTokensByUserID (line 61) | func (*accessTokenStore) GetAccessTokensByUserID(ctx context.Context, ... method GetAccessTokenByToken (line 69) | func (*accessTokenStore) GetAccessTokenByToken(ctx context.Context, h ... FILE: pkg/store/database/collab.go type collabStore (line 14) | type collabStore struct method AddCollabByUsernameAndRepo (line 19) | func (*collabStore) AddCollabByUsernameAndRepo(ctx context.Context, tx... method GetCollabByUsernameAndRepo (line 43) | func (*collabStore) GetCollabByUsernameAndRepo(ctx context.Context, tx... method ListCollabsByRepo (line 68) | func (*collabStore) ListCollabsByRepo(ctx context.Context, tx db.Handl... method ListCollabsByRepoAsUsers (line 87) | func (*collabStore) ListCollabsByRepoAsUsers(ctx context.Context, tx d... method RemoveCollabByUsernameAndRepo (line 107) | func (*collabStore) RemoveCollabByUsernameAndRepo(ctx context.Context,... FILE: pkg/store/database/database.go type datastore (line 12) | type datastore struct function New (line 28) | func New(ctx context.Context, db *db.DB) store.Store { FILE: pkg/store/database/lfs.go type lfsStore (line 12) | type lfsStore struct method CreateLFSLockForUser (line 23) | func (*lfsStore) CreateLFSLockForUser(ctx context.Context, tx db.Handl... method GetLFSLocks (line 39) | func (*lfsStore) GetLFSLocks(ctx context.Context, tx db.Handler, repoI... method GetLFSLocksWithCount (line 56) | func (s *lfsStore) GetLFSLocksWithCount(ctx context.Context, tx db.Han... method GetLFSLocksForUser (line 77) | func (*lfsStore) GetLFSLocksForUser(ctx context.Context, tx db.Handler... method GetLFSLockForPath (line 89) | func (*lfsStore) GetLFSLockForPath(ctx context.Context, tx db.Handler,... method GetLFSLockForUserPath (line 102) | func (*lfsStore) GetLFSLockForUserPath(ctx context.Context, tx db.Hand... method GetLFSLockByID (line 115) | func (*lfsStore) GetLFSLockByID(ctx context.Context, tx db.Handler, id... method GetLFSLockForUserByID (line 127) | func (*lfsStore) GetLFSLockForUserByID(ctx context.Context, tx db.Hand... method DeleteLFSLockForUserByID (line 139) | func (*lfsStore) DeleteLFSLockForUserByID(ctx context.Context, tx db.H... method DeleteLFSLock (line 149) | func (*lfsStore) DeleteLFSLock(ctx context.Context, tx db.Handler, rep... method CreateLFSObject (line 159) | func (*lfsStore) CreateLFSObject(ctx context.Context, tx db.Handler, r... method DeleteLFSObjectByOid (line 166) | func (*lfsStore) DeleteLFSObjectByOid(ctx context.Context, tx db.Handl... method GetLFSObjectByOid (line 173) | func (*lfsStore) GetLFSObjectByOid(ctx context.Context, tx db.Handler,... method GetLFSObjects (line 181) | func (*lfsStore) GetLFSObjects(ctx context.Context, tx db.Handler, rep... method GetLFSObjectsByName (line 189) | func (*lfsStore) GetLFSObjectsByName(ctx context.Context, tx db.Handle... function sanitizePath (line 16) | func sanitizePath(path string) string { FILE: pkg/store/database/repo.go type repoStore (line 12) | type repoStore struct method CreateRepo (line 17) | func (*repoStore) CreateRepo(ctx context.Context, tx db.Handler, name ... method DeleteRepoByName (line 36) | func (*repoStore) DeleteRepoByName(ctx context.Context, tx db.Handler,... method GetAllRepos (line 44) | func (*repoStore) GetAllRepos(ctx context.Context, tx db.Handler) ([]m... method GetUserRepos (line 52) | func (*repoStore) GetUserRepos(ctx context.Context, tx db.Handler, use... method GetRepoByName (line 60) | func (*repoStore) GetRepoByName(ctx context.Context, tx db.Handler, na... method GetRepoDescriptionByName (line 69) | func (*repoStore) GetRepoDescriptionByName(ctx context.Context, tx db.... method GetRepoIsHiddenByName (line 78) | func (*repoStore) GetRepoIsHiddenByName(ctx context.Context, tx db.Han... method GetRepoIsMirrorByName (line 87) | func (*repoStore) GetRepoIsMirrorByName(ctx context.Context, tx db.Han... method GetRepoIsPrivateByName (line 96) | func (*repoStore) GetRepoIsPrivateByName(ctx context.Context, tx db.Ha... method GetRepoProjectNameByName (line 105) | func (*repoStore) GetRepoProjectNameByName(ctx context.Context, tx db.... method SetRepoDescriptionByName (line 114) | func (*repoStore) SetRepoDescriptionByName(ctx context.Context, tx db.... method SetRepoIsHiddenByName (line 122) | func (*repoStore) SetRepoIsHiddenByName(ctx context.Context, tx db.Han... method SetRepoIsPrivateByName (line 130) | func (*repoStore) SetRepoIsPrivateByName(ctx context.Context, tx db.Ha... method SetRepoNameByName (line 138) | func (*repoStore) SetRepoNameByName(ctx context.Context, tx db.Handler... method SetRepoProjectNameByName (line 147) | func (*repoStore) SetRepoProjectNameByName(ctx context.Context, tx db.... FILE: pkg/store/database/settings.go type settingsStore (line 11) | type settingsStore struct method GetAllowKeylessAccess (line 16) | func (*settingsStore) GetAllowKeylessAccess(ctx context.Context, tx db... method GetAnonAccess (line 26) | func (*settingsStore) GetAnonAccess(ctx context.Context, tx db.Handler... method SetAllowKeylessAccess (line 36) | func (*settingsStore) SetAllowKeylessAccess(ctx context.Context, tx db... method SetAnonAccess (line 43) | func (*settingsStore) SetAnonAccess(ctx context.Context, tx db.Handler... FILE: pkg/store/database/user.go type userStore (line 15) | type userStore struct method AddPublicKeyByUsername (line 20) | func (*userStore) AddPublicKeyByUsername(ctx context.Context, tx db.Ha... method CreateUser (line 40) | func (*userStore) CreateUser(ctx context.Context, tx db.Handler, usern... method DeleteUserByUsername (line 68) | func (*userStore) DeleteUserByUsername(ctx context.Context, tx db.Hand... method GetUserByID (line 80) | func (*userStore) GetUserByID(ctx context.Context, tx db.Handler, id i... method FindUserByPublicKey (line 88) | func (*userStore) FindUserByPublicKey(ctx context.Context, tx db.Handl... method FindUserByUsername (line 99) | func (*userStore) FindUserByUsername(ctx context.Context, tx db.Handle... method FindUserByAccessToken (line 112) | func (*userStore) FindUserByAccessToken(ctx context.Context, tx db.Han... method GetAllUsers (line 123) | func (*userStore) GetAllUsers(ctx context.Context, tx db.Handler) ([]m... method ListPublicKeysByUserID (line 131) | func (*userStore) ListPublicKeysByUserID(ctx context.Context, tx db.Ha... method ListPublicKeysByUsername (line 154) | func (*userStore) ListPublicKeysByUsername(ctx context.Context, tx db.... method RemovePublicKeyByUsername (line 183) | func (*userStore) RemovePublicKeyByUsername(ctx context.Context, tx db... method SetAdminByUsername (line 197) | func (*userStore) SetAdminByUsername(ctx context.Context, tx db.Handle... method SetUsernameByUsername (line 209) | func (*userStore) SetUsernameByUsername(ctx context.Context, tx db.Han... method SetUserPassword (line 226) | func (*userStore) SetUserPassword(ctx context.Context, tx db.Handler, ... method SetUserPasswordByUsername (line 233) | func (*userStore) SetUserPasswordByUsername(ctx context.Context, tx db... FILE: pkg/store/database/webhooks.go type webhookStore (line 13) | type webhookStore struct method CreateWebhook (line 18) | func (*webhookStore) CreateWebhook(ctx context.Context, h db.Handler, ... method CreateWebhookDelivery (line 31) | func (*webhookStore) CreateWebhookDelivery(ctx context.Context, h db.H... method CreateWebhookEvents (line 43) | func (*webhookStore) CreateWebhookEvents(ctx context.Context, h db.Han... method DeleteWebhookByID (line 56) | func (*webhookStore) DeleteWebhookByID(ctx context.Context, h db.Handl... method DeleteWebhookForRepoByID (line 63) | func (*webhookStore) DeleteWebhookForRepoByID(ctx context.Context, h d... method DeleteWebhookDeliveryByID (line 70) | func (*webhookStore) DeleteWebhookDeliveryByID(ctx context.Context, h ... method DeleteWebhookEventsByID (line 77) | func (*webhookStore) DeleteWebhookEventsByID(ctx context.Context, h db... method GetWebhookByID (line 89) | func (*webhookStore) GetWebhookByID(ctx context.Context, h db.Handler,... method GetWebhookDeliveriesByWebhookID (line 97) | func (*webhookStore) GetWebhookDeliveriesByWebhookID(ctx context.Conte... method GetWebhookDeliveryByID (line 105) | func (*webhookStore) GetWebhookDeliveryByID(ctx context.Context, h db.... method GetWebhookEventByID (line 113) | func (*webhookStore) GetWebhookEventByID(ctx context.Context, h db.Han... method GetWebhookEventsByWebhookID (line 121) | func (*webhookStore) GetWebhookEventsByWebhookID(ctx context.Context, ... method GetWebhooksByRepoID (line 129) | func (*webhookStore) GetWebhooksByRepoID(ctx context.Context, h db.Han... method GetWebhooksByRepoIDWhereEvent (line 137) | func (*webhookStore) GetWebhooksByRepoIDWhereEvent(ctx context.Context... method ListWebhookDeliveriesByWebhookID (line 153) | func (*webhookStore) ListWebhookDeliveriesByWebhookID(ctx context.Cont... method UpdateWebhookByID (line 161) | func (*webhookStore) UpdateWebhookByID(ctx context.Context, h db.Handl... FILE: pkg/store/lfs.go type LFSStore (line 11) | type LFSStore interface FILE: pkg/store/repo.go type RepositoryStore (line 11) | type RepositoryStore interface FILE: pkg/store/settings.go type SettingStore (line 11) | type SettingStore interface FILE: pkg/store/store.go type Store (line 4) | type Store interface FILE: pkg/store/user.go type UserStore (line 12) | type UserStore interface FILE: pkg/store/webhooks.go type WebhookStore (line 12) | type WebhookStore interface FILE: pkg/sync/workqueue.go type WorkPool (line 11) | type WorkPool struct method Run (line 52) | func (wq *WorkPool) Run() { method Add (line 77) | func (wq *WorkPool) Add(id string, fn func()) { method Status (line 85) | func (wq *WorkPool) Status(id string) bool { method logf (line 90) | func (wq *WorkPool) logf(format string, args ...interface{}) { type WorkPoolOption (line 20) | type WorkPoolOption function WithWorkPoolLogger (line 23) | func WithWorkPoolLogger(logger func(string, ...interface{})) WorkPoolOpt... function NewWorkPool (line 32) | func NewWorkPool(ctx context.Context, workers int, opts ...WorkPoolOptio... FILE: pkg/sync/workqueue_test.go function TestWorkPool (line 10) | func TestWorkPool(t *testing.T) { FILE: pkg/task/manager.go type Task (line 19) | type Task struct type Manager (line 29) | type Manager struct method Add (line 44) | func (m *Manager) Add(id string, fn func(context.Context) error) { method Stop (line 59) | func (m *Manager) Stop(id string) error { method Exists (line 73) | func (m *Manager) Exists(id string) bool { method Run (line 80) | func (m *Manager) Run(id string, done chan<- error) { function NewManager (line 35) | func NewManager(ctx context.Context) *Manager { FILE: pkg/test/test.go function RandomPort (line 15) | func RandomPort() int { FILE: pkg/ui/common/common.go type contextKey (line 18) | type contextKey struct type Common (line 29) | type Common struct method SetValue (line 56) | func (c *Common) SetValue(key, value interface{}) { method SetSize (line 61) | func (c *Common) SetSize(width, height int) { method Context (line 67) | func (c *Common) Context() context.Context { method Config (line 72) | func (c *Common) Config() *config.Config { method Backend (line 77) | func (c *Common) Backend() *backend.Backend { method Repo (line 82) | func (c *Common) Repo() *git.Repository { method PublicKey (line 91) | func (c *Common) PublicKey() ssh.PublicKey { method CloneCmd (line 100) | func (c *Common) CloneCmd(publicURL, name string) string { function NewCommon (line 40) | func NewCommon(ctx context.Context, width, height int) Common { function IsFileMarkdown (line 109) | func IsFileMarkdown(content, ext string) bool { function ScrollPercent (line 123) | func ScrollPercent(position int) string { FILE: pkg/ui/common/common_test.go function TestIsFileMarkdown (line 9) | func TestIsFileMarkdown(t *testing.T) { FILE: pkg/ui/common/component.go type Model (line 9) | type Model interface type Component (line 16) | type Component interface type TabComponent (line 24) | type TabComponent interface FILE: pkg/ui/common/error.go type ErrorMsg (line 13) | type ErrorMsg function ErrorCmd (line 16) | func ErrorCmd(err error) tea.Cmd { FILE: pkg/ui/common/format.go function FormatLineNumber (line 14) | func FormatLineNumber(styles *styles.Styles, s string, color bool) (stri... function FormatHighlight (line 37) | func FormatHighlight(p, c string) (string, error) { function UnquoteFilename (line 63) | func UnquoteFilename(s string) string { FILE: pkg/ui/common/style.go function strptr (line 12) | func strptr(s string) *string { function StyleConfig (line 17) | func StyleConfig() gansi.StyleConfig { function StyleRenderer (line 27) | func StyleRenderer() gansi.RenderContext { function StyleRendererWithStyles (line 32) | func StyleRendererWithStyles(styles gansi.StyleConfig) gansi.RenderConte... FILE: pkg/ui/common/utils.go function TruncateString (line 12) | func TruncateString(s string, max int) string { //nolint:revive function RepoURL (line 20) | func RepoURL(publicURL, name string) string { FILE: pkg/ui/components/code/code.go constant defaultTabWidth (line 18) | defaultTabWidth = 4 constant defaultSideNotePercent (line 19) | defaultSideNotePercent = 0.3 type Code (line 23) | type Code struct method SetSize (line 59) | func (r *Code) SetSize(width, height int) { method SetContent (line 65) | func (r *Code) SetContent(c, ext string) tea.Cmd { method SetSideNote (line 72) | func (r *Code) SetSideNote(s string) tea.Cmd { method Init (line 78) | func (r *Code) Init() tea.Cmd { method Update (line 135) | func (r *Code) Update(msg tea.Msg) (common.Model, tea.Cmd) { method View (line 151) | func (r *Code) View() string { method GotoTop (line 156) | func (r *Code) GotoTop() { method GotoBottom (line 161) | func (r *Code) GotoBottom() { method HalfViewDown (line 166) | func (r *Code) HalfViewDown() { method HalfViewUp (line 171) | func (r *Code) HalfViewUp() { method ScrollPercent (line 176) | func (r *Code) ScrollPercent() float64 { method ScrollPosition (line 181) | func (r *Code) ScrollPosition() int { method glamourize (line 189) | func (r *Code) glamourize(w int, md string) (string, error) { method renderFile (line 209) | func (r *Code) renderFile(path, content string) (string, error) { function New (line 41) | func New(c common.Common, content, extension string) *Code { FILE: pkg/ui/components/footer/footer.go type ToggleFooterMsg (line 12) | type ToggleFooterMsg struct type Footer (line 15) | type Footer struct method SetSize (line 38) | func (f *Footer) SetSize(width, height int) { method Init (line 45) | func (f *Footer) Init() tea.Cmd { method Update (line 50) | func (f *Footer) Update(_ tea.Msg) (common.Model, tea.Cmd) { method View (line 55) | func (f *Footer) View() string { method ShortHelp (line 69) | func (f *Footer) ShortHelp() []key.Binding { method FullHelp (line 74) | func (f *Footer) FullHelp() [][]key.Binding { method ShowAll (line 79) | func (f *Footer) ShowAll() bool { method SetShowAll (line 84) | func (f *Footer) SetShowAll(show bool) { method Height (line 89) | func (f *Footer) Height() int { function New (line 22) | func New(c common.Common, keymap help.KeyMap) *Footer { function ToggleFooterCmd (line 94) | func ToggleFooterCmd() tea.Msg { FILE: pkg/ui/components/header/header.go type Header (line 11) | type Header struct method SetSize (line 25) | func (h *Header) SetSize(width, height int) { method Init (line 30) | func (h *Header) Init() tea.Cmd { method Update (line 35) | func (h *Header) Update(_ tea.Msg) (common.Model, tea.Cmd) { method View (line 40) | func (h *Header) View() string { function New (line 17) | func New(c common.Common, text string) *Header { FILE: pkg/ui/components/selector/selector.go type Selector (line 13) | type Selector struct method PerPage (line 61) | func (s *Selector) PerPage() int { method SetPage (line 68) | func (s *Selector) SetPage(page int) { method Page (line 75) | func (s *Selector) Page() int { method TotalPages (line 82) | func (s *Selector) TotalPages() int { method SetTotalPages (line 89) | func (s *Selector) SetTotalPages(items int) int { method SelectedItem (line 96) | func (s *Selector) SelectedItem() IdentifiableItem { method Select (line 108) | func (s *Selector) Select(index int) { method SetShowTitle (line 115) | func (s *Selector) SetShowTitle(show bool) { method SetShowHelp (line 122) | func (s *Selector) SetShowHelp(show bool) { method SetShowStatusBar (line 129) | func (s *Selector) SetShowStatusBar(show bool) { method DisableQuitKeybindings (line 136) | func (s *Selector) DisableQuitKeybindings() { method SetShowFilter (line 143) | func (s *Selector) SetShowFilter(show bool) { method SetShowPagination (line 150) | func (s *Selector) SetShowPagination(show bool) { method SetFilteringEnabled (line 157) | func (s *Selector) SetFilteringEnabled(enabled bool) { method SetSize (line 164) | func (s *Selector) SetSize(width, height int) { method SetItems (line 172) | func (s *Selector) SetItems(items []IdentifiableItem) tea.Cmd { method Index (line 183) | func (s *Selector) Index() int { method Items (line 190) | func (s *Selector) Items() []list.Item { method VisibleItems (line 197) | func (s *Selector) VisibleItems() []list.Item { method FilterState (line 204) | func (s *Selector) FilterState() list.FilterState { method CursorUp (line 211) | func (s *Selector) CursorUp() { method CursorDown (line 218) | func (s *Selector) CursorDown() { method Init (line 225) | func (s *Selector) Init() tea.Cmd { method Update (line 230) | func (s *Selector) Update(msg tea.Msg) (common.Model, tea.Cmd) { method View (line 292) | func (s *Selector) View() string { method SelectItemCmd (line 297) | func (s *Selector) SelectItemCmd() tea.Msg { method activeCmd (line 301) | func (s *Selector) activeCmd() tea.Msg { method activeFilterCmd (line 306) | func (s *Selector) activeFilterCmd() tea.Msg { type IdentifiableItem (line 28) | type IdentifiableItem interface type ItemDelegate (line 34) | type ItemDelegate interface type SelectMsg (line 39) | type SelectMsg struct type ActiveMsg (line 42) | type ActiveMsg struct function New (line 45) | func New(common common.Common, items []IdentifiableItem, delegate ItemDe... FILE: pkg/ui/components/statusbar/statusbar.go type Model (line 11) | type Model struct method SetSize (line 28) | func (s *Model) SetSize(width, height int) { method SetStatus (line 34) | func (s *Model) SetStatus(key, value, info, extra string) { method Init (line 50) | func (s *Model) Init() tea.Cmd { method Update (line 55) | func (s *Model) Update(msg tea.Msg) (common.Model, tea.Cmd) { method View (line 64) | func (s *Model) View() string { function New (line 20) | func New(c common.Common) *Model { FILE: pkg/ui/components/tabs/tabs.go type SelectTabMsg (line 12) | type SelectTabMsg type ActiveTabMsg (line 15) | type ActiveTabMsg type Tabs (line 18) | type Tabs struct method SetSize (line 43) | func (t *Tabs) SetSize(width, height int) { method Init (line 48) | func (t *Tabs) Init() tea.Cmd { method Update (line 54) | func (t *Tabs) Update(msg tea.Msg) (common.Model, tea.Cmd) { method View (line 86) | func (t *Tabs) View() string { method activeTabCmd (line 114) | func (t *Tabs) activeTabCmd() tea.Msg { function New (line 30) | func New(c common.Common, tabs []string) *Tabs { function SelectTabCmd (line 119) | func SelectTabCmd(tab int) tea.Cmd { FILE: pkg/ui/components/viewport/viewport.go type Viewport (line 11) | type Viewport struct method SetSize (line 29) | func (v *Viewport) SetSize(width, height int) { method Init (line 36) | func (v *Viewport) Init() tea.Cmd { method Update (line 41) | func (v *Viewport) Update(msg tea.Msg) (common.Model, tea.Cmd) { method View (line 57) | func (v *Viewport) View() string { method SetContent (line 62) | func (v *Viewport) SetContent(content string) { method GotoTop (line 67) | func (v *Viewport) GotoTop() { method GotoBottom (line 72) | func (v *Viewport) GotoBottom() { method HalfViewDown (line 77) | func (v *Viewport) HalfViewDown() { method HalfViewUp (line 82) | func (v *Viewport) HalfViewUp() { method ScrollPercent (line 87) | func (v *Viewport) ScrollPercent() float64 { function New (line 17) | func New(c common.Common) *Viewport { FILE: pkg/ui/keymap/keymap.go type KeyMap (line 6) | type KeyMap struct function DefaultKeyMap (line 29) | func DefaultKeyMap() *KeyMap { FILE: pkg/ui/pages/repo/empty.go function defaultEmptyRepoMsg (line 10) | func defaultEmptyRepoMsg(cfg *config.Config, repo string) string { FILE: pkg/ui/pages/repo/files.go type filesView (line 20) | type filesView constant filesViewLoading (line 23) | filesViewLoading filesView = iota constant filesViewFiles (line 24) | filesViewFiles constant filesViewContent (line 25) | filesViewContent type FileItemsMsg (line 50) | type FileItemsMsg type FileContentMsg (line 53) | type FileContentMsg struct type FileBlameMsg (line 59) | type FileBlameMsg type Files (line 62) | type Files struct method Path (line 108) | func (f *Files) Path() string { method TabName (line 117) | func (f *Files) TabName() string { method SetSize (line 122) | func (f *Files) SetSize(width, height int) { method ShortHelp (line 129) | func (f *Files) ShortHelp() []key.Binding { method FullHelp (line 151) | func (f *Files) FullHelp() [][]key.Binding { method Init (line 211) | func (f *Files) Init() tea.Cmd { method Update (line 223) | func (f *Files) Update(msg tea.Msg) (common.Model, tea.Cmd) { method View (line 354) | func (f *Files) View() string { method SpinnerID (line 368) | func (f *Files) SpinnerID() int { method StatusBarValue (line 373) | func (f *Files) StatusBarValue() string { method StatusBarInfo (line 382) | func (f *Files) StatusBarInfo() string { method updateFilesCmd (line 393) | func (f *Files) updateFilesCmd() tea.Msg { method selectTreeCmd (line 424) | func (f *Files) selectTreeCmd() tea.Msg { method selectFileCmd (line 433) | func (f *Files) selectFileCmd() tea.Msg { method fetchBlame (line 484) | func (f *Files) fetchBlame() tea.Msg { method deselectItemCmd (line 529) | func (f *Files) deselectItemCmd() tea.Cmd { method setItems (line 545) | func (f *Files) setItems(items []selector.IdentifiableItem) tea.Cmd { function NewFiles (line 81) | func NewFiles(common common.Common) *Files { function renderBlame (line 498) | func renderBlame(c common.Common, f *FileItem, b *gitm.Blame) string { FILE: pkg/ui/pages/repo/filesitem.go type FileItem (line 19) | type FileItem struct method ID (line 24) | func (i FileItem) ID() string { method Title (line 29) | func (i FileItem) Title() string { method Description (line 34) | func (i FileItem) Description() string { method Mode (line 39) | func (i FileItem) Mode() fs.FileMode { method FilterValue (line 44) | func (i FileItem) FilterValue() string { return i.Title() } type FileItems (line 47) | type FileItems method Len (line 50) | func (cl FileItems) Len() int { return len(cl) } method Swap (line 53) | func (cl FileItems) Swap(i, j int) { cl[i], cl[j] = cl[j], cl[i] } method Less (line 56) | func (cl FileItems) Less(i, j int) bool { type FileItemDelegate (line 68) | type FileItemDelegate struct method Height (line 73) | func (d FileItemDelegate) Height() int { return 1 } method Spacing (line 76) | func (d FileItemDelegate) Spacing() int { return 0 } method Update (line 79) | func (d FileItemDelegate) Update(msg tea.Msg, m *list.Model) tea.Cmd { method Render (line 95) | func (d FileItemDelegate) Render(w io.Writer, m list.Model, index int,... FILE: pkg/ui/pages/repo/log.go type logView (line 25) | type logView constant logViewLoading (line 28) | logViewLoading logView = iota constant logViewCommits (line 29) | logViewCommits constant logViewDiff (line 30) | logViewDiff type LogCountMsg (line 34) | type LogCountMsg type LogItemsMsg (line 37) | type LogItemsMsg type LogCommitMsg (line 40) | type LogCommitMsg type LogDiffMsg (line 43) | type LogDiffMsg type Log (line 46) | type Log struct method Path (line 87) | func (l *Log) Path() string { method TabName (line 97) | func (l *Log) TabName() string { method SetSize (line 102) | func (l *Log) SetSize(width, height int) { method ShortHelp (line 109) | func (l *Log) ShortHelp() []key.Binding { method FullHelp (line 135) | func (l *Log) FullHelp() [][]key.Binding { method startLoading (line 185) | func (l *Log) startLoading() tea.Cmd { method Init (line 192) | func (l *Log) Init() tea.Cmd { method Update (line 206) | func (l *Log) Update(msg tea.Msg) (common.Model, tea.Cmd) { method View (line 350) | func (l *Log) View() string { method SpinnerID (line 374) | func (l *Log) SpinnerID() int { method StatusBarValue (line 379) | func (l *Log) StatusBarValue() string { method StatusBarInfo (line 399) | func (l *Log) StatusBarInfo() string { method goBack (line 417) | func (l *Log) goBack() { method countCommitsCmd (line 424) | func (l *Log) countCommitsCmd() tea.Msg { method updateCommitsCmd (line 440) | func (l *Log) updateCommitsCmd() tea.Msg { method selectCommitCmd (line 475) | func (l *Log) selectCommitCmd(commit *git.Commit) tea.Cmd { method loadDiffCmd (line 481) | func (l *Log) loadDiffCmd() tea.Msg { method renderCommit (line 498) | func (l *Log) renderCommit(c *git.Commit) string { method setItems (line 542) | func (l *Log) setItems(items []selector.IdentifiableItem) tea.Cmd { function NewLog (line 63) | func NewLog(common common.Common) *Log { function renderSummary (line 512) | func renderSummary(diff *git.Diff, styles *styles.Styles, width int) str... function renderDiff (line 526) | func renderDiff(diff *git.Diff, width int) string { FILE: pkg/ui/pages/repo/logitem.go type LogItem (line 19) | type LogItem struct method ID (line 24) | func (i LogItem) ID() string { method Hash (line 29) | func (i LogItem) Hash() string { method Title (line 34) | func (i LogItem) Title() string { method Description (line 42) | func (i LogItem) Description() string { return "" } method FilterValue (line 45) | func (i LogItem) FilterValue() string { return i.Title() } type LogItemDelegate (line 48) | type LogItemDelegate struct method Height (line 53) | func (d LogItemDelegate) Height() int { return 2 } method Spacing (line 56) | func (d LogItemDelegate) Spacing() int { return 1 } method Update (line 59) | func (d LogItemDelegate) Update(msg tea.Msg, m *list.Model) tea.Cmd { method Render (line 75) | func (d LogItemDelegate) Render(w io.Writer, m list.Model, index int, ... FILE: pkg/ui/pages/repo/readme.go type ReadmeMsg (line 16) | type ReadmeMsg struct type Readme (line 22) | type Readme struct method Path (line 48) | func (r *Readme) Path() string { method TabName (line 53) | func (r *Readme) TabName() string { method SetSize (line 58) | func (r *Readme) SetSize(width, height int) { method ShortHelp (line 64) | func (r *Readme) ShortHelp() []key.Binding { method FullHelp (line 72) | func (r *Readme) FullHelp() [][]key.Binding { method Init (line 92) | func (r *Readme) Init() tea.Cmd { method Update (line 98) | func (r *Readme) Update(msg tea.Msg) (common.Model, tea.Cmd) { method View (line 136) | func (r *Readme) View() string { method SpinnerID (line 144) | func (r *Readme) SpinnerID() int { method StatusBarValue (line 149) | func (r *Readme) StatusBarValue() string { method StatusBarInfo (line 158) | func (r *Readme) StatusBarInfo() string { method updateReadmeCmd (line 162) | func (r *Readme) updateReadmeCmd() tea.Msg { function NewReadme (line 33) | func NewReadme(common common.Common) *Readme { FILE: pkg/ui/pages/repo/refs.go type RefMsg (line 18) | type RefMsg type RefItemsMsg (line 21) | type RefItemsMsg struct type Refs (line 27) | type Refs struct method Path (line 61) | func (r *Refs) Path() string { method TabName (line 66) | func (r *Refs) TabName() string { method SetSize (line 77) | func (r *Refs) SetSize(width, height int) { method ShortHelp (line 83) | func (r *Refs) ShortHelp() []key.Binding { method FullHelp (line 96) | func (r *Refs) FullHelp() [][]key.Binding { method Init (line 117) | func (r *Refs) Init() tea.Cmd { method Update (line 123) | func (r *Refs) Update(msg tea.Msg) (common.Model, tea.Cmd) { method View (line 182) | func (r *Refs) View() string { method SpinnerID (line 190) | func (r *Refs) SpinnerID() int { method StatusBarValue (line 195) | func (r *Refs) StatusBarValue() string { method StatusBarInfo (line 203) | func (r *Refs) StatusBarInfo() string { method updateItemsCmd (line 211) | func (r *Refs) updateItemsCmd() tea.Msg { method setItems (line 250) | func (r *Refs) setItems(items []selector.IdentifiableItem) tea.Cmd { function NewRefs (line 39) | func NewRefs(common common.Common, refPrefix string) *Refs { function switchRefCmd (line 259) | func switchRefCmd(ref *git.Reference) tea.Cmd { function UpdateRefCmd (line 266) | func UpdateRefCmd(repo proto.Repository) tea.Cmd { FILE: pkg/ui/pages/repo/refsitem.go type RefItem (line 20) | type RefItem struct method ID (line 27) | func (i RefItem) ID() string { method Title (line 32) | func (i RefItem) Title() string { method Description (line 37) | func (i RefItem) Description() string { method Short (line 42) | func (i RefItem) Short() string { method FilterValue (line 47) | func (i RefItem) FilterValue() string { return i.Short() } type RefItems (line 50) | type RefItems method Len (line 53) | func (cl RefItems) Len() int { return len(cl) } method Swap (line 56) | func (cl RefItems) Swap(i, j int) { cl[i], cl[j] = cl[j], cl[i] } method Less (line 59) | func (cl RefItems) Less(i, j int) bool { type RefItemDelegate (line 69) | type RefItemDelegate struct method Height (line 74) | func (d RefItemDelegate) Height() int { return 1 } method Spacing (line 77) | func (d RefItemDelegate) Spacing() int { return 0 } method Update (line 80) | func (d RefItemDelegate) Update(msg tea.Msg, m *list.Model) tea.Cmd { method Render (line 96) | func (d RefItemDelegate) Render(w io.Writer, m list.Model, index int, ... FILE: pkg/ui/pages/repo/repo.go type state (line 21) | type state constant loadingState (line 24) | loadingState state = iota constant readyState (line 25) | readyState type EmptyRepoMsg (line 29) | type EmptyRepoMsg struct type CopyURLMsg (line 32) | type CopyURLMsg struct type RepoMsg (line 35) | type RepoMsg type GoBackMsg (line 38) | type GoBackMsg struct type CopyMsg (line 41) | type CopyMsg struct type SwitchTabMsg (line 47) | type SwitchTabMsg type Repo (line 50) | type Repo struct method getMargins (line 87) | func (r *Repo) getMargins() (int, int) { method SetSize (line 97) | func (r *Repo) SetSize(width, height int) { method Path (line 108) | func (r *Repo) Path() string { method commonHelp (line 112) | func (r *Repo) commonHelp() []key.Binding { method ShortHelp (line 124) | func (r *Repo) ShortHelp() []key.Binding { method FullHelp (line 131) | func (r *Repo) FullHelp() [][]key.Binding { method Init (line 139) | func (r *Repo) Init() tea.Cmd { method Update (line 150) | func (r *Repo) Update(msg tea.Msg) (common.Model, tea.Cmd) { method View (line 291) | func (r *Repo) View() string { method headerView (line 322) | func (r *Repo) headerView() string { method setStatusBarInfo (line 360) | func (r *Repo) setStatusBarInfo() { method updateTabComponent (line 377) | func (r *Repo) updateTabComponent(c common.TabComponent, msg tea.Msg) ... method updateModels (line 392) | func (r *Repo) updateModels(msg tea.Msg) tea.Cmd { function New (line 64) | func New(c common.Common, comps ...common.TabComponent) *Repo { function copyCmd (line 404) | func copyCmd(text, msg string) tea.Cmd { function goBackCmd (line 413) | func goBackCmd() tea.Msg { function switchTabCmd (line 417) | func switchTabCmd(m common.TabComponent) tea.Cmd { function renderLoading (line 423) | func renderLoading(c common.Common, s spinner.Model) string { FILE: pkg/ui/pages/repo/stash.go type stashState (line 18) | type stashState constant stashStateLoading (line 21) | stashStateLoading stashState = iota constant stashStateList (line 22) | stashStateList constant stashStatePatch (line 23) | stashStatePatch type StashListMsg (line 27) | type StashListMsg type StashPatchMsg (line 30) | type StashPatchMsg struct type Stash (line 33) | type Stash struct method Path (line 68) | func (s *Stash) Path() string { method TabName (line 73) | func (s *Stash) TabName() string { method SetSize (line 78) | func (s *Stash) SetSize(width, height int) { method ShortHelp (line 85) | func (s *Stash) ShortHelp() []key.Binding { method FullHelp (line 94) | func (s *Stash) FullHelp() [][]key.Binding { method StatusBarValue (line 112) | func (s *Stash) StatusBarValue() string { method StatusBarInfo (line 122) | func (s *Stash) StatusBarInfo() string { method SpinnerID (line 138) | func (s *Stash) SpinnerID() int { method Init (line 143) | func (s *Stash) Init() tea.Cmd { method Update (line 149) | func (s *Stash) Update(msg tea.Msg) (common.Model, tea.Cmd) { method View (line 238) | func (s *Stash) View() string { method fetchStash (line 250) | func (s *Stash) fetchStash() tea.Msg { method fetchStashPatch (line 268) | func (s *Stash) fetchStashPatch() tea.Msg { function NewStash (line 45) | func NewStash(common common.Common) *Stash { FILE: pkg/ui/pages/repo/stashitem.go type StashItem (line 15) | type StashItem struct method ID (line 18) | func (i StashItem) ID() string { method Title (line 23) | func (i StashItem) Title() string { method Description (line 28) | func (i StashItem) Description() string { method FilterValue (line 33) | func (i StashItem) FilterValue() string { return i.Title() } type StashItems (line 36) | type StashItems method Len (line 39) | func (cl StashItems) Len() int { return len(cl) } method Swap (line 42) | func (cl StashItems) Swap(i, j int) { cl[i], cl[j] = cl[j], cl[i] } method Less (line 45) | func (cl StashItems) Less(i, j int) bool { type StashItemDelegate (line 50) | type StashItemDelegate struct method Height (line 55) | func (d StashItemDelegate) Height() int { return 1 } method Spacing (line 58) | func (d StashItemDelegate) Spacing() int { return 0 } method Update (line 61) | func (d StashItemDelegate) Update(msg tea.Msg, m *list.Model) tea.Cmd { method Render (line 79) | func (d StashItemDelegate) Render(w io.Writer, m list.Model, index int... FILE: pkg/ui/pages/selection/item.go type Items (line 22) | type Items method Len (line 25) | func (it Items) Len() int { method Less (line 30) | func (it Items) Less(i int, j int) bool { method Swap (line 44) | func (it Items) Swap(i int, j int) { type Item (line 49) | type Item struct method ID (line 74) | func (i Item) ID() string { method Title (line 79) | func (i Item) Title() string { method Description (line 89) | func (i Item) Description() string { return strings.TrimSpace(i.repo.D... method FilterValue (line 92) | func (i Item) FilterValue() string { return i.Title() } method Command (line 95) | func (i Item) Command() string { function NewItem (line 56) | func NewItem(c common.Common, repo proto.Repository) (Item, error) { type ItemDelegate (line 100) | type ItemDelegate struct method Width (line 116) | func (d ItemDelegate) Width() int { method Height (line 122) | func (d *ItemDelegate) Height() int { method Spacing (line 128) | func (d *ItemDelegate) Spacing() int { return 1 } method Update (line 131) | func (d *ItemDelegate) Update(msg tea.Msg, m *list.Model) tea.Cmd { method Render (line 152) | func (d *ItemDelegate) Render(w io.Writer, m list.Model, index int, li... function NewItemDelegate (line 107) | func NewItemDelegate(common *common.Common, activePane *pane) *ItemDeleg... FILE: pkg/ui/pages/selection/selection.go constant defaultNoContent (line 20) | defaultNoContent = "No readme found.\n\nCreate a `.soft-serve` repositor... type pane (line 23) | type pane method String (line 31) | func (p pane) String() string { constant selectorPane (line 26) | selectorPane pane = iota constant readmePane (line 27) | readmePane constant lastPane (line 28) | lastPane type Selection (line 39) | type Selection struct method getMargins (line 80) | func (s *Selection) getMargins() (wm, hm int) { method FilterState (line 92) | func (s *Selection) FilterState() list.FilterState { method SetSize (line 97) | func (s *Selection) SetSize(width, height int) { method IsFiltering (line 106) | func (s *Selection) IsFiltering() bool { method ShortHelp (line 111) | func (s *Selection) ShortHelp() []key.Binding { method FullHelp (line 132) | func (s *Selection) FullHelp() [][]key.Binding { method Init (line 184) | func (s *Selection) Init() tea.Cmd { method Update (line 239) | func (s *Selection) Update(msg tea.Msg) (common.Model, tea.Cmd) { method View (line 287) | func (s *Selection) View() string { function New (line 48) | func New(c common.Common) *Selection { FILE: pkg/ui/styles/styles.go type Styles (line 13) | type Styles struct function DefaultStyles (line 170) | func DefaultStyles() *Styles { FILE: pkg/utils/utils.go function SanitizeRepo (line 13) | func SanitizeRepo(repo string) string { function Sanitize (line 27) | func Sanitize(s string) string { function ValidateUsername (line 32) | func ValidateUsername(username string) error { function ValidateRepo (line 51) | func ValidateRepo(repo string) error { FILE: pkg/utils/utils_test.go function TestValidateRepo (line 5) | func TestValidateRepo(t *testing.T) { function TestSanitizeRepo (line 38) | func TestSanitizeRepo(t *testing.T) { FILE: pkg/web/auth.go function authenticate (line 18) | func authenticate(r *http.Request) (proto.User, error) { function parseUsernamePassword (line 34) | func parseUsernamePassword(ctx context.Context, username, password strin... function parseAuthHdr (line 70) | func parseAuthHdr(r *http.Request) (proto.User, error) { function parseJWT (line 136) | func parseJWT(ctx context.Context, bearer string) (*jwt.RegisteredClaims... FILE: pkg/web/context.go function NewContextHandler (line 16) | func NewContextHandler(ctx context.Context) func(http.Handler) http.Hand... FILE: pkg/web/git.go type GitRoute (line 32) | type GitRoute struct method ServeHTTP (line 41) | func (g GitRoute) ServeHTTP(w http.ResponseWriter, r *http.Request) { function withParams (line 76) | func withParams(next http.Handler) http.Handler { function GitController (line 107) | func GitController(_ context.Context, r *mux.Router) { function askCredentials (line 194) | func askCredentials(w http.ResponseWriter, _ *http.Request) { function withAccess (line 200) | func withAccess(next http.Handler) http.HandlerFunc { function serviceRpc (line 370) | func serviceRpc(w http.ResponseWriter, r *http.Request) { type flushResponseWriter (line 457) | type flushResponseWriter struct method ReadFrom (line 461) | func (f *flushResponseWriter) ReadFrom(r io.Reader) (int64, error) { function getInfoRefs (line 488) | func getInfoRefs(w http.ResponseWriter, r *http.Request) { function getInfoPacks (line 551) | func getInfoPacks(w http.ResponseWriter, r *http.Request) { function getLooseObject (line 556) | func getLooseObject(w http.ResponseWriter, r *http.Request) { function getPackFile (line 561) | func getPackFile(w http.ResponseWriter, r *http.Request) { function getIdxFile (line 566) | func getIdxFile(w http.ResponseWriter, r *http.Request) { function getTextFile (line 571) | func getTextFile(w http.ResponseWriter, r *http.Request) { function sendFile (line 576) | func sendFile(contentType string, w http.ResponseWriter, r *http.Request) { function getServiceType (line 592) | func getServiceType(r *http.Request) git.Service { function isSmart (line 601) | func isSmart(r *http.Request, service git.Service) bool { function updateServerInfo (line 606) | func updateServerInfo(ctx context.Context, dir string) error { function renderBadRequest (line 612) | func renderBadRequest(w http.ResponseWriter, r *http.Request) { function renderMethodNotAllowed (line 616) | func renderMethodNotAllowed(w http.ResponseWriter, r *http.Request) { function renderNotFound (line 624) | func renderNotFound(w http.ResponseWriter, r *http.Request) { function renderUnauthorized (line 628) | func renderUnauthorized(w http.ResponseWriter, r *http.Request) { function renderForbidden (line 632) | func renderForbidden(w http.ResponseWriter, r *http.Request) { function renderInternalServerError (line 636) | func renderInternalServerError(w http.ResponseWriter, r *http.Request) { function hdrNocache (line 642) | func hdrNocache(w http.ResponseWriter) { function hdrCacheForever (line 648) | func hdrCacheForever(w http.ResponseWriter) { FILE: pkg/web/git_lfs.go function serviceLfsBatch (line 33) | func serviceLfsBatch(w http.ResponseWriter, r *http.Request) { function serviceLfsBasic (line 243) | func serviceLfsBasic(w http.ResponseWriter, r *http.Request) { function serviceLfsBasicDownload (line 253) | func serviceLfsBasicDownload(w http.ResponseWriter, r *http.Request) { function serviceLfsBasicUpload (line 296) | func serviceLfsBasicUpload(w http.ResponseWriter, r *http.Request) { function serviceLfsBasicVerify (line 370) | func serviceLfsBasicVerify(w http.ResponseWriter, r *http.Request) { function serviceLfsLocks (line 446) | func serviceLfsLocks(w http.ResponseWriter, r *http.Request) { function serviceLfsLocksCreate (line 458) | func serviceLfsLocksCreate(w http.ResponseWriter, r *http.Request) { function serviceLfsLocksGet (line 559) | func serviceLfsLocksGet(w http.ResponseWriter, r *http.Request) { function serviceLfsLocksVerify (line 734) | func serviceLfsLocksVerify(w http.ResponseWriter, r *http.Request) { function serviceLfsLocksDelete (line 831) | func serviceLfsLocksDelete(w http.ResponseWriter, r *http.Request) { function renderJSON (line 959) | func renderJSON(w http.ResponseWriter, statusCode int, v interface{}) { function renderNotAcceptable (line 967) | func renderNotAcceptable(w http.ResponseWriter) { function isLfs (line 971) | func isLfs(r *http.Request) bool { function isBinary (line 977) | func isBinary(r *http.Request) bool { function hdrLfs (line 982) | func hdrLfs(w http.ResponseWriter) { FILE: pkg/web/goget.go function GoGetHandler (line 39) | func GoGetHandler(w http.ResponseWriter, r *http.Request) { FILE: pkg/web/health.go function HealthController (line 13) | func HealthController(_ context.Context, r *mux.Router) { function getLiveness (line 18) | func getLiveness(w http.ResponseWriter, _ *http.Request) { function getReadiness (line 22) | func getReadiness(w http.ResponseWriter, r *http.Request) { FILE: pkg/web/http.go type HTTPServer (line 14) | type HTTPServer struct method SetTLSConfig (line 42) | func (s *HTTPServer) SetTLSConfig(tlsConfig *tls.Config) { method Close (line 47) | func (s *HTTPServer) Close() error { method ListenAndServe (line 52) | func (s *HTTPServer) ListenAndServe() error { method Shutdown (line 60) | func (s *HTTPServer) Shutdown(ctx context.Context) error { function NewHTTPServer (line 22) | func NewHTTPServer(ctx context.Context) (*HTTPServer, error) { FILE: pkg/web/logging.go type logWriter (line 16) | type logWriter struct method Write (line 29) | func (r *logWriter) Write(p []byte) (int, error) { method WriteHeader (line 37) | func (r *logWriter) WriteHeader(code int) { method Unwrap (line 43) | func (r *logWriter) Unwrap() http.ResponseWriter { method Flush (line 48) | func (r *logWriter) Flush() { method CloseNotify (line 55) | func (r *logWriter) CloseNotify() <-chan bool { method Hijack (line 63) | func (r *logWriter) Hijack() (net.Conn, *bufio.ReadWriter, error) { function NewLoggingMiddleware (line 71) | func NewLoggingMiddleware(next http.Handler, logger *log.Logger) http.Ha... FILE: pkg/web/server.go function NewRouter (line 14) | func NewRouter(ctx context.Context) http.Handler { FILE: pkg/web/util.go function renderStatus (line 9) | func renderStatus(code int) http.HandlerFunc { FILE: pkg/webhook/branch_tag.go type BranchTagEvent (line 15) | type BranchTagEvent struct function NewBranchTagEvent (line 31) | func NewBranchTagEvent(ctx context.Context, user proto.User, repo proto.... FILE: pkg/webhook/collaborator.go type CollaboratorEvent (line 13) | type CollaboratorEvent struct type CollaboratorEventAction (line 25) | type CollaboratorEventAction constant CollaboratorEventAdded (line 29) | CollaboratorEventAdded CollaboratorEventAction = "added" constant CollaboratorEventRemoved (line 31) | CollaboratorEventRemoved CollaboratorEventAction = "removed" function NewCollaboratorEvent (line 35) | func NewCollaboratorEvent(ctx context.Context, user proto.User, repo pro... FILE: pkg/webhook/common.go type EventPayload (line 6) | type EventPayload interface type Common (line 14) | type Common struct method Event (line 25) | func (c Common) Event() Event { method RepositoryID (line 31) | func (c Common) RepositoryID() int64 { type User (line 36) | type User struct type Repository (line 44) | type Repository struct type Author (line 72) | type Author struct type Commit (line 82) | type Commit struct FILE: pkg/webhook/content_type.go type ContentType (line 10) | type ContentType method String (line 25) | func (c ContentType) String() string { method UnmarshalText (line 54) | func (c *ContentType) UnmarshalText(text []byte) error { method MarshalText (line 65) | func (c ContentType) MarshalText() (text []byte, err error) { constant ContentTypeJSON (line 14) | ContentTypeJSON ContentType = iota constant ContentTypeForm (line 16) | ContentTypeForm function ParseContentType (line 38) | func ParseContentType(s string) (ContentType, error) { FILE: pkg/webhook/content_type_test.go function TestParseContentType (line 5) | func TestParseContentType(t *testing.T) { function TestUnmarshalText (line 44) | func TestUnmarshalText(t *testing.T) { function TestMarshalText (line 81) | func TestMarshalText(t *testing.T) { FILE: pkg/webhook/event.go type Event (line 9) | type Event method String (line 53) | func (e Event) String() string { method UnmarshalText (line 85) | func (e *Event) UnmarshalText(text []byte) error { method MarshalText (line 96) | func (e Event) MarshalText() (text []byte, err error) { constant EventBranchTagCreate (line 13) | EventBranchTagCreate Event = 1 constant EventBranchTagDelete (line 16) | EventBranchTagDelete Event = 2 constant EventCollaborator (line 19) | EventCollaborator Event = 3 constant EventPush (line 22) | EventPush Event = 4 constant EventRepository (line 25) | EventRepository Event = 5 constant EventRepositoryVisibilityChange (line 28) | EventRepositoryVisibilityChange Event = 6 function Events (line 32) | func Events() []Event { function ParseEvent (line 70) | func ParseEvent(s string) (Event, error) { FILE: pkg/webhook/push.go type PushEvent (line 16) | type PushEvent struct function NewPushEvent (line 30) | func NewPushEvent(ctx context.Context, user proto.User, repo proto.Repos... FILE: pkg/webhook/repository.go type RepositoryEvent (line 13) | type RepositoryEvent struct type RepositoryEventAction (line 21) | type RepositoryEventAction constant RepositoryEventActionDelete (line 25) | RepositoryEventActionDelete RepositoryEventAction = "delete" constant RepositoryEventActionRename (line 27) | RepositoryEventActionRename RepositoryEventAction = "rename" constant RepositoryEventActionVisibilityChange (line 29) | RepositoryEventActionVisibilityChange RepositoryEventAction = "visibilit... constant RepositoryEventActionDefaultBranchChange (line 31) | RepositoryEventActionDefaultBranchChange RepositoryEventAction = "defaul... function NewRepositoryEvent (line 35) | func NewRepositoryEvent(ctx context.Context, user proto.User, repo proto... FILE: pkg/webhook/ssrf_test.go function TestSSRFProtection (line 16) | func TestSSRFProtection(t *testing.T) { FILE: pkg/webhook/validator.go function ValidateWebhookURL (line 15) | func ValidateWebhookURL(rawURL string) error { FILE: pkg/webhook/validator_test.go function TestValidateWebhookURL (line 13) | func TestValidateWebhookURL(t *testing.T) { function TestErrorAliases (line 42) | func TestErrorAliases(t *testing.T) { FILE: pkg/webhook/webhook.go type Hook (line 28) | type Hook struct type Delivery (line 35) | type Delivery struct function do (line 45) | func do(ctx context.Context, url string, method string, headers http.Hea... function SendWebhook (line 61) | func SendWebhook(ctx context.Context, w models.Webhook, event Event, pay... function SendEvent (line 132) | func SendEvent(ctx context.Context, payload EventPayload) error { function repoURL (line 149) | func repoURL(publicURL string, repo string) string { function getDefaultBranch (line 153) | func getDefaultBranch(repo proto.Repository) (string, error) { FILE: testscript/script_test.go function PrepareBuildCommand (line 37) | func PrepareBuildCommand(binPath string) *exec.Cmd { function TestMain (line 46) | func TestMain(m *testing.M) { function TestScript (line 70) | func TestScript(t *testing.T) { function cmdSoft (line 199) | func cmdSoft(user string, keys ...ssh.Signer) func(ts *testscript.TestSc... function cmdUI (line 224) | func cmdUI(key ssh.Signer) func(ts *testscript.TestScript, neg bool, arg... function cmdDos2Unix (line 284) | func cmdDos2Unix(ts *testscript.TestScript, neg bool, args []string) { function cmdGit (line 316) | func cmdGit(key string) func(ts *testscript.TestScript, neg bool, args [... function cmdMkfile (line 341) | func cmdMkfile(ts *testscript.TestScript, neg bool, args []string) { function check (line 352) | func check(ts *testscript.TestScript, err error, neg bool) { function cmdReadfile (line 361) | func cmdReadfile(ts *testscript.TestScript, neg bool, args []string) { function cmdEnvfile (line 365) | func cmdEnvfile(ts *testscript.TestScript, neg bool, args []string) { function cmdNewWebhook (line 381) | func cmdNewWebhook(ts *testscript.TestScript, neg bool, args []string) { function cmdCurl (line 404) | func cmdCurl(ts *testscript.TestScript, neg bool, args []string) { function cmdEnsureServerRunning (line 491) | func cmdEnsureServerRunning(ts *testscript.TestScript, neg bool, args []... function cmdEnsureServerNotRunning (line 517) | func cmdEnsureServerNotRunning(ts *testscript.TestScript, neg bool, args... function cmdStopserver (line 540) | func cmdStopserver(ts *testscript.TestScript, neg bool, args []string) { function setupPostgres (line 548) | func setupPostgres(t testscript.T, cfg *config.Config) (func(), error) { type maliciousSigner (line 624) | type maliciousSigner struct method PublicKey (line 631) | func (m *maliciousSigner) PublicKey() ssh.PublicKey { method Sign (line 636) | func (m *maliciousSigner) Sign(rand io.Reader, data []byte) (*ssh.Sign...