gojenkins

package
v0.0.0-...-d733991 Latest Latest
Warning

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

Go to latest
Published: Oct 16, 2021 License: Apache-2.0, Apache-2.0 Imports: 21 Imported by: 0

README

Jenkins API Client for Go

GoDoc Go Report Cart Build Status

About

Jenkins is the most popular Open Source Continuous Integration system. This Library will help you interact with Jenkins in a more developer-friendly way.

These are some of the features that are currently implemented:

  • Get information on test-results of completed/failed build
  • Ability to query Nodes, and manipulate them. Start, Stop, set Offline.
  • Ability to query Jobs, and manipulate them.
  • Get Plugins, Builds, Artifacts, Fingerprints
  • Validate Fingerprints of Artifacts
  • Get Current Queue, Cancel Tasks
  • etc. For all methods go to GoDoc Reference.

Installation

go get github.com/bndr/gojenkins

Usage


import "github.com/bndr/gojenkins"

jenkins, err := gojenkins.CreateJenkins("http://localhost:8080/", "admin", "admin").Init()

if err != nil {
  panic("Something Went Wrong")
}

build, err := jenkins.GetJob("job_name")
if err != nil {
  panic("Job Does Not Exist")
}

lastSuccessBuild := build.GetLastSuccessfulBuild()
if err != nil {
  panic("Last SuccessBuild does not exist")
}

duration := lastSuccessBuild.GetDuration()

job, err := jenkins.GetJob("jobname")

if err != nil {
  panic("Job does not exist")
}

job.Rename("SomeotherJobName")

configString := `<?xml version='1.0' encoding='UTF-8'?>
<project>
  <actions/>
  <description></description>
  <keepDependencies>false</keepDependencies>
  <properties/>
  <scm class="hudson.scm.NullSCM"/>
  <canRoam>true</canRoam>
  <disabled>false</disabled>
  <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
  <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
  <triggers class="vector"/>
  <concurrentBuild>false</concurrentBuild>
  <builders/>
  <publishers/>
  <buildWrappers/>
</project>`

j.CreateJob(configString, "someNewJobsName")


API Reference: https://godoc.org/github.com/bndr/gojenkins

Examples

For all of the examples below first create a jenkins object

import "github.com/bndr/gojenkins"

jenkins, _ := gojenkins.CreateJenkins("http://localhost:8080/", "admin", "admin").Init()

or if you don't need authentication:

jenkins, _ := gojenkins.CreateJenkins("http://localhost:8080/").Init()
Check Status of all nodes
nodes := jenkins.GetAllNodes()

for _, node := range nodes {

  // Fetch Node Data
  node.Poll()
	if node.IsOnline() {
		fmt.Println("Node is Online")
	}
}

Get all Builds for specific Job, and check their status
jobName := "someJob"
builds, err := jenkins.GetAllBuildIds(jobName)

if err != nil {
  panic(err)
}

for _, build := range builds {
  buildId := build.Number
  data, err := jenkins.GetBuild(jobName, buildId)

  if err != nil {
    panic(err)
  }

	if "SUCCESS" == data.GetResult() {
		fmt.Println("This build succeeded")
	}
}

// Get Last Successful/Failed/Stable Build for a Job
job, err := jenkins.GetJob("someJob")

if err != nil {
  panic(err)
}

job.GetLastSuccessfulBuild()
job.GetLastStableBuild()

Get Current Tasks in Queue, and the reason why they're in the queue

tasks := jenkins.GetQueue()

for _, task := range tasks {
	fmt.Println(task.GetWhy())
}

Create View and add Jobs to it

view, err := jenkins.CreateView("test_view", gojenkins.LIST_VIEW)

if err != nil {
  panic(err)
}

status, err := view.AddJob("jobName")

if status {
  fmt.Println("Job has been added to view")
}

Get All Artifacts for a Build and Save them to a folder

job, _ := jenkins.GetJob("job")
build, _ := job.GetBuild(1)
artifacts := build.GetArtifacts()

for _, a := range artifacts {
	a.SaveToDir("/tmp")
}

To always get fresh data use the .Poll() method

job, _ := jenkins.GetJob("job")
job.Poll()

build, _ := job.getBuild(1)
build.Poll()

Testing

go test

Contribute

All Contributions are welcome. The todo list is on the bottom of this README. Feel free to send a pull request.

TODO

Although the basic features are implemented there are many optional features that are on the todo list.

  • Kerberos Authentication
  • CLI Tool
  • Rewrite some (all?) iterators with channels

LICENSE

Apache License 2.0

Documentation

Overview

Gojenkins is a Jenkins Client in Go, that exposes the jenkins REST api in a more developer friendly way.

Index

Constants

View Source
const (
	STATUS_FAIL           = "FAIL"
	STATUS_ERROR          = "ERROR"
	STATUS_ABORTED        = "ABORTED"
	STATUS_REGRESSION     = "REGRESSION"
	STATUS_SUCCESS        = "SUCCESS"
	STATUS_FIXED          = "FIXED"
	STATUS_PASSED         = "PASSED"
	RESULT_STATUS_FAILURE = "FAILURE"
	RESULT_STATUS_FAILED  = "FAILED"
	RESULT_STATUS_SKIPPED = "SKIPPED"
	STR_RE_SPLIT_VIEW     = "(.*)/view/([^/]*)/?"
)

Variables

View Source
var (
	Info    *log.Logger
	Warning *log.Logger
	Error   *log.Logger
)

Loggers

View Source
var (
	LIST_VIEW      = "hudson.model.ListView"
	NESTED_VIEW    = "hudson.plugins.nested_view.NestedView"
	MY_VIEW        = "hudson.model.MyView"
	DASHBOARD_VIEW = "hudson.plugins.view.dashboard.Dashboard"
	PIPELINE_VIEW  = "au.com.centrumsystems.hudson.plugin.buildpipeline.BuildPipelineView"
)

Functions

This section is empty.

Types

type APIRequest

type APIRequest struct {
	Method   string
	Endpoint string
	Payload  io.Reader
	Headers  http.Header
	Suffix   string
}

func NewAPIRequest

func NewAPIRequest(method string, endpoint string, payload io.Reader) *APIRequest

func (*APIRequest) SetHeader

func (ar *APIRequest) SetHeader(key string, value string) *APIRequest

type Artifact

type Artifact struct {
	Jenkins  *Jenkins
	Build    *Build
	FileName string
	Path     string
}

Represents an Artifact

func (Artifact) GetData

func (a Artifact) GetData() ([]byte, error)

Get raw byte data of Artifact

func (Artifact) Save

func (a Artifact) Save(path string) (bool, error)

Save artifact to a specific path, using your own filename.

func (Artifact) SaveToDir

func (a Artifact) SaveToDir(dir string) (bool, error)

Save Artifact to directory using Artifact filename.

type BasicAuth

type BasicAuth struct {
	Username string
	Password string
}

Basic Authentication

type Build

type Build struct {
	Raw     *buildResponse
	Job     *Job
	Jenkins *Jenkins
	Base    string
	Depth   int
}

func (*Build) GetActions

func (b *Build) GetActions() []generalObj

func (*Build) GetAllFingerprints

func (b *Build) GetAllFingerprints() []*Fingerprint

func (*Build) GetArtifacts

func (b *Build) GetArtifacts() []Artifact

func (*Build) GetBuildNumber

func (b *Build) GetBuildNumber() int64

func (*Build) GetCauses

func (b *Build) GetCauses() ([]map[string]interface{}, error)

func (*Build) GetConsoleOutput

func (b *Build) GetConsoleOutput() string

func (*Build) GetCulprits

func (b *Build) GetCulprits() []culprit

func (*Build) GetDownstreamBuilds

func (b *Build) GetDownstreamBuilds() ([]*Build, error)

func (*Build) GetDownstreamJobNames

func (b *Build) GetDownstreamJobNames() []string

func (*Build) GetDuration

func (b *Build) GetDuration() int64

func (*Build) GetInjectedEnvVars

func (b *Build) GetInjectedEnvVars() (map[string]string, error)

func (*Build) GetMatrixRuns

func (b *Build) GetMatrixRuns() ([]*Build, error)

func (*Build) GetParameters

func (b *Build) GetParameters() []parameter

func (*Build) GetResult

func (b *Build) GetResult() string

func (*Build) GetResultSet

func (b *Build) GetResultSet() (*testResult, error)

func (*Build) GetRevision

func (b *Build) GetRevision() string

func (*Build) GetRevisionBranch

func (b *Build) GetRevisionBranch() string

func (*Build) GetTimestamp

func (b *Build) GetTimestamp() time.Time

func (*Build) GetUpstreamBuild

func (b *Build) GetUpstreamBuild() (*Build, error)

func (*Build) GetUpstreamBuildNumber

func (b *Build) GetUpstreamBuildNumber() (int64, error)

func (*Build) GetUpstreamJob

func (b *Build) GetUpstreamJob() (*Job, error)

func (*Build) GetUrl

func (b *Build) GetUrl() string

func (*Build) Info

func (b *Build) Info() *buildResponse

Builds

func (*Build) IsGood

func (b *Build) IsGood() bool

func (*Build) IsRunning

func (b *Build) IsRunning() bool

func (*Build) Poll

func (b *Build) Poll(options ...interface{}) (int, error)

Poll for current data. Optional parameter - depth. More about depth here: https://wiki.jenkins-ci.org/display/JENKINS/Remote+access+API

func (*Build) SetDescription

func (b *Build) SetDescription(description string) error

func (*Build) Stop

func (b *Build) Stop() (bool, error)

type Computers

type Computers struct {
	BusyExecutors  int             `json:"busyExecutors"`
	Computers      []*NodeResponse `json:"computer"`
	DisplayName    string          `json:"displayName"`
	TotalExecutors int             `json:"totalExecutors"`
}

type Executor

type Executor struct {
	Raw     *executorResponse
	Jenkins *Jenkins
}

type Fingerprint

type Fingerprint struct {
	Jenkins *Jenkins
	Base    string
	Id      string
	Raw     *fingerPrintResponse
}

func (Fingerprint) GetInfo

func (f Fingerprint) GetInfo() (*fingerPrintResponse, error)

func (Fingerprint) Poll

func (f Fingerprint) Poll() (int, error)

func (Fingerprint) Valid

func (f Fingerprint) Valid() (bool, error)

func (Fingerprint) ValidateForBuild

func (f Fingerprint) ValidateForBuild(filename string, build *Build) (bool, error)

type Jenkins

type Jenkins struct {
	Server    string
	Version   string
	Raw       *executorResponse
	Requester *Requester
}

func CreateJenkins

func CreateJenkins(base string, auth ...interface{}) *Jenkins

Creates a new Jenkins Instance Optional parameters are: username, password After creating an instance call init method.

func (*Jenkins) BuildJob

func (j *Jenkins) BuildJob(name string, options ...interface{}) (int64, error)

Invoke a job. First parameter job name, second parameter is optional Build parameters.

func (*Jenkins) CopyJob

func (j *Jenkins) CopyJob(copyFrom string, newName string) (*Job, error)

Create a copy of a job. First parameter Name of the job to copy from, Second parameter new job name.

func (*Jenkins) CreateJob

func (j *Jenkins) CreateJob(config string, options ...interface{}) (*Job, error)

Create a new job from config File Method takes XML string as first parameter, and if the name is not specified in the config file takes name as string as second parameter e.g jenkins.CreateJob("<config></config>","newJobName")

func (*Jenkins) CreateNode

func (j *Jenkins) CreateNode(name string, numExecutors int, description string, remoteFS string, options ...interface{}) (*Node, error)

Create a new Node Can be JNLPLauncher or SSHLauncher Example : jenkins.CreateNode("nodeName", 1, "Description", "/var/lib/jenkins", map[string]string{"method": "JNLPLauncher"}) By Default JNLPLauncher is created

func (*Jenkins) CreateView

func (j *Jenkins) CreateView(name string, viewType string) (*View, error)

Create View First Parameter - name of the View Second parameter - Type Possible Types:

gojenkins.LIST_VIEW
gojenkins.NESTED_VIEW
gojenkins.MY_VIEW
gojenkins.DASHBOARD_VIEW
gojenkins.PIPELINE_VIEW

Example: jenkins.CreateView("newView",gojenkins.LIST_VIEW)

func (*Jenkins) DeleteJob

func (j *Jenkins) DeleteJob(name string) (bool, error)

Delete a job.

func (*Jenkins) GetAllBuildIds

func (j *Jenkins) GetAllBuildIds(job string) ([]jobBuild, error)

Get all builds Numbers and URLS for a specific job. There are only build IDs here, To get all the other info of the build use jenkins.GetBuild(job,buildNumber) or job.GetBuild(buildNumber)

func (*Jenkins) GetAllJobNames

func (j *Jenkins) GetAllJobNames() ([]job, error)

Get Only Array of Job Names, Color, URL Does not query each single Job.

func (*Jenkins) GetAllJobs

func (j *Jenkins) GetAllJobs() ([]*Job, error)

Get All Possible Job Objects. Each job will be queried.

func (*Jenkins) GetAllNodes

func (j *Jenkins) GetAllNodes() ([]*Node, error)

func (*Jenkins) GetAllViews

func (j *Jenkins) GetAllViews() ([]*View, error)

func (*Jenkins) GetArtifactData

func (j *Jenkins) GetArtifactData(id string) (*fingerPrintResponse, error)

Get Artifact data by Hash

func (*Jenkins) GetBuild

func (j *Jenkins) GetBuild(jobName string, number int64) (*Build, error)

func (*Jenkins) GetJob

func (j *Jenkins) GetJob(id string, parentIDs ...string) (*Job, error)

func (*Jenkins) GetLabel

func (j *Jenkins) GetLabel(name string) (*Label, error)

func (*Jenkins) GetNode

func (j *Jenkins) GetNode(name string) (*Node, error)

func (*Jenkins) GetPlugins

func (j *Jenkins) GetPlugins(depth int) (*Plugins, error)

Returns the list of all plugins installed on the Jenkins server. You can supply depth parameter, to limit how much data is returned.

func (*Jenkins) GetQueue

func (j *Jenkins) GetQueue() (*Queue, error)

Returns a Queue

func (*Jenkins) GetQueueUrl

func (j *Jenkins) GetQueueUrl() string

func (*Jenkins) GetView

func (j *Jenkins) GetView(name string) (*View, error)

func (*Jenkins) HasPlugin

func (j *Jenkins) HasPlugin(name string) (*Plugin, error)

Check if the plugin is installed on the server. Depth level 1 is used. If you need to go deeper, you can use GetPlugins, and iterate through them.

func (*Jenkins) Info

func (j *Jenkins) Info() (*executorResponse, error)

Get Basic Information About Jenkins

func (*Jenkins) Init

func (j *Jenkins) Init() (*Jenkins, error)

Init Method. Should be called after creating a Jenkins Instance. e.g jenkins := CreateJenkins("url").Init() HTTP Client is set here, Connection to jenkins is tested here.

func (*Jenkins) Poll

func (j *Jenkins) Poll() (int, error)

func (*Jenkins) RenameJob

func (j *Jenkins) RenameJob(job string, name string) *Job

Rename a job. First parameter job old name, Second parameter job new name.

func (*Jenkins) ValidateFingerPrint

func (j *Jenkins) ValidateFingerPrint(id string) (bool, error)

Verify Fingerprint

type Job

type Job struct {
	Raw     *jobResponse
	Jenkins *Jenkins
	Base    string
}

func (*Job) Copy

func (j *Job) Copy(destinationName string) (*Job, error)

func (*Job) Create

func (j *Job) Create(config string, qr ...interface{}) (*Job, error)

func (*Job) Delete

func (j *Job) Delete() (bool, error)

func (*Job) Disable

func (j *Job) Disable() (bool, error)

func (*Job) Enable

func (j *Job) Enable() (bool, error)

func (*Job) GetAllBuildIds

func (j *Job) GetAllBuildIds() ([]jobBuild, error)

Returns All Builds with Number and URL

func (*Job) GetBuild

func (j *Job) GetBuild(id int64) (*Build, error)

func (*Job) GetConfig

func (j *Job) GetConfig() (string, error)

func (*Job) GetDescription

func (j *Job) GetDescription() string

func (*Job) GetDetails

func (j *Job) GetDetails() *jobResponse

func (*Job) GetDownstreamJobs

func (j *Job) GetDownstreamJobs() ([]*Job, error)

func (*Job) GetDownstreamJobsMetadata

func (j *Job) GetDownstreamJobsMetadata() []job

func (*Job) GetFirstBuild

func (j *Job) GetFirstBuild() (*Build, error)

func (*Job) GetInnerJob

func (j *Job) GetInnerJob(id string) (*Job, error)

func (*Job) GetInnerJobs

func (j *Job) GetInnerJobs() ([]*Job, error)

func (*Job) GetInnerJobsMetadata

func (j *Job) GetInnerJobsMetadata() []job

func (*Job) GetLastBuild

func (j *Job) GetLastBuild() (*Build, error)

func (*Job) GetLastCompletedBuild

func (j *Job) GetLastCompletedBuild() (*Build, error)

func (*Job) GetLastFailedBuild

func (j *Job) GetLastFailedBuild() (*Build, error)

func (*Job) GetLastStableBuild

func (j *Job) GetLastStableBuild() (*Build, error)

func (*Job) GetLastSuccessfulBuild

func (j *Job) GetLastSuccessfulBuild() (*Build, error)

func (*Job) GetName

func (j *Job) GetName() string

func (*Job) GetParameters

func (j *Job) GetParameters() ([]parameterDefinition, error)

func (*Job) GetUpstreamJobs

func (j *Job) GetUpstreamJobs() ([]*Job, error)

func (*Job) GetUpstreamJobsMetadata

func (j *Job) GetUpstreamJobsMetadata() []job

func (*Job) HasQueuedBuild

func (j *Job) HasQueuedBuild()

func (*Job) History

func (j *Job) History() ([]*history, error)

func (*Job) Invoke

func (j *Job) Invoke(files []string, skipIfRunning bool, params map[string]string, cause string, securityToken string) (bool, error)

func (*Job) InvokeSimple

func (j *Job) InvokeSimple(params map[string]string) (int64, error)

func (*Job) IsEnabled

func (j *Job) IsEnabled() (bool, error)

func (*Job) IsQueued

func (j *Job) IsQueued() (bool, error)

func (*Job) IsRunning

func (j *Job) IsRunning() (bool, error)

func (*Job) Poll

func (j *Job) Poll() (int, error)

func (*Job) Rename

func (j *Job) Rename(name string) (bool, error)

func (*Job) UpdateConfig

func (j *Job) UpdateConfig(config string) error

type Label

type Label struct {
	Raw     *LabelResponse
	Jenkins *Jenkins
	Base    string
}

func (*Label) GetName

func (l *Label) GetName() string

func (*Label) GetNodes

func (l *Label) GetNodes() []LabelNode

func (*Label) Poll

func (l *Label) Poll() (int, error)

type LabelNode

type LabelNode struct {
	NodeName        string `json:"nodeName"`
	NodeDescription string `json:"nodeDescription"`
	NumExecutors    int64  `json:"numExecutors"`
	Mode            string `json:"mode"`
	Class           string `json:"_class"`
}

type LabelResponse

type LabelResponse struct {
	Name           string      `json:"name"`
	Description    string      `json:"description"`
	Nodes          []LabelNode `json:"nodes"`
	Offline        bool        `json:"offline"`
	IdleExecutors  int64       `json:"idleExecutors"`
	BusyExecutors  int64       `json:"busyExecutors"`
	TotalExecutors int64       `json:"totalExecutors"`
}

type MODE

type MODE string
const (
	NORMAL    MODE = "NORMAL"
	EXCLUSIVE      = "EXCLUSIVE"
)

type Node

type Node struct {
	Raw     *NodeResponse
	Jenkins *Jenkins
	Base    string
}

func (*Node) Delete

func (n *Node) Delete() (bool, error)

func (*Node) Disconnect

func (n *Node) Disconnect() (int, error)

func (*Node) GetLogText

func (n *Node) GetLogText() (string, error)

func (*Node) GetName

func (n *Node) GetName() string

func (*Node) Info

func (n *Node) Info() (*NodeResponse, error)

func (*Node) IsIdle

func (n *Node) IsIdle() (bool, error)

func (*Node) IsJnlpAgent

func (n *Node) IsJnlpAgent() (bool, error)

func (*Node) IsOnline

func (n *Node) IsOnline() (bool, error)

func (*Node) IsTemporarilyOffline

func (n *Node) IsTemporarilyOffline() (bool, error)

func (*Node) LaunchNodeBySSH

func (n *Node) LaunchNodeBySSH() (int, error)

func (*Node) Poll

func (n *Node) Poll() (int, error)

func (*Node) SetOffline

func (n *Node) SetOffline() (bool, error)

func (*Node) SetOnline

func (n *Node) SetOnline() (bool, error)

func (*Node) ToggleTemporarilyOffline

func (n *Node) ToggleTemporarilyOffline(options ...interface{}) (bool, error)

type NodeResponse

type NodeResponse struct {
	Actions     []interface{} `json:"actions"`
	DisplayName string        `json:"displayName"`
	Executors   []struct {
		CurrentExecutable struct {
			Number    int    `json:"number"`
			URL       string `json:"url"`
			SubBuilds []struct {
				Abort             bool        `json:"abort"`
				Build             interface{} `json:"build"`
				BuildNumber       int         `json:"buildNumber"`
				Duration          string      `json:"duration"`
				Icon              string      `json:"icon"`
				JobName           string      `json:"jobName"`
				ParentBuildNumber int         `json:"parentBuildNumber"`
				ParentJobName     string      `json:"parentJobName"`
				PhaseName         string      `json:"phaseName"`
				Result            string      `json:"result"`
				Retry             bool        `json:"retry"`
				URL               string      `json:"url"`
			} `json:"subBuilds"`
		} `json:"currentExecutable"`
	} `json:"executors"`
	Icon                string   `json:"icon"`
	IconClassName       string   `json:"iconClassName"`
	Idle                bool     `json:"idle"`
	JnlpAgent           bool     `json:"jnlpAgent"`
	LaunchSupported     bool     `json:"launchSupported"`
	LoadStatistics      struct{} `json:"loadStatistics"`
	ManualLaunchAllowed bool     `json:"manualLaunchAllowed"`
	MonitorData         struct {
		Hudson_NodeMonitors_ArchitectureMonitor interface{} `json:"hudson.node_monitors.ArchitectureMonitor"`
		Hudson_NodeMonitors_ClockMonitor        interface{} `json:"hudson.node_monitors.ClockMonitor"`
		Hudson_NodeMonitors_DiskSpaceMonitor    interface{} `json:"hudson.node_monitors.DiskSpaceMonitor"`
		Hudson_NodeMonitors_ResponseTimeMonitor struct {
			Average int64 `json:"average"`
		} `json:"hudson.node_monitors.ResponseTimeMonitor"`
		Hudson_NodeMonitors_SwapSpaceMonitor      interface{} `json:"hudson.node_monitors.SwapSpaceMonitor"`
		Hudson_NodeMonitors_TemporarySpaceMonitor interface{} `json:"hudson.node_monitors.TemporarySpaceMonitor"`
	} `json:"monitorData"`
	NumExecutors       int64         `json:"numExecutors"`
	Offline            bool          `json:"offline"`
	OfflineCause       struct{}      `json:"offlineCause"`
	OfflineCauseReason string        `json:"offlineCauseReason"`
	OneOffExecutors    []interface{} `json:"oneOffExecutors"`
	TemporarilyOffline bool          `json:"temporarilyOffline"`
}

type Plugin

type Plugin struct {
	Active        bool        `json:"active"`
	BackupVersion interface{} `json:"backupVersion"`
	Bundled       bool        `json:"bundled"`
	Deleted       bool        `json:"deleted"`
	Dependencies  []struct {
		Optional  string `json:"optional"`
		ShortName string `json:"shortname"`
		Version   string `json:"version"`
	} `json:"dependencies"`
	Downgradable        bool   `json:"downgradable"`
	Enabled             bool   `json:"enabled"`
	HasUpdate           bool   `json:"hasUpdate"`
	LongName            string `json:"longName"`
	Pinned              bool   `json:"pinned"`
	ShortName           string `json:"shortName"`
	SupportsDynamicLoad string `json:"supportsDynamicLoad"`
	URL                 string `json:"url"`
	Version             string `json:"version"`
}

type Plugins

type Plugins struct {
	Jenkins *Jenkins
	Raw     *pluginResponse
	Base    string
	Depth   int
}

func (*Plugins) Contains

func (p *Plugins) Contains(name string) *Plugin

func (*Plugins) Count

func (p *Plugins) Count() int

func (*Plugins) Poll

func (p *Plugins) Poll() (int, error)

type Queue

type Queue struct {
	Jenkins *Jenkins
	Raw     *queueResponse
	Base    string
}

func (*Queue) CancelTask

func (q *Queue) CancelTask(id int64) (bool, error)

func (*Queue) GetTaskById

func (q *Queue) GetTaskById(id int64) *Task

func (*Queue) GetTasksForJob

func (q *Queue) GetTasksForJob(name string) []*Task

func (*Queue) Poll

func (q *Queue) Poll() (int, error)

func (*Queue) Tasks

func (q *Queue) Tasks() []*Task

type Requester

type Requester struct {
	Base      string
	BasicAuth *BasicAuth
	Client    *http.Client
	SslVerify bool
}

func (*Requester) Do

func (r *Requester) Do(ar *APIRequest, responseStruct interface{}, options ...interface{}) (*http.Response, error)

func (*Requester) Get

func (r *Requester) Get(endpoint string, responseStruct interface{}, querystring map[string]string) (*http.Response, error)

func (*Requester) GetJSON

func (r *Requester) GetJSON(endpoint string, responseStruct interface{}, querystring map[string]string) (*http.Response, error)

func (*Requester) GetXML

func (r *Requester) GetXML(endpoint string, responseStruct interface{}, querystring map[string]string) (*http.Response, error)

func (*Requester) Post

func (r *Requester) Post(endpoint string, payload io.Reader, responseStruct interface{}, querystring map[string]string) (*http.Response, error)

func (*Requester) PostFiles

func (r *Requester) PostFiles(endpoint string, payload io.Reader, responseStruct interface{}, querystring map[string]string, files []string) (*http.Response, error)

func (*Requester) PostJSON

func (r *Requester) PostJSON(endpoint string, payload io.Reader, responseStruct interface{}, querystring map[string]string) (*http.Response, error)

func (*Requester) PostXML

func (r *Requester) PostXML(endpoint string, xml string, responseStruct interface{}, querystring map[string]string) (*http.Response, error)

func (*Requester) ReadJSONResponse

func (r *Requester) ReadJSONResponse(response *http.Response, responseStruct interface{}) (*http.Response, error)

func (*Requester) ReadRawResponse

func (r *Requester) ReadRawResponse(response *http.Response, responseStruct interface{}) (*http.Response, error)

func (*Requester) SetClient

func (r *Requester) SetClient(client *http.Client) *Requester

func (*Requester) SetCrumb

func (r *Requester) SetCrumb(ar *APIRequest) error

type Task

type Task struct {
	Raw     *taskResponse
	Jenkins *Jenkins
	Queue   *Queue
}

func (*Task) Cancel

func (t *Task) Cancel() (bool, error)

func (*Task) GetCauses

func (t *Task) GetCauses() []map[string]interface{}

func (*Task) GetJob

func (t *Task) GetJob() (*Job, error)

func (*Task) GetParameters

func (t *Task) GetParameters() []parameter

func (*Task) GetWhy

func (t *Task) GetWhy() string

type View

type View struct {
	Raw     *viewResponse
	Jenkins *Jenkins
	Base    string
}

func (*View) AddJob

func (v *View) AddJob(name string) (bool, error)

Returns True if successfully added Job, otherwise false

func (*View) DeleteJob

func (v *View) DeleteJob(name string) (bool, error)

Returns True if successfully deleted Job, otherwise false

func (*View) GetDescription

func (v *View) GetDescription() string

func (*View) GetJobs

func (v *View) GetJobs() []job

func (*View) GetName

func (v *View) GetName() string

func (*View) GetUrl

func (v *View) GetUrl() string

func (*View) Poll

func (v *View) Poll() (int, error)

Jump to

Keyboard shortcuts

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