Documentation
¶
Index ¶
- Constants
- Variables
- func HookUsesPushFiles(hook string) bool
- func HookUsesStagedFiles(hook string) bool
- func IsRunFilesCompatible(run string) bool
- func KnownHook(hook string) bool
- func LoadKoanf(filesystem afero.Fs, repo *git.Repository) (*koanf.Koanf, *koanf.Koanf, error)
- func NewSkipChecker(cmd system.Command) *skipChecker
- type Command
- type Config
- type ConfigNotFoundError
- type DumpFormat
- type Group
- type Hook
- type Job
- type Remote
- type Script
Constants ¶
View Source
const ( SubFiles string = "{files}" SubAllFiles string = "{all_files}" SubStagedFiles string = "{staged_files}" SubPushFiles string = "{push_files}" )
View Source
const ( DefaultConfigName = "lefthook.yml" DefaultSourceDir = ".lefthook" DefaultSourceDirLocal = ".lefthook-local" )
View Source
const CMD = "{cmd}"
View Source
const ChecksumFileName = "lefthook.checksum"
ChecksumFileName - the file, which is used just to store the current config checksum version.
View Source
const GhostHookName = "prepare-commit-msg"
GhostHookName - the hook which logs are not shown and which is used for synchronizing hooks.
Variables ¶
View Source
var ( LocalConfigNames = []string{"lefthook-local", ".lefthook-local", filepath.Join(".config", "lefthook-local")} MainConfigNames = []string{"lefthook", ".lefthook", filepath.Join(".config", "lefthook")} )
View Source
var AvailableHooks = map[string]struct{}{
"applypatch-msg": {},
"pre-applypatch": {},
"post-applypatch": {},
"pre-commit": {},
"pre-merge-commit": {},
"prepare-commit-msg": {},
"commit-msg": {},
"post-commit": {},
"pre-rebase": {},
"post-checkout": {},
"post-merge": {},
"pre-push": {},
"pre-receive": {},
"update": {},
"proc-receive": {},
"post-receive": {},
"post-update": {},
"reference-transaction": {},
"push-to-checkout": {},
"pre-auto-gc": {},
"post-rewrite": {},
"sendemail-validate": {},
"fsmonitor-watchman": {},
"p4-changelist": {},
"p4-prepare-changelist": {},
"p4-post-changelist": {},
"p4-pre-submit": {},
"post-index-change": {},
}
AvailableHooks - list of hooks taken from https://git-scm.com/docs/githooks. Keep the order of the hooks same here for easy syncing.
View Source
var ErrFilesIncompatible = errors.New("one of your runners contains incompatible file types")
Functions ¶
func HookUsesPushFiles ¶ added in v1.3.6
func HookUsesStagedFiles ¶ added in v1.3.0
func IsRunFilesCompatible ¶ added in v1.10.0
func LoadKoanf ¶ added in v1.10.2
func LoadKoanf(filesystem afero.Fs, repo *git.Repository) (*koanf.Koanf, *koanf.Koanf, error)
func NewSkipChecker ¶ added in v1.6.6
Types ¶
type Command ¶
type Command struct { Run string `json:"run" mapstructure:"run" toml:"run" yaml:"run"` Files string `json:"files,omitempty" mapstructure:"files" toml:"files,omitempty" yaml:",omitempty"` Skip interface{} `` /* 127-byte string literal not displayed */ Only interface{} `` /* 127-byte string literal not displayed */ Tags []string `` /* 127-byte string literal not displayed */ Env map[string]string `json:"env,omitempty" mapstructure:"env" toml:"env,omitempty" yaml:",omitempty"` FileTypes []string `` /* 128-byte string literal not displayed */ Glob []string `` /* 127-byte string literal not displayed */ Root string `json:"root,omitempty" mapstructure:"root" toml:"root,omitempty" yaml:",omitempty"` Exclude interface{} `` /* 127-byte string literal not displayed */ Priority int `json:"priority,omitempty" mapstructure:"priority" toml:"priority,omitempty" yaml:",omitempty"` FailText string `` /* 140-byte string literal not displayed */ Interactive bool `json:"interactive,omitempty" mapstructure:"interactive" toml:"interactive,omitempty" yaml:",omitempty"` UseStdin bool `` /* 140-byte string literal not displayed */ StageFixed bool `` /* 142-byte string literal not displayed */ }
func (Command) ExecutionPriority ¶ added in v1.6.8
type Config ¶
type Config struct { MinVersion string `` /* 160-byte string literal not displayed */ Lefthook string `json:"lefthook,omitempty" jsonschema:"description=Lefthook executable path or command" mapstructure:"lefthook,omitempty"` SourceDir string `` /* 255-byte string literal not displayed */ SourceDirLocal string `` /* 212-byte string literal not displayed */ Rc string `json:"rc,omitempty" jsonschema:"description=Provide an rc file - a simple sh script" mapstructure:"rc,omitempty"` SkipOutput interface{} `json:"skip_output,omitempty" jsonschema:"oneof_type=boolean;array" koanf:"skip_output" mapstructure:"skip_output,omitempty"` Output interface{} `` /* 171-byte string literal not displayed */ Extends []string `json:"extends,omitempty" jsonschema:"description=Specify files to extend config with" mapstructure:"extends,omitempty"` NoTTY bool `` /* 145-byte string literal not displayed */ AssertLefthookInstalled bool `` /* 127-byte string literal not displayed */ Colors interface{} `` /* 177-byte string literal not displayed */ SkipLFS bool `` /* 149-byte string literal not displayed */ Remotes []*Remote `` /* 249-byte string literal not displayed */ Templates map[string]string `` /* 137-byte string literal not displayed */ Hooks map[string]*Hook `jsonschema:"-" mapstructure:"-"` }
type ConfigNotFoundError ¶ added in v1.9.0
type ConfigNotFoundError struct {
// contains filtered or unexported fields
}
ConfigNotFoundError.
func (ConfigNotFoundError) Error ¶ added in v1.9.0
func (err ConfigNotFoundError) Error() string
type DumpFormat ¶ added in v1.7.16
type DumpFormat int
const ( YAMLFormat DumpFormat = iota TOMLFormat JSONFormat JSONCompactFormat )
type Group ¶ added in v1.10.0
type Group struct { Root string `json:"root,omitempty" mapstructure:"root" toml:"root,omitempty" yaml:",omitempty"` Parallel bool `json:"parallel,omitempty" mapstructure:"parallel" toml:"parallel,omitempty" yaml:",omitempty"` Piped bool `json:"piped,omitempty" mapstructure:"piped" toml:"piped,omitempty" yaml:",omitempty"` Jobs []*Job `json:"jobs" mapstructure:"jobs" toml:"jobs" yaml:"jobs"` }
type Hook ¶
type Hook struct { Parallel bool `json:"parallel,omitempty" mapstructure:"parallel" toml:"parallel,omitempty" yaml:",omitempty"` Piped bool `json:"piped,omitempty" mapstructure:"piped" toml:"piped,omitempty" yaml:",omitempty"` Follow bool `json:"follow,omitempty" mapstructure:"follow" toml:"follow,omitempty" yaml:",omitempty"` Files string `json:"files,omitempty" mapstructure:"files" toml:"files,omitempty" yaml:",omitempty"` ExcludeTags []string `` /* 155-byte string literal not displayed */ Skip interface{} `` /* 143-byte string literal not displayed */ Only interface{} `` /* 143-byte string literal not displayed */ Jobs []*Job `json:"jobs,omitempty" mapstructure:"jobs" toml:"jobs,omitempty" yaml:",omitempty"` Commands map[string]*Command `json:"commands,omitempty" mapstructure:"-" toml:"commands,omitempty" yaml:",omitempty"` Scripts map[string]*Script `json:"scripts,omitempty" mapstructure:"-" toml:"scripts,omitempty" yaml:",omitempty"` }
type Job ¶ added in v1.10.0
type Job struct { Name string `json:"name,omitempty" mapstructure:"name" toml:"name,omitempty" yaml:",omitempty"` Run string `` /* 131-byte string literal not displayed */ Script string `` /* 131-byte string literal not displayed */ Runner string `json:"runner,omitempty" mapstructure:"runner" toml:"runner,omitempty" yaml:",omitempty"` Glob []string `` /* 133-byte string literal not displayed */ Root string `json:"root,omitempty" mapstructure:"root" toml:"root,omitempty" yaml:",omitempty"` Files string `json:"files,omitempty" mapstructure:"files" toml:"files,omitempty" yaml:",omitempty"` FailText string `` /* 142-byte string literal not displayed */ Tags []string `json:"tags,omitempty" mapstructure:"tags" toml:"tags,omitempty" yaml:",omitempty"` FileTypes []string `` /* 129-byte string literal not displayed */ Env map[string]string `json:"env,omitempty" mapstructure:"env" toml:"env,omitempty" yaml:",omitempty"` Interactive bool `json:"interactive,omitempty" mapstructure:"interactive" toml:"interactive,omitempty" yaml:",omitempty"` UseStdin bool `` /* 131-byte string literal not displayed */ StageFixed bool `` /* 142-byte string literal not displayed */ Exclude interface{} `` /* 132-byte string literal not displayed */ Skip interface{} `` /* 132-byte string literal not displayed */ Only interface{} `` /* 132-byte string literal not displayed */ Group *Group `json:"group,omitempty" jsonschema:"oneof_required=Run a group" mapstructure:"group" toml:"group,omitempty" yaml:",omitempty"` }
func (*Job) PrintableName ¶ added in v1.10.0
type Remote ¶ added in v1.2.0
type Remote struct { GitURL string `` /* 212-byte string literal not displayed */ Ref string `` /* 148-byte string literal not displayed */ Configs []string `` /* 199-byte string literal not displayed */ Refetch bool `` /* 178-byte string literal not displayed */ RefetchFrequency string `` /* 239-byte string literal not displayed */ }
func (*Remote) Configured ¶ added in v1.2.0
type Script ¶
type Script struct { Runner string `json:"runner,omitempty" mapstructure:"runner" toml:"runner,omitempty" yaml:"runner,omitempty"` Skip interface{} `` /* 136-byte string literal not displayed */ Only interface{} `` /* 136-byte string literal not displayed */ Tags []string `` /* 136-byte string literal not displayed */ Env map[string]string `json:"env,omitempty" mapstructure:"env" toml:"env,omitempty" yaml:",omitempty"` Priority int `json:"priority,omitempty" mapstructure:"priority" toml:"priority,omitempty" yaml:",omitempty"` FailText string `` /* 140-byte string literal not displayed */ Interactive bool `json:"interactive,omitempty" mapstructure:"interactive" toml:"interactive,omitempty" yaml:",omitempty"` UseStdin bool `` /* 140-byte string literal not displayed */ StageFixed bool `` /* 142-byte string literal not displayed */ }
func (Script) ExecutionPriority ¶ added in v1.6.8
Click to show internal directories.
Click to hide internal directories.