pluginManager

package
v0.1.3 Latest Latest
Warning

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

Go to latest
Published: Aug 6, 2023 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const (
	UNKNOWN pluginChangedType = iota
	NEW_PLUGIN
	UPDATED_PLUGIN    // used as dependency for some plugins
	NO_CHANGED_PLUGIN // no one rely on it as dep
)
View Source
const JENKINS_PLUGINS_URL = "https://updates.jenkins.io"

Variables

This section is empty.

Functions

This section is empty.

Types

type Plugin

type Plugin struct {
	Name    string
	Version string

	Url                 string
	RequiredCoreVersion string
	Dependencies        map[string]Plugin
	RequiredBy          map[string]string
	Optional            bool // rely on parent plugin
	Warnings            []Warnings
	GITUrl              string

	LatestVersion    string
	InstalledVersion string
}

func NewPluginWithUrl

func NewPluginWithUrl(name string, url string) *Plugin

Create Plugin from name and url

func NewPluginWithVersion

func NewPluginWithVersion(name string, version string) *Plugin

Create Plugin from name and version

func (*Plugin) Download

func (p *Plugin) Download() (string, error)

download plugin hpi file from jenkins update center

func (*Plugin) GetManifestAttrs

func (p *Plugin) GetManifestAttrs() map[string]string

func (*Plugin) LoadDependenciesFromManifest

func (p *Plugin) LoadDependenciesFromManifest() map[string]Plugin

Loads dependencies from hpi file manifest into Plugin struct

type PluginManager

type PluginManager struct {
	Plugins map[string]*Plugin // Main list where we have plugins. We use map to speedup get set find

	UpdatedPlugins map[string]*Plugin // Temp storage. will set this after update/fix deps

	JenkinsSite    jenkinsSite.JenkinsSite    // external. jenkins site main struct
	UpdateCenter   jenkinsSite.UpdateCenter   // external. from jenkins api. plugin latest version + deprecations + deps for plugin from JenkinsSite
	PluginVersions jenkinsSite.PluginVersions // external. from jenkins api. plugins data with versions from JenkinsSite

	// release notes sources
	PluginSite   jenkins.PluginSite // jenkins site which has release notes (last 10)
	GitHubClient github.GitHub      // github client to get release notes

	// file read/write logic
	FileParser parsers.InputParser            // parses txt file into plugin-manager plugins
	FileOutput outputGenerators.FileGenerator // plugin-manager plugins into file content
	// contains filtered or unexported fields
}

func NewPluginManager

func NewPluginManager() PluginManager

func (*PluginManager) AddPlugin added in v0.1.2

func (pm *PluginManager) AddPlugin(plugin *Plugin)

func (*PluginManager) AddPluginWithUrl added in v0.1.2

func (pm *PluginManager) AddPluginWithUrl(pluginName string, url string)

func (*PluginManager) AddPluginWithVersion

func (pm *PluginManager) AddPluginWithVersion(pluginName string, version string)

func (*PluginManager) CleanPlugins added in v0.1.1

func (pm *PluginManager) CleanPlugins()

func (*PluginManager) CleanUpdatedPlugins added in v0.1.1

func (pm *PluginManager) CleanUpdatedPlugins()

func (*PluginManager) DeletePlugin

func (p *PluginManager) DeletePlugin(pluginName string)

will try to delete plugin from list if no one rely as dep on this plugin

func (*PluginManager) FixPluginDependencies

func (pm *PluginManager) FixPluginDependencies() map[string]Plugin

TODO: this function might add new version or new plugin and we dont have data like url + deps etc for it Will get plugin dependencies for plugin list and return result back to PluginManager struct Will replace version of plugin if dep version > current version Used LoadDependenciesFromManifest function as source of versions/plugin so will download hpi files

func (*PluginManager) FixWarnings

func (pm *PluginManager) FixWarnings()

func (*PluginManager) GenerateFileOutputPluginManager added in v0.1.1

func (pm *PluginManager) GenerateFileOutputPluginManager() []byte

func (*PluginManager) GenerateFileOutputUpdatedPlugins added in v0.1.1

func (pm *PluginManager) GenerateFileOutputUpdatedPlugins() []byte

func (*PluginManager) GetCoreVersion

func (pm *PluginManager) GetCoreVersion() string

func (*PluginManager) GetFixedDepsDiff

func (pm *PluginManager) GetFixedDepsDiff() []diffPlugins

Get diff current plugins and updatedPlugins

func (*PluginManager) GetPlugin added in v0.1.3

func (pm *PluginManager) GetPlugin(name string) *Plugin

func (*PluginManager) GetPlugins

func (pm *PluginManager) GetPlugins() map[string]*Plugin

func (*PluginManager) GetUpdatedPlugins added in v0.1.1

func (pm *PluginManager) GetUpdatedPlugins() map[string]*Plugin

func (*PluginManager) LoadDependenciesFromUpdateCenter added in v0.1.2

func (pm *PluginManager) LoadDependenciesFromUpdateCenter(p *Plugin) map[string]Plugin

Loads dependencies from jenkins update center into Plugin struct

func (*PluginManager) LoadPluginData added in v0.1.2

func (pm *PluginManager) LoadPluginData(p *Plugin)

func (*PluginManager) LoadWarnings

func (pm *PluginManager) LoadWarnings()

Load plugins warnings into PluginManager struct

func (*PluginManager) SetCoreVersion

func (pm *PluginManager) SetCoreVersion(newCoreVersion string)

func (*PluginManager) SetFileOutput

func (pm *PluginManager) SetFileOutput(og outputGenerators.FileGenerator)

func (*PluginManager) SetFileParser

func (pm *PluginManager) SetFileParser(parser parsers.InputParser)

func (*PluginManager) SetUpdatedPluginWithVersion added in v0.1.1

func (pm *PluginManager) SetUpdatedPluginWithVersion(pluginName string, pluginVersion string)

type Warnings

type Warnings struct {
	Id      string
	Message string
	Name    string
	// Type     string
	Url      string
	Versions []struct {
		LastVersion string
		Pattern     string
	}
}

https://github.com/emelianrus/jenkins-update-center/blob/master/pkg/updateCenter/updateCenter.go#L97

Jump to

Keyboard shortcuts

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