Documentation ¶
Index ¶
- Constants
- func DeepCopyMap(src map[string][]string, dst map[string][]string) error
- func GetRepoLocalName(repo string) string
- func PathIncludes(s []string, absPath string) bool
- func PluginDetails(c *gin.Context)
- func Register(pluginName string, plugin Plugin)
- func RepoEqualIgnoreSchemaAndLevel(base, compare string) (bool, error)
- func StringInclude(s []string, name string) bool
- type EventFilter
- type GitEvent
- type GitMeta
- type GitMetaContainer
- type GitSyncRunner
- func (g *GitSyncRunner) CalculateDigestForDirectory(filepath string) string
- func (g *GitSyncRunner) CalculateDigestForSingleFile(filepath string) (string, error)
- func (g *GitSyncRunner) Close() error
- func (g *GitSyncRunner) CompareDigestAndNotify()
- func (g *GitSyncRunner) GetRepo() *GitMeta
- func (g *GitSyncRunner) RepoUpdated()
- func (g *GitSyncRunner) StartLoop()
- func (g *GitSyncRunner) SyncRepo(ctx context.Context, onetime bool) bool
- func (g *GitSyncRunner) WatchSync(ctx context.Context)
- type HashResult
- type Plugin
- type PluginContainer
- type PluginMeta
- type RepoSchema
- type Runner
- type SyncManager
Constants ¶
View Source
const DefaultSHA256 = "0000000000000000000000000000000000000000000000000000000000000000"
View Source
const DirectoryWalkTimeout = 30
View Source
const MaxCalculateFiles = 100
View Source
const MaxDelay = 5
View Source
const SyncTimeout = 300 //5 minutes at most
Variables ¶
This section is empty.
Functions ¶
func GetRepoLocalName ¶
func PathIncludes ¶
func PluginDetails ¶
func StringInclude ¶
Types ¶
type EventFilter ¶
type EventFilter interface {
StartLoop()
}
type GitMeta ¶
type GitMeta struct { //Git repo to watch Repo string //Git branch Branch string //Whether to checkout submodules SubModules string //Git repo schema, https or ssh Schema RepoSchema //Files to watch, relatively WatchFiles []string }
type GitMetaContainer ¶
type GitSyncRunner ¶
type GitSyncRunner struct { ParentFolder string Meta *GitMeta EventChannel chan<- *GitEvent CloseChannel chan bool SyncInterval int WebhookEndpoint string // contains filtered or unexported fields }
func NewGitSyncRunner ¶
func (*GitSyncRunner) CalculateDigestForDirectory ¶
func (g *GitSyncRunner) CalculateDigestForDirectory(filepath string) string
func (*GitSyncRunner) CalculateDigestForSingleFile ¶
func (g *GitSyncRunner) CalculateDigestForSingleFile(filepath string) (string, error)
func (*GitSyncRunner) Close ¶
func (g *GitSyncRunner) Close() error
func (*GitSyncRunner) CompareDigestAndNotify ¶
func (g *GitSyncRunner) CompareDigestAndNotify()
func (*GitSyncRunner) GetRepo ¶
func (g *GitSyncRunner) GetRepo() *GitMeta
func (*GitSyncRunner) RepoUpdated ¶
func (g *GitSyncRunner) RepoUpdated()
func (*GitSyncRunner) StartLoop ¶
func (g *GitSyncRunner) StartLoop()
func (*GitSyncRunner) SyncRepo ¶
func (g *GitSyncRunner) SyncRepo(ctx context.Context, onetime bool) bool
func (*GitSyncRunner) WatchSync ¶
func (g *GitSyncRunner) WatchSync(ctx context.Context)
type HashResult ¶
type HashResult struct {
// contains filtered or unexported fields
}
type Plugin ¶
type Plugin interface { GetMeta() *PluginMeta Load(files map[string][]string) error RegisterEndpoints(group *gin.RouterGroup) }
type PluginContainer ¶
type PluginContainer struct { Plugin Plugin Ready bool Channel chan *GitEvent FlushChannel chan int Logger *zap.Logger // contains filtered or unexported fields }
func NewPluginContainer ¶
func NewPluginContainer(p Plugin) *PluginContainer
func (*PluginContainer) AddEvents ¶
func (p *PluginContainer) AddEvents(repo, filename string)
func (*PluginContainer) Close ¶
func (p *PluginContainer) Close()
func (*PluginContainer) FlushEvents ¶
func (p *PluginContainer) FlushEvents() map[string][]string
func (*PluginContainer) StartLoop ¶
func (p *PluginContainer) StartLoop()
type PluginMeta ¶
type RepoSchema ¶
type RepoSchema string
const ( Https RepoSchema = "https" Ssh RepoSchema = "ssh" )
type SyncManager ¶
type SyncManager struct { SyncInterval int Runners map[string]Runner // contains filtered or unexported fields }
func NewSyncManager ¶
func NewSyncManager(routerGroup *gin.RouterGroup) (*SyncManager, error)
func (*SyncManager) Close ¶
func (s *SyncManager) Close()
func (*SyncManager) GetBaseFolder ¶
func (s *SyncManager) GetBaseFolder() string
func (*SyncManager) GetEnabledPlugins ¶
func (s *SyncManager) GetEnabledPlugins() map[string]*PluginContainer
func (*SyncManager) Initialize ¶
func (s *SyncManager) Initialize() error
func (*SyncManager) OnePluginInitialized ¶
func (s *SyncManager) OnePluginInitialized() bool
func (*SyncManager) StartLoop ¶
func (s *SyncManager) StartLoop()
Source Files ¶
Click to show internal directories.
Click to hide internal directories.