SYMBOL INDEX (612 symbols across 113 files) FILE: cmd/add.go function add (line 15) | func add() *cli.Command { FILE: cmd/check_install.go function checkInstall (line 11) | func checkInstall() *cli.Command { FILE: cmd/dump.go function dump (line 14) | func dump() *cli.Command { FILE: cmd/install.go function install (line 11) | func install() *cli.Command { FILE: cmd/lefthook.go function Lefthook (line 9) | func Lefthook() *cli.Command { FILE: cmd/run.go function run (line 12) | func run() *cli.Command { FILE: cmd/self_update.go function selfUpdate (line 16) | func selfUpdate() *cli.Command { FILE: cmd/uninstall.go function uninstall (line 11) | func uninstall() *cli.Command { FILE: cmd/validate.go function validate (line 11) | func validate() *cli.Command { FILE: cmd/version.go function version (line 13) | func version() *cli.Command { FILE: gen/jsonschema.go function main (line 16) | func main() { FILE: integration_test.go function TestLefthook (line 14) | func TestLefthook(t *testing.T) { FILE: internal/command/add.go constant defaultDirMode (line 12) | defaultDirMode = 0o755 type AddArgs (line 14) | type AddArgs struct method Add (line 21) | func (l *Lefthook) Add(_ctx context.Context, args AddArgs) error { method getSourceDirs (line 57) | func (l *Lefthook) getSourceDirs() (global, local string) { FILE: internal/command/add_test.go function TestLefthookAdd (line 13) | func TestLefthookAdd(t *testing.T) { FILE: internal/command/check_install.go type installationStatus (line 8) | type installationStatus constant installed (line 11) | installed installationStatus = iota constant notInstalled (line 12) | notInstalled method CheckInstall (line 15) | func (l *Lefthook) CheckInstall(_ctx context.Context) error { method checkInstall (line 31) | func (l *Lefthook) checkInstall() (installationStatus, error) { FILE: internal/command/dump.go type DumpArgs (line 11) | type DumpArgs struct method Dump (line 15) | func (l *Lefthook) Dump(_ctx context.Context, args DumpArgs) error { FILE: internal/command/install.go constant configFileMode (line 26) | configFileMode = 0o666 constant checksumFileMode (line 27) | checksumFileMode = 0o644 constant hooksDirMode (line 28) | hooksDirMode = 0o755 constant timestampBase (line 29) | timestampBase = 10 constant timestampBitsize (line 30) | timestampBitsize = 64 type InstallArgs (line 38) | type InstallArgs struct method Install (line 43) | func (l *Lefthook) Install(ctx context.Context, args InstallArgs, hooks ... method readOrCreateConfig (line 76) | func (l *Lefthook) readOrCreateConfig() (*config.Config, error) { method configExists (line 89) | func (l *Lefthook) configExists(path string) bool { method findMainConfig (line 94) | func (l *Lefthook) findMainConfig(path string) (string, error) { method createConfig (line 118) | func (l *Lefthook) createConfig(path string) error { method syncHooks (line 131) | func (l *Lefthook) syncHooks(cfg *config.Config, fetchRemotes bool) (*co... method shouldRefetch (line 202) | func (l *Lefthook) shouldRefetch(remote *config.Remote) bool { method findAvailableRemoteRef (line 236) | func (l *Lefthook) findAvailableRemoteRef(url string) (string, error) { method createHooksIfNeeded (line 257) | func (l *Lefthook) createHooksIfNeeded(cfg *config.Config, hooks []strin... function collectAllJobRoots (line 351) | func collectAllJobRoots(roots map[string]struct{}, jobs []*config.Job) { method checkHooksSynchronized (line 368) | func (l *Lefthook) checkHooksSynchronized(cfg *config.Config) (bool, []s... method configLastUpdateTimestamp (line 429) | func (l *Lefthook) configLastUpdateTimestamp() (int64, error) { method addChecksumFile (line 443) | func (l *Lefthook) addChecksumFile(checksum string, hooks []string) error { method checksumFilePath (line 454) | func (l *Lefthook) checksumFilePath() string { method ensureHooksDirExists (line 458) | func (l *Lefthook) ensureHooksDirExists() error { method getHooksPathConfig (line 471) | func (l *Lefthook) getHooksPathConfig() (local, global string) { method ensureHooksPathUnset (line 481) | func (l *Lefthook) ensureHooksPathUnset(force, resetHooksPath bool) error { function formatHooksPathError (line 518) | func formatHooksPathError(local, global string) error { method unsetHooksPathConfig (line 550) | func (l *Lefthook) unsetHooksPathConfig(local, global string) error { FILE: internal/command/install_test.go function TestLefthookInstall (line 17) | func TestLefthookInstall(t *testing.T) { function Test_syncHooks (line 382) | func Test_syncHooks(t *testing.T) { function TestShouldRefetch (line 620) | func TestShouldRefetch(t *testing.T) { function TestLefthookInstallWithCoreHooksPath (line 722) | func TestLefthookInstallWithCoreHooksPath(t *testing.T) { FILE: internal/command/lefthook.go constant EnvVerbose (line 26) | EnvVerbose = "LEFTHOOK_VERBOSE" constant envNoColor (line 27) | envNoColor = "NO_COLOR" constant envClicolorForce (line 28) | envClicolorForce = "CLICOLOR_FORCE" constant envClicolor (line 29) | envClicolor = "CLICOLOR" constant hookFileMode (line 30) | hookFileMode = 0o755 constant oldHookPostfix (line 31) | oldHookPostfix = ".old" constant hookContentFingerprint (line 32) | hookContentFingerprint = "LEFTHOOK" type Lefthook (line 35) | type Lefthook struct method LoadConfig (line 78) | func (l *Lefthook) LoadConfig() (*config.Config, error) { method reloadConfig (line 87) | func (l *Lefthook) reloadConfig(cfg *config.Config) (*config.Config, e... method isLefthookFile (line 109) | func (l *Lefthook) isLefthookFile(path string) bool { method cleanHook (line 135) | func (l *Lefthook) cleanHook(hook string, force bool) error { method addHook (line 173) | func (l *Lefthook) addHook(hook string, args templates.Args) error { function NewLefthook (line 42) | func NewLefthook(verbose bool, colors string) (*Lefthook, error) { function isEnvEnabled (line 180) | func isEnvEnabled(name string) bool { function ShellCompleteHookNames (line 189) | func ShellCompleteHookNames() { function ShellCompleteFlags (line 205) | func ShellCompleteFlags(cmd *cli.Command) { FILE: internal/command/run.go constant envEnabled (line 22) | envEnabled = "LEFTHOOK" constant envOutput (line 23) | envOutput = "LEFTHOOK_OUTPUT" type RunArgs (line 28) | type RunArgs struct method Run (line 48) | func (l *Lefthook) Run(ctx context.Context, args RunArgs) error { function resolveHook (line 153) | func resolveHook(cfg *config.Config, hookName string) (*config.Hook, err... function getFiles (line 170) | func getFiles(repo *git.Repository, args RunArgs) ([]string, error) { function getSourceDirs (line 188) | func getSourceDirs(repo *git.Repository, cfg *config.Config) []string { function shouldFailOnChanges (line 214) | func shouldFailOnChanges(fromArg *bool, fromHook string) (bool, error) { function shouldFailOnChangesDiff (line 235) | func shouldFailOnChangesDiff(fromArg *bool, fromHook *bool) bool { function runHook (line 247) | func runHook(ctx context.Context, hook *config.Hook, repo *git.Repositor... function printSummary (line 276) | func printSummary( function logResults (line 309) | func logResults(indent int, results []result.Result) { function parseFilesFromString (line 340) | func parseFilesFromString(paths string) []string { function checkVersion (line 353) | func checkVersion(minVersion string) error { FILE: internal/command/run_test.go function TestRun (line 15) | func TestRun(t *testing.T) { FILE: internal/command/uninstall.go type UninstallArgs (line 15) | type UninstallArgs struct method Uninstall (line 19) | func (l *Lefthook) Uninstall(_ctx context.Context, args UninstallArgs) e... method deleteHooks (line 47) | func (l *Lefthook) deleteHooks(force bool) error { method removeFile (line 83) | func (l *Lefthook) removeFile(glob string) { FILE: internal/command/uninstall_test.go function TestLefthookUninstall (line 14) | func TestLefthookUninstall(t *testing.T) { FILE: internal/command/validate.go type ValidateArgs (line 14) | type ValidateArgs struct method Validate (line 18) | func (l *Lefthook) Validate(_ctx context.Context, args ValidateArgs) err... function logValidationErrors (line 50) | func logValidationErrors(indent int, details jsonschema.List) { function logDetail (line 66) | func logDetail(indent int, details jsonschema.List) { FILE: internal/config/available_hooks.go constant ChecksumFileName (line 4) | ChecksumFileName = "lefthook.checksum" constant GhostHookName (line 7) | GhostHookName = "prepare-commit-msg" function HookUsesStagedFiles (line 42) | func HookUsesStagedFiles(hook string) bool { function HookUsesPushFiles (line 46) | func HookUsesPushFiles(hook string) bool { function KnownHook (line 50) | func KnownHook(hook string) bool { FILE: internal/config/command.go type Command (line 13) | type Command struct function CommandsToJobs (line 36) | func CommandsToJobs(commands map[string]*Command) []*Job { FILE: internal/config/command_executor.go type commandExecutor (line 12) | type commandExecutor struct method execute (line 17) | func (c *commandExecutor) execute(commandLine string) bool { FILE: internal/config/command_test.go function TestCommandsToJobs (line 10) | func TestCommandsToJobs(t *testing.T) { function TestCommandsToJobsWithTimeout (line 44) | func TestCommandsToJobsWithTimeout(t *testing.T) { FILE: internal/config/config.go type DumpFormat (line 17) | type DumpFormat constant YAMLFormat (line 20) | YAMLFormat DumpFormat = iota constant TOMLFormat (line 21) | TOMLFormat constant JSONFormat (line 22) | JSONFormat constant JSONCompactFormat (line 23) | JSONCompactFormat constant yamlIndent (line 25) | yamlIndent = 2 type Config (line 28) | type Config struct method Md5 (line 64) | func (c *Config) Md5() (checksum string, err error) { method Dump (line 82) | func (c *Config) Dump(format DumpFormat, out io.Writer) error { type dumper (line 116) | type dumper interface type yamlDumper (line 120) | type yamlDumper struct method Dump (line 122) | func (yamlDumper) Dump(input map[string]any, out io.Writer) error { type tomlDumper (line 130) | type tomlDumper struct method Dump (line 132) | func (tomlDumper) Dump(input map[string]any, out io.Writer) error { type jsonDumper (line 142) | type jsonDumper struct method Dump (line 146) | func (j jsonDumper) Dump(input map[string]any, out io.Writer) error { FILE: internal/config/files.go constant SubFiles (line 6) | SubFiles string = "{files}" constant SubAllFiles (line 7) | SubAllFiles string = "{all_files}" constant SubStagedFiles (line 8) | SubStagedFiles string = "{staged_files}" constant SubPushFiles (line 9) | SubPushFiles string = "{push_files}" function IsRunFilesCompatible (line 12) | func IsRunFilesCompatible(run string) bool { FILE: internal/config/hook.go constant CMD (line 3) | CMD = "{cmd}" type Hook (line 5) | type Hook struct type SetupInstruction (line 25) | type SetupInstruction struct FILE: internal/config/job.go type Job (line 5) | type Job struct method PrintableName (line 40) | func (job *Job) PrintableName(id string) string { type Group (line 33) | type Group struct FILE: internal/config/jsonc_parser.go type JSONC (line 9) | type JSONC struct method Unmarshal (line 15) | func (p *JSONC) Unmarshal(b []byte) (map[string]any, error) { method Marshal (line 24) | func (p *JSONC) Marshal(o map[string]any) ([]byte, error) { function jsoncParser (line 11) | func jsoncParser() *JSONC { FILE: internal/config/load.go constant DefaultConfigName (line 26) | DefaultConfigName = "lefthook.yml" constant DefaultSourceDir (line 27) | DefaultSourceDir = ".lefthook" constant DefaultSourceDirLocal (line 28) | DefaultSourceDirLocal = ".lefthook-local" type ConfigNotFoundError (line 54) | type ConfigNotFoundError struct method Error (line 58) | func (err ConfigNotFoundError) Error() string { function loadConfig (line 63) | func loadConfig(k *koanf.Koanf, filesystem afero.Fs, path string) error { function loadFirst (line 74) | func loadFirst(k *koanf.Koanf, filesystem afero.Fs, root string, names [... function loadFirstMain (line 90) | func loadFirstMain(k *koanf.Koanf, filesystem afero.Fs, root string) err... function loadMain (line 113) | func loadMain(filesystem afero.Fs, root string) (*koanf.Koanf, error) { function LoadSecondary (line 139) | func LoadSecondary(main *koanf.Koanf, filesystem afero.Fs, repo *git.Rep... function LoadKoanf (line 188) | func LoadKoanf(filesystem afero.Fs, repo *git.Repository) (*koanf.Koanf,... function Load (line 205) | func Load(filesystem afero.Fs, repo *git.Repository) (*Config, error) { function Unmarshal (line 214) | func Unmarshal(main *koanf.Koanf, secondary *koanf.Koanf) (*Config, erro... function loadRemotes (line 230) | func loadRemotes(k *koanf.Koanf, filesystem afero.Fs, repo *git.Reposito... function extend (line 276) | func extend(k *koanf.Koanf, filesystem afero.Fs, root string, extends []... function extendRecursive (line 282) | func extendRecursive(k *koanf.Koanf, filesystem afero.Fs, root string, e... function unmarshalConfigs (line 321) | func unmarshalConfigs(main, secondary *koanf.Koanf, c *Config) error { function addHook (line 363) | func addHook(name string, main, secondary *koanf.Koanf, c *Config) error { type iofs (line 466) | type iofs struct method Open (line 474) | func (iofs iofs) Open(name string) (fs.File, error) { function newIOFS (line 470) | func newIOFS(filesystem afero.Fs) iofs { type koanfProvider (line 483) | type koanfProvider struct method Read (line 487) | func (k koanfProvider) Read() (map[string]any, error) { method ReadBytes (line 491) | func (k koanfProvider) ReadBytes() ([]byte, error) { function mergeHooks (line 499) | func mergeHooks(src, dest map[string]any) error { function mergeJobsSlice (line 602) | func mergeJobsSlice(src, dest []any) []any { FILE: internal/config/load_test.go function TestLoad (line 16) | func TestLoad(t *testing.T) { FILE: internal/config/remote.go type Remote (line 3) | type Remote struct method Configured (line 15) | func (r *Remote) Configured() bool { FILE: internal/config/script.go type Script (line 12) | type Script struct function ScriptsToJobs (line 29) | func ScriptsToJobs(scripts map[string]*Script) []*Job { function parseNum (line 87) | func parseNum(str string) int { FILE: internal/config/script_test.go function TestScriptsToJobs (line 10) | func TestScriptsToJobs(t *testing.T) { function TestScriptsToJobsWithTimeout (line 44) | func TestScriptsToJobsWithTimeout(t *testing.T) { FILE: internal/config/skip_checker.go type skipChecker (line 11) | type skipChecker struct method Check (line 20) | func (sc *skipChecker) Check(state func() git.State, skip any, only an... method matches (line 38) | func (sc *skipChecker) matches(state func() git.State, value any) bool { method matchesSlices (line 50) | func (sc *skipChecker) matchesSlices(gitState func() git.State, slice ... method matchesRef (line 71) | func (sc *skipChecker) matchesRef(state func() git.State, typedState m... method matchesCommands (line 87) | func (sc *skipChecker) matchesCommands(typedState map[string]any) bool { function NewSkipChecker (line 15) | func NewSkipChecker(cmd system.Command) *skipChecker { FILE: internal/config/skip_checker_test.go type mockCmd (line 12) | type mockCmd struct method WithoutEnvs (line 14) | func (mc mockCmd) WithoutEnvs(...string) system.Command { method Run (line 18) | func (mc mockCmd) Run(cmd []string, _root string, _in io.Reader, _out ... function TestSkipChecker_Check (line 26) | func TestSkipChecker_Check(t *testing.T) { FILE: internal/git/command_executor.go type CommandExecutor (line 15) | type CommandExecutor struct method WithoutEnvs (line 41) | func (c CommandExecutor) WithoutEnvs(envs ...string) CommandExecutor { method OnlyDebugLogs (line 46) | func (c CommandExecutor) OnlyDebugLogs() CommandExecutor { method WithoutTrim (line 51) | func (c CommandExecutor) WithoutTrim() CommandExecutor { method Cmd (line 57) | func (c CommandExecutor) Cmd(cmd []string) (string, error) { method BatchedCmd (line 71) | func (c CommandExecutor) BatchedCmd(cmd []string, args []string) (stri... method CmdLines (line 88) | func (c CommandExecutor) CmdLines(cmd []string) ([]string, error) { method CmdLinesWithinFolder (line 98) | func (c CommandExecutor) CmdLinesWithinFolder(cmd []string, folder str... method execute (line 112) | func (c CommandExecutor) execute(cmd []string, root string) (string, e... function NewExecutor (line 33) | func NewExecutor(cmd system.Command) *CommandExecutor { function batchByLength (line 145) | func batchByLength(s []string, length int) [][]string { FILE: internal/git/command_executor_test.go type mockCmd (line 13) | type mockCmd struct method WithoutEnvs (line 15) | func (m mockCmd) WithoutEnvs(...string) system.Command { return mockCm... method Run (line 16) | func (m mockCmd) Run(cmd []string, root string, in io.Reader, out io.W... function TestBatchedCmd (line 25) | func TestBatchedCmd(t *testing.T) { FILE: internal/git/lfs.go constant LFSRequiredFile (line 8) | LFSRequiredFile = ".lfs-required" constant LFSConfigFile (line 9) | LFSConfigFile = ".lfsconfig" function IsLFSAvailable (line 20) | func IsLFSAvailable() bool { function IsLFSHook (line 27) | func IsLFSHook(hookName string) bool { FILE: internal/git/remote.go constant remotesFolder (line 13) | remotesFolder = "lefthook-remotes" constant remotesFolderMode (line 14) | remotesFolderMode = 0o755 method RemoteFolder (line 19) | func (r *Repository) RemoteFolder(url string, ref string) string { method RemotesFolder (line 27) | func (r *Repository) RemotesFolder() string { method SyncRemote (line 34) | func (r *Repository) SyncRemote(url, ref string, force bool) error { method updateRemote (line 65) | func (r *Repository) updateRemote(path, ref string) error { method cloneRemote (line 96) | func (r *Repository) cloneRemote(dest, directoryName, url, ref string) e... function RemoteDirectoryName (line 132) | func RemoteDirectoryName(url, ref string) string { FILE: internal/git/repository.go constant minGitVersion (line 22) | minGitVersion = "2.31.0" constant stashMessage (line 23) | stashMessage = "lefthook auto backup" constant unstagedPatchName (line 24) | unstagedPatchName = "lefthook-unstaged.patch" constant infoDirMode (line 25) | infoDirMode = 0o775 constant emptyTreeSHA (line 28) | emptyTreeSHA = "4b825dc642cb6eb9a060e54bf8d69288fbee4904" type Repository (line 57) | type Repository struct method Precompute (line 124) | func (r *Repository) Precompute() func() { method Setup (line 146) | func (r *Repository) Setup() { method StagedFiles (line 167) | func (r *Repository) StagedFiles() ([]string, error) { method StagedFilesWithDeleted (line 172) | func (r *Repository) StagedFilesWithDeleted() ([]string, error) { method AllFiles (line 177) | func (r *Repository) AllFiles() ([]string, error) { method PushFiles (line 182) | func (r *Repository) PushFiles() ([]string, error) { method PartiallyStagedFiles (line 222) | func (r *Repository) PartiallyStagedFiles() ([]string, error) { method SaveUnstaged (line 239) | func (r *Repository) SaveUnstaged(files []string) error { method RevertUnstagedChanges (line 260) | func (r *Repository) RevertUnstagedChanges(files []string) error { method RestoreUnstaged (line 266) | func (r *Repository) RestoreUnstaged() error { method StashUnstaged (line 307) | func (r *Repository) StashUnstaged() error { method DropUnstagedStash (line 329) | func (r *Repository) DropUnstagedStash() error { method AddFiles (line 363) | func (r *Repository) AddFiles(files []string) error { method Changeset (line 375) | func (r *Repository) Changeset() (map[string]string, error) { method PrintDiff (line 414) | func (r *Repository) PrintDiff(files []string) { method statusShort (line 432) | func (r *Repository) statusShort() ([]string, error) { method parseStatusShort (line 438) | func (r *Repository) parseStatusShort(lines []string, cb func(path str... method FindAllFiles (line 461) | func (r *Repository) FindAllFiles(command []string, folder string) ([]... method FindExistingFiles (line 471) | func (r *Repository) FindExistingFiles(command []string, folder string... method extractFiles (line 480) | func (r *Repository) extractFiles(lines []string, checkExistence bool)... method isFile (line 511) | func (r *Repository) isFile(path string) (bool, error) { method readOriginHead (line 526) | func (r *Repository) readOriginHead() string { function NewRepository (line 74) | func NewRepository(fs afero.Fs, git *CommandExecutor) (*Repository, erro... FILE: internal/git/repository_test.go function TestPartiallyStagedFiles (line 11) | func TestPartiallyStagedFiles(t *testing.T) { function TestChangeset (line 57) | func TestChangeset(t *testing.T) { FILE: internal/git/state.go type State (line 13) | type State struct constant Nil (line 18) | Nil string = "" constant Merge (line 19) | Merge string = "merge" constant MergeCommit (line 20) | MergeCommit string = "merge-commit" constant Rebase (line 21) | Rebase string = "rebase" method State (line 29) | func (r *Repository) State() State { method state (line 33) | func (r *Repository) state() State { method branch (line 67) | func (r *Repository) branch() string { method inMergeState (line 99) | func (r *Repository) inMergeState() bool { method inRebaseState (line 106) | func (r *Repository) inRebaseState() bool { method inMergeCommitState (line 116) | func (r *Repository) inMergeCommitState() bool { FILE: internal/log/builder.go type builder (line 8) | type builder interface type dummyBuilder (line 14) | type dummyBuilder struct method Add (line 80) | func (d dummyBuilder) Add(_ string, _ any) builder { return d } method Log (line 81) | func (dummyBuilder) Log() {} method String (line 82) | func (dummyBuilder) String() string { return "" } type logBuilder (line 16) | type logBuilder struct method Add (line 34) | func (b *logBuilder) Add(prefix string, data any) builder { method Log (line 63) | func (b *logBuilder) Log() { method String (line 76) | func (b *logBuilder) String() string { function Builder (line 22) | func Builder(level Level, prefix string) builder { FILE: internal/log/execution.go constant execLogPadding (line 10) | execLogPadding = 2 function Execution (line 12) | func Execution(name string, err error, out io.Reader) { FILE: internal/log/log.go type Level (line 36) | type Level constant ErrorLevel (line 39) | ErrorLevel Level = iota constant WarnLevel (line 40) | WarnLevel constant InfoLevel (line 41) | InfoLevel constant DebugLevel (line 42) | DebugLevel constant spinnerCharSet (line 44) | spinnerCharSet = 14 constant spinnerRefreshRate (line 45) | spinnerRefreshRate = 100 * time.Millisecond constant spinnerText (line 46) | spinnerText = " waiting" constant ColorAuto (line 48) | ColorAuto = iota constant ColorOn (line 49) | ColorOn constant ColorOff (line 50) | ColorOff type StyleLogger (line 53) | type StyleLogger struct method WithLeftBorder (line 103) | func (s StyleLogger) WithLeftBorder(border lipgloss.Border, color lipg... method WithPadding (line 109) | func (s StyleLogger) WithPadding(m int) StyleLogger { method Info (line 115) | func (s StyleLogger) Info(str string) { type Logger (line 57) | type Logger struct method SetLevel (line 384) | func (l *Logger) SetLevel(level Level) { method SetOutput (line 390) | func (l *Logger) SetOutput(out io.Writer) { method Info (line 396) | func (l *Logger) Info(args ...any) { method Debug (line 400) | func (l *Logger) Debug(args ...string) { method Error (line 410) | func (l *Logger) Error(args ...string) { method Warn (line 420) | func (l *Logger) Warn(args ...string) { method Infof (line 430) | func (l *Logger) Infof(format string, args ...any) { method Debugf (line 434) | func (l *Logger) Debugf(format string, args ...any) { method Errorf (line 438) | func (l *Logger) Errorf(format string, args ...any) { method Warnf (line 442) | func (l *Logger) Warnf(format string, args ...any) { method Log (line 446) | func (l *Logger) Log(level Level, args ...any) { method SetName (line 460) | func (l *Logger) SetName(name string) { method UnsetName (line 473) | func (l *Logger) UnsetName(name string) { method Logf (line 497) | func (l *Logger) Logf(level Level, format string, args ...any) { method Println (line 503) | func (l *Logger) Println(args ...any) { method Printf (line 515) | func (l *Logger) Printf(format string, args ...any) { method IsLevelEnabled (line 527) | func (l *Logger) IsLevelEnabled(level Level) bool { method formatSpinnerSuffix (line 532) | func (l *Logger) formatSpinnerSuffix(names []string) string { function New (line 67) | func New() *Logger { function Colors (line 81) | func Colors() int { function Colorized (line 85) | func Colorized() bool { function StartSpinner (line 89) | func StartSpinner() { function StopSpinner (line 93) | func StopSpinner() { function Styled (line 97) | func Styled() StyleLogger { function Debug (line 124) | func Debug(args ...any) { function Debugf (line 129) | func Debugf(format string, args ...any) { function Info (line 133) | func Info(args ...any) { function InfoPad (line 137) | func InfoPad(s string) { function Infof (line 147) | func Infof(format string, args ...any) { function Error (line 151) | func Error(args ...any) { function Errorf (line 156) | func Errorf(format string, args ...any) { function Warn (line 160) | func Warn(args ...any) { function Warnf (line 165) | func Warnf(format string, args ...any) { function Println (line 169) | func Println(args ...any) { function Printf (line 173) | func Printf(format string, args ...any) { function SetLevel (line 177) | func SetLevel(level Level) { function SetColors (line 181) | func SetColors(colors any) { function setColor (line 234) | func setColor(colorCode any, adaptiveColor *lipgloss.TerminalColor) { function Cyan (line 257) | func Cyan(s string) string { function Green (line 261) | func Green(s string) string { function Red (line 265) | func Red(s string) string { function Yellow (line 269) | func Yellow(s string) string { function Gray (line 273) | func Gray(s string) string { function Bold (line 277) | func Bold(s string) string { function LogMeta (line 285) | func LogMeta(hookName string) { function Success (line 297) | func Success(indent int, name string, duration time.Duration) { function Failure (line 310) | func Failure(indent int, name, failText string, duration time.Duration) { function box (line 328) | func box(left, right string) { function Separate (line 346) | func Separate(s string) { function color (line 362) | func color(clr lipgloss.TerminalColor) lipgloss.Style { function SetOutput (line 366) | func SetOutput(out io.Writer) { function ParseLevel (line 370) | func ParseLevel(lvl string) (Level, error) { function SetName (line 452) | func SetName(name string) { function UnsetName (line 456) | func UnsetName(name string) { function terminalWidth (line 564) | func terminalWidth() int { function formatWithPartialNames (line 580) | func formatWithPartialNames(names []string, availableWidth int) string { function pluralize (line 637) | func pluralize(count int) string { FILE: internal/log/log_test.go constant testConcurrentGoroutines (line 17) | testConcurrentGoroutines = 10 constant testOperationsPerGoroutine (line 18) | testOperationsPerGoroutine = 50 function TestLogger_SetName (line 21) | func TestLogger_SetName(t *testing.T) { function TestLogger_UnsetName (line 91) | func TestLogger_UnsetName(t *testing.T) { function TestLogger_SetName_UnsetName_Integration (line 173) | func TestLogger_SetName_UnsetName_Integration(t *testing.T) { function TestLogger_LongHookNames (line 212) | func TestLogger_LongHookNames(t *testing.T) { function TestLogger_ConcurrentAccess (line 243) | func TestLogger_ConcurrentAccess(t *testing.T) { function TestLogger_SpinnerActiveHandling (line 277) | func TestLogger_SpinnerActiveHandling(t *testing.T) { function TestGlobalSetNameUnsetName (line 302) | func TestGlobalSetNameUnsetName(t *testing.T) { function createTestLogger (line 332) | func createTestLogger() *Logger { function TestLogger_FormatSpinnerSuffix (line 347) | func TestLogger_FormatSpinnerSuffix(t *testing.T) { function TestLogger_FormatWithPartialNames (line 428) | func TestLogger_FormatWithPartialNames(t *testing.T) { function TestPluralize (line 469) | func TestPluralize(t *testing.T) { function TestLogger_TerminalWidthIntegration (line 488) | func TestLogger_TerminalWidthIntegration(t *testing.T) { function createTestLoggerWithWidth (line 524) | func createTestLoggerWithWidth(width int) *Logger { FILE: internal/log/settings.go constant meta (line 8) | meta = 1 << iota constant success (line 9) | success constant failure (line 10) | failure constant summary (line 11) | summary constant skips (line 12) | skips constant execution (line 13) | execution constant executionOutput (line 14) | executionOutput constant executionInfo (line 15) | executionInfo constant emptySummary (line 16) | emptySummary constant setup (line 17) | setup constant disableAll (line 20) | disableAll = 0 type LogSettings (line 22) | type LogSettings struct method Apply (line 40) | func (s *LogSettings) Apply(enableTags string, enable any) { method enable (line 76) | func (s *LogSettings) enable(setting string) { method enableAll (line 101) | func (s *LogSettings) enableAll() { method disableAll (line 105) | func (s *LogSettings) disableAll() { method isEnable (line 110) | func (s LogSettings) isEnable(option int16) bool { method LogSuccess (line 114) | func (s LogSettings) LogSuccess() bool { method LogFailure (line 118) | func (s LogSettings) LogFailure() bool { method LogSummary (line 122) | func (s LogSettings) LogSummary() bool { method LogMeta (line 126) | func (s LogSettings) LogMeta() bool { method LogExecution (line 130) | func (s LogSettings) LogExecution() bool { method LogExecutionOutput (line 134) | func (s LogSettings) LogExecutionOutput() bool { method LogExecutionInfo (line 138) | func (s LogSettings) LogExecutionInfo() bool { method LogSkips (line 142) | func (s LogSettings) LogSkips() bool { method LogEmptySummary (line 146) | func (s LogSettings) LogEmptySummary() bool { method LogSetup (line 150) | func (s LogSettings) LogSetup() bool { function InitSettings (line 28) | func InitSettings() { function NewSettings (line 32) | func NewSettings() LogSettings { function ApplySettings (line 36) | func ApplySettings(enableTags string, enable any) { FILE: internal/log/settings_test.go function TestSetting (line 8) | func TestSetting(t *testing.T) { FILE: internal/log/setup.go function LogSetup (line 10) | func LogSetup(r io.Reader) { FILE: internal/log/skip.go constant skipLogPadding (line 7) | skipLogPadding = 2 function Skip (line 9) | func Skip(name, reason string) { FILE: internal/run/controller/command/build.go type JobParams (line 8) | type JobParams struct method validateCommand (line 55) | func (p *JobParams) validateCommand() error { method validateScript (line 63) | func (p *JobParams) validateScript() error { type BuilderOptions (line 24) | type BuilderOptions struct type Builder (line 34) | type Builder struct method BuildCommands (line 47) | func (b *Builder) BuildCommands(params *JobParams) ([]string, []string... function NewBuilder (line 39) | func NewBuilder(repo *git.Repository, opts BuilderOptions) *Builder { FILE: internal/run/controller/command/build_command.go method buildCommand (line 14) | func (b *Builder) buildCommand(params *JobParams) ([]string, []string, e... method buildReplacer (line 87) | func (b *Builder) buildReplacer(params *JobParams) replacer.Replacer { method buildFilter (line 103) | func (b *Builder) buildFilter(params *JobParams) *filter.Filter { FILE: internal/run/controller/command/build_script.go constant executableFileMode (line 17) | executableFileMode os.FileMode = 0o751 constant executableMask (line 18) | executableMask os.FileMode = 0o111 type scriptNotExistsError (line 21) | type scriptNotExistsError struct method Error (line 25) | func (s scriptNotExistsError) Error() string { method buildScript (line 29) | func (b *Builder) buildScript(params *JobParams) ([]string, []string, er... FILE: internal/run/controller/command/replacer/replacer.go type entry (line 20) | type entry struct type Replacer (line 25) | type Replacer struct method AddTemplates (line 62) | func (r Replacer) AddTemplates(templates map[string]string) Replacer { method AddGitArgs (line 74) | func (r Replacer) AddGitArgs(args []string) Replacer { method Discover (line 102) | func (r Replacer) Discover(source string, filter *filter.Filter) error { method HasEmpty (line 131) | func (r Replacer) HasEmpty() bool { method Cached (line 141) | func (r Replacer) Cached(key string) bool { method Empty (line 147) | func (r Replacer) Empty(key string) bool { method Files (line 156) | func (r Replacer) Files(template string, filter *filter.Filter) ([]str... method ReplaceAndSplit (line 175) | func (r Replacer) ReplaceAndSplit(command string, maxlen int) ([]strin... function New (line 31) | func New( function NewMocked (line 87) | func NewMocked(files []string) Replacer { function escapeFiles (line 228) | func escapeFiles(files []string) []string { function getNChars (line 243) | func getNChars(s []string, n int) ([]string, []string) { function replaceQuoted (line 265) | func replaceQuoted(source, substitution string, files []string) string { FILE: internal/run/controller/command/replacer/replacer_test.go function Test_getNChars (line 13) | func Test_getNChars(t *testing.T) { function Test_ReplaceAndSplit (line 71) | func Test_ReplaceAndSplit(t *testing.T) { function Test_ReplaceAndSplit_CustomTemplates (line 210) | func Test_ReplaceAndSplit_CustomTemplates(t *testing.T) { function Test_replaceQuoted (line 253) | func Test_replaceQuoted(t *testing.T) { FILE: internal/run/controller/command/skip_error.go type SkipError (line 4) | type SkipError struct method Error (line 8) | func (r SkipError) Error() string { FILE: internal/run/controller/controller.go type Controller (line 21) | type Controller struct method RunHook (line 61) | func (c *Controller) RunHook(ctx context.Context, opts Options, hook *... method concurrently (line 97) | func (c *Controller) concurrently(ctx context.Context, scope *scope, j... method sequentially (line 122) | func (c *Controller) sequentially(ctx context.Context, scope *scope, j... type Options (line 28) | type Options struct function NewController (line 45) | func NewController(repo *git.Repository) *Controller { FILE: internal/run/controller/controller_test.go type executor (line 25) | type executor struct method Execute (line 36) | func (e executor) Execute(_ctx context.Context, opts exec.Options, _in... function succeeded (line 28) | func succeeded(name string) result.Result { function failed (line 32) | func failed(name, failText string) result.Result { function TestRunAll (line 78) | func TestRunAll(t *testing.T) { FILE: internal/run/controller/exec/exec_unix.go type CommandExecutor (line 19) | type CommandExecutor struct method Execute (line 29) | func (e CommandExecutor) Execute(ctx context.Context, opts Options, in... method execute (line 79) | func (e CommandExecutor) execute(ctx context.Context, cmdstr string, a... type executeArgs (line 21) | type executeArgs struct FILE: internal/run/controller/exec/exec_windows.go type CommandExecutor (line 19) | type CommandExecutor struct method Execute (line 27) | func (e CommandExecutor) Execute(ctx context.Context, opts Options, in... method execute (line 69) | func (e CommandExecutor) execute(ctx context.Context, cmdstr string, a... type executeArgs (line 20) | type executeArgs struct FILE: internal/run/controller/exec/executor.go type Options (line 9) | type Options struct type Executor (line 18) | type Executor interface FILE: internal/run/controller/filter/detect_text.go function hasBOM (line 18) | func hasBOM(content []byte) bool { function detectText (line 31) | func detectText(bytes []byte) bool { FILE: internal/run/controller/filter/detect_text_test.go function TestDetectText (line 8) | func TestDetectText(t *testing.T) { FILE: internal/run/controller/filter/filter.go type fileTypeFilter (line 17) | type fileTypeFilter struct constant typeExecutable (line 23) | typeExecutable int = 1 << iota constant typeNotExecutable (line 24) | typeNotExecutable constant typeSymlink (line 25) | typeSymlink constant typeNotSymlink (line 26) | typeNotSymlink constant typeText (line 27) | typeText constant typeBinary (line 28) | typeBinary constant detectTypes (line 30) | detectTypes = typeText | typeBinary constant detectBufSize (line 31) | detectBufSize = 1024 constant executableMask (line 32) | executableMask = 0o111 type Params (line 35) | type Params struct type Filter (line 43) | type Filter struct method Apply (line 53) | func (f *Filter) Apply(files []string) []string { function New (line 49) | func New(fs afero.Fs, params Params) *Filter { function byGlob (line 72) | func byGlob(vs []string, matchers []string, globMatcher string) []string { function matchFiles (line 95) | func matchFiles(vs []string, matcher string, globMatcher string) []string { function matchFilesDoublestar (line 108) | func matchFilesDoublestar(vs []string, lowerMatcher string) []string { function matchFilesGobwas (line 119) | func matchFilesGobwas(vs []string, lowerMatcher string) []string { function byExclude (line 130) | func byExclude(vs []string, exclude []string, globMatcher string) []stri... function byExcludeDoublestar (line 141) | func byExcludeDoublestar(vs []string, exclude []string) []string { function byExcludeGobwas (line 151) | func byExcludeGobwas(vs []string, exclude []string) []string { function matchesAnyDoublestar (line 166) | func matchesAnyDoublestar(path string, patterns []string) bool { function matchesAnyGobwas (line 176) | func matchesAnyGobwas(path string, globs []glob.Glob) bool { function byRoot (line 185) | func byRoot(vs []string, matcher string) []string { function byType (line 199) | func byType(fs afero.Fs, vs []string, types []string) []string { function parseFileTypeFilter (line 279) | func parseFileTypeFilter(types []string) fileTypeFilter { function checkIsText (line 306) | func checkIsText(fs afero.Fs, filepath string) bool { FILE: internal/run/controller/filter/filter_test.go function slicesEqual (line 8) | func slicesEqual(a, b []string) bool { function TestByGlob (line 28) | func TestByGlob(t *testing.T) { function TestByGlobDoublestar (line 74) | func TestByGlobDoublestar(t *testing.T) { function TestByExclude (line 120) | func TestByExclude(t *testing.T) { function TestByExcludeDoublestar (line 148) | func TestByExcludeDoublestar(t *testing.T) { function TestByRoot (line 188) | func TestByRoot(t *testing.T) { FILE: internal/run/controller/guard.go type FailOnChangesError (line 12) | type FailOnChangesError struct method Error (line 16) | func (e *FailOnChangesError) Error() string { type guard (line 20) | type guard struct method wrap (line 37) | func (g *guard) wrap(fn func()) error { method withHiddenUnstagedChanges (line 51) | func (g *guard) withHiddenUnstagedChanges(fn func() error) error { method withFailOnChanges (line 110) | func (g *guard) withFailOnChanges(fn func()) error { method printDiff (line 135) | func (g *guard) printDiff(changesetBefore, changesetAfter map[string]s... method getChangedFiles (line 145) | func (g *guard) getChangedFiles(changesetBefore, changesetAfter map[st... function newGuard (line 28) | func newGuard(repo *git.Repository, stashUnstagedChanges bool, failOnCha... FILE: internal/run/controller/guard_test.go function Test_guard_wrap (line 14) | func Test_guard_wrap(t *testing.T) { FILE: internal/run/controller/job.go constant invalidJobError (line 23) | invalidJobError = "either `run`,`script`, or `group` must be provided fo... constant emptyGroupError (line 24) | emptyGroupError = "group must have `jobs`" method runJob (line 27) | func (c *Controller) runJob(ctx context.Context, scope *scope, id string... method runSingleJob (line 83) | func (c *Controller) runSingleJob(ctx context.Context, scope *scope, id ... method addStagedFiles (line 186) | func (c *Controller) addStagedFiles(files []string) { method skipReason (line 192) | func (c *Controller) skipReason(scope *scope, job *config.Job, name stri... FILE: internal/run/controller/lfs.go method runLFSHook (line 16) | func (c *Controller) runLFSHook(ctx context.Context, hookName string, ar... FILE: internal/run/controller/run.go method run (line 14) | func (c *Controller) run(ctx context.Context, name string, follow bool, ... FILE: internal/run/controller/scope.go type scope (line 11) | type scope struct method extend (line 51) | func (s *scope) extend(job *config.Job) *scope { function newScope (line 27) | func newScope(hook *config.Hook, opts Options) *scope { FILE: internal/run/controller/scope_test.go function Test_newScope (line 13) | func Test_newScope(t *testing.T) { function TestScope_extend (line 65) | func TestScope_extend(t *testing.T) { FILE: internal/run/controller/setup.go method setup (line 14) | func (c *Controller) setup( FILE: internal/run/controller/utils/cached_reader.go type CachedReader (line 12) | type CachedReader struct method Read (line 27) | func (r *CachedReader) Read(p []byte) (int, error) { function NewCachedReader (line 19) | func NewCachedReader(in io.Reader) *CachedReader { FILE: internal/run/controller/utils/cached_reader_test.go function TestCachedReader (line 9) | func TestCachedReader(t *testing.T) { FILE: internal/run/controller/utils/firstNonBlank.go function FirstNonBlank (line 4) | func FirstNonBlank(args ...string) string { FILE: internal/run/controller/utils/intersect.go function Intersect (line 4) | func Intersect[K comparable](a, b []K) bool { FILE: internal/run/result/result.go type status (line 5) | type status constant success (line 8) | success status = iota constant failure (line 9) | failure constant skip (line 10) | skip type Result (line 14) | type Result struct method Success (line 22) | func (r Result) Success() bool { method Failure (line 26) | func (r Result) Failure() bool { method Text (line 30) | func (r Result) Text() string { function Skip (line 34) | func Skip(name string) Result { function Success (line 38) | func Success(name string, duration time.Duration) Result { function Failure (line 42) | func Failure(name, text string, duration time.Duration) Result { function Group (line 46) | func Group(name string, results []Result) Result { FILE: internal/run/result/result_test.go function TestGroup (line 11) | func TestGroup(t *testing.T) { FILE: internal/run/run.go function Run (line 21) | func Run( FILE: internal/system/command.go type osCmd (line 12) | type osCmd struct method WithoutEnvs (line 27) | func (c osCmd) WithoutEnvs(envs ...string) Command { method Run (line 32) | func (c osCmd) Run(command []string, root string, in io.Reader, out io... method RunWithContext (line 38) | func (c osCmd) RunWithContext( type Command (line 18) | type Command interface type CommandWithContext (line 23) | type CommandWithContext interface FILE: internal/system/limits.go constant maxCommandLengthDarwin (line 9) | maxCommandLengthDarwin = 260000 constant maxCommandLengthWindows (line 10) | maxCommandLengthWindows = 7000 constant maxCommandLengthLinux (line 11) | maxCommandLengthLinux = 130000 function MaxCmdLen (line 14) | func MaxCmdLen() int { FILE: internal/system/null_reader.go type nullReader (line 6) | type nullReader struct method Read (line 11) | func (nullReader) Read(b []byte) (int, error) { FILE: internal/system/null_reader_test.go function TestNullReader (line 9) | func TestNullReader(t *testing.T) { FILE: internal/system/sh_unix.go function Sh (line 6) | func Sh() (string, error) { FILE: internal/system/sh_windows.go constant sh (line 14) | sh = "sh" constant defaultShPath (line 15) | defaultShPath = `C:\Program Files\Git\bin\sh.exe` function Sh (line 42) | func Sh() (string, error) { FILE: internal/templates/templates.go constant checksumFormat (line 13) | checksumFormat = "%s %d %s\n" type Args (line 18) | type Args struct type hookTmplData (line 25) | type hookTmplData struct function Hook (line 35) | func Hook(hookName string, args Args) []byte { function Config (line 58) | func Config() []byte { function Checksum (line 67) | func Checksum(checksum string, timestamp int64, hooks []string) []byte { function getExtension (line 71) | func getExtension() string { FILE: internal/updater/updater.go constant timeout (line 29) | timeout = 120 * time.Second constant latestReleaseURL (line 30) | latestReleaseURL = "https://api.github.com/repos/evilmartia... constant checksumsFilename (line 31) | checksumsFilename = "lefthook_checksums.txt" constant checksumFields (line 32) | checksumFields = 2 constant modExecutable (line 33) | modExecutable os.FileMode = 0o755 type release (line 56) | type release struct type asset (line 61) | type asset struct type Options (line 66) | type Options struct type Updater (line 72) | type Updater struct method SelfUpdate (line 84) | func (u *Updater) SelfUpdate(ctx context.Context, opts Options) error { method fetchLatestRelease (line 204) | func (u *Updater) fetchLatestRelease(ctx context.Context) (*release, e... method download (line 235) | func (u *Updater) download(ctx context.Context, name, fileURL, checksu... function New (line 77) | func New() *Updater { FILE: internal/updater/updater_test.go function TestUpdater_SelfUpdate (line 18) | func TestUpdater_SelfUpdate(t *testing.T) { FILE: internal/version/version.go constant version (line 9) | version = "2.1.4" function Version (line 19) | func Version(verbose bool) string { function Check (line 27) | func Check(wanted, given string) error { FILE: internal/version/version_test.go function TestCheck (line 10) | func TestCheck(t *testing.T) { function TestVersion (line 62) | func TestVersion(t *testing.T) { FILE: main.go function main (line 11) | func main() { FILE: packaging/registries/npm-bundled/get-exe.js function getExePath (line 3) | function getExePath() { FILE: packaging/registries/npm-installer/install.js function install (line 8) | async function install() { function getDownloadURL (line 29) | function getDownloadURL() { function downloadBinary (line 57) | async function downloadBinary(url, dest) { FILE: packaging/registries/npm/lefthook/get-exe.js function getExePath (line 3) | function getExePath() { FILE: packaging/registries/npm/lefthook/postinstall.js function install (line 4) | function install() { FILE: packaging/registries/pypi/hatch_build.py function normalize_platform (line 40) | def normalize_platform(value: str) -> str: function normalize_arch (line 46) | def normalize_arch(value: str) -> str: function get_platform_info (line 52) | def get_platform_info(): class CustomBuildHook (line 69) | class CustomBuildHook(BuildHookInterface): method __init__ (line 72) | def __init__(self, *args, **kwargs) -> None: method initialize (line 80) | def initialize(self, version, build_data): method finalize (line 101) | def finalize(self, version, build_data, artifact_path) -> None: method _prune_binaries (line 105) | def _prune_binaries(self): method _restore_binaries (line 139) | def _restore_binaries(self): FILE: packaging/registries/pypi/lefthook/main.py function main (line 12) | def main(): FILE: tests/helpers/cmdtest/cmdtest.go function NewOrdered (line 9) | func NewOrdered(t testing.TB, outs []Out) *OrderedCmd { function NewTracking (line 14) | func NewTracking(cb func(string, string, io.Writer) error) *TrackingCmd { function NewDumb (line 22) | func NewDumb() *DumbCmd { FILE: tests/helpers/cmdtest/dumb.go type DumbCmd (line 9) | type DumbCmd struct method WithoutEnvs (line 12) | func (c *DumbCmd) WithoutEnvs(_ ...string) system.Command { method Run (line 17) | func (c *DumbCmd) Run(_ []string, _ string, _ io.Reader, _ io.Writer, ... FILE: tests/helpers/cmdtest/ordered.go type Out (line 11) | type Out struct type OrderedCmd (line 17) | type OrderedCmd struct method WithoutEnvs (line 24) | func (c *OrderedCmd) WithoutEnvs(envs ...string) system.Command { method Run (line 29) | func (c *OrderedCmd) Run(command []string, root string, in io.Reader, ... FILE: tests/helpers/cmdtest/ordered_test.go function TestOrderedCmd (line 12) | func TestOrderedCmd(t *testing.T) { FILE: tests/helpers/cmdtest/tracking.go type TrackingCmd (line 11) | type TrackingCmd struct method WithoutEnvs (line 17) | func (c *TrackingCmd) WithoutEnvs(envs ...string) system.Command { method Run (line 22) | func (c *TrackingCmd) Run(command []string, root string, in io.Reader,... method RunWithContext (line 33) | func (c *TrackingCmd) RunWithContext(_ context.Context, command []stri... method Reset (line 37) | func (c *TrackingCmd) Reset() { FILE: tests/helpers/cmdtest/tracking_test.go function TestTrackingCmd (line 12) | func TestTrackingCmd(t *testing.T) { FILE: tests/helpers/configtest/config.go function ParseHook (line 13) | func ParseHook(str string) *config.Hook { function ParseJob (line 23) | func ParseJob(str string) *config.Job { function stripPadding (line 32) | func stripPadding(str string) []byte { FILE: tests/helpers/configtest/config_test.go function TestParseHook (line 12) | func TestParseHook(t *testing.T) { function TestParseJob (line 60) | func TestParseJob(t *testing.T) { FILE: tests/helpers/gittest/gittest.go type RepositoryBuilder (line 12) | type RepositoryBuilder struct method Root (line 22) | func (b *RepositoryBuilder) Root(root string) *RepositoryBuilder { method Cmd (line 27) | func (b *RepositoryBuilder) Cmd(cmd system.Command) *RepositoryBuilder { method Fs (line 32) | func (b *RepositoryBuilder) Fs(fs afero.Fs) *RepositoryBuilder { method Build (line 37) | func (b *RepositoryBuilder) Build() *git.Repository { function NewRepositoryBuilder (line 18) | func NewRepositoryBuilder() *RepositoryBuilder { function GitPath (line 48) | func GitPath(root string) string { FILE: tests/helpers/gittest/gittest_test.go function TestBuilder (line 14) | func TestBuilder(t *testing.T) { function TestGitPath (line 28) | func TestGitPath(t *testing.T) {