Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add new feature to create yaml including jenkins core and plugins and give users a choice to choose #620

Merged
merged 42 commits into from
Jun 15, 2022
Merged
Changes from 1 commit
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
5bd6826
add -tail to job log
jxr98 Jul 3, 2021
6134402
Update job_log.go
jxr98 Jul 17, 2021
cc2f86d
change job log back
jxr98 Jul 18, 2021
2e4aedf
Update go.mod
jxr98 Aug 12, 2021
5368e1a
Update go.mod
jxr98 Aug 15, 2021
34e3bc3
ddd
jxr98 Aug 16, 2021
203bc5a
ss
jxr98 Aug 16, 2021
e6291be
ddd
jxr98 Aug 18, 2021
637afcd
Update go.mod
jxr98 Aug 18, 2021
ca54935
Update go.sum
jxr98 Aug 18, 2021
0e6cff3
Update go.sum
jxr98 Aug 19, 2021
2831065
dsss
jxr98 Aug 20, 2021
b776b58
sss
jxr98 Aug 22, 2021
228a503
sss
jxr98 Aug 22, 2021
408e193
update
jxr98 Aug 22, 2021
b893960
update create_yaml
jxr98 Aug 22, 2021
ca7c442
add support to select when generate yaml
jxr98 Aug 25, 2021
212ec5a
complete create yaml
jxr98 Aug 26, 2021
aeeaadc
change the files back
jxr98 Aug 26, 2021
dceb93d
Update center_list.go
jxr98 Aug 26, 2021
4fd5e5f
Update center_list.go
jxr98 Aug 26, 2021
32d6bda
Create docker_run.go
jxr98 Aug 3, 2021
be44073
Update docker_run.go
jxr98 Aug 3, 2021
8a39635
Update docker_run.go
jxr98 Aug 7, 2021
a70db0e
Update docker_run.go
jxr98 Aug 8, 2021
684bfd7
Update docker_run.go
jxr98 Aug 8, 2021
2db6397
Update docker_run.go
jxr98 Aug 8, 2021
e557536
Update go.mod
jxr98 Aug 11, 2021
2e5fd00
Update docker_run.go
jxr98 Aug 12, 2021
d5fe3dc
Update docker_run.go
jxr98 Aug 12, 2021
f8ae56c
Update go.sum
jxr98 Aug 15, 2021
a9f66c6
Update go.sum
jxr98 Aug 15, 2021
066d443
Update go.mod
jxr98 Aug 15, 2021
641d6d8
Bump github.com/linuxsuren/http-downloader from 0.0.29 to 0.0.33 (#622)
dependabot[bot] Aug 30, 2021
6ff2781
Fix computer launch for windows (#635)
yJunS Sep 22, 2021
ed343be
Run release drafter in the GitHub action (#636)
LinuxSuRen Sep 22, 2021
eaf5594
change create yaml to be a complete function which is upgrade labmouse
jxr98 Sep 28, 2021
b6f6acc
sorry - revert last 5 commits cuz I mistakely includes commits from o…
jxr98 Sep 28, 2021
2e4e8d4
update upgrade_labmouse.go
jxr98 Sep 28, 2021
89817bd
modify
jxr98 Sep 28, 2021
ac35eda
correct some lint mistakes and modify go.mod ad go.sum
jxr98 Sep 28, 2021
fa3cb40
Merge branch 'master' into yaml
LinuxSuRen Jun 15, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
complete create yaml
jxr98 committed Sep 12, 2021
commit 212ec5a8771824c1abe4c1a147165f9c9aa1d38a
9 changes: 5 additions & 4 deletions app/cmd/create_yaml.go
Original file line number Diff line number Diff line change
@@ -37,9 +37,10 @@ func init() {

var createYamlCmd = &cobra.Command{
Use: "create yaml",
Short: "",
Long: "",
Example: ``,
Short: i18n.T("Print a formula which contains all plugins come from current Jenkins server and upgraded plugins which were chosen by user"),
Long: i18n.T("Print a formula which contains all plugins come from current Jenkins server and upgraded plugins which were chosen by user"),
Example: `create yaml --all
create yaml`,
RunE: multipleChoice,
}

@@ -196,7 +197,7 @@ func getLocalJenkinsAndPlugins() (jenkinsVersion string, err error) {
jenkinsVersion = status.Version
return jenkinsVersion, nil
}

//ConvertPluginsToArray convert jenkinsFormula.Plugin to slice for the sake of multiple select
func ConvertPluginsToArray(plugins []jenkinsFormula.Plugin) (pluginArray []string) {
pluginArray = make([]string, 0)
for _, plugin := range plugins {
85 changes: 85 additions & 0 deletions app/cmd/plugin_center.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
package cmd

import (
"encoding/json"
"io/ioutil"
"net/http"
"strings"

"github.com/jedib0t/go-pretty/v6/table"
"github.com/jenkins-zh/jenkins-cli/app/i18n"
"github.com/jenkins-zh/jenkins-cli/client"
"github.com/spf13/cobra"
)

//NewPluginOption consists of four options
type NewPluginOption struct {
Name string `json:"name"`
Version string `json:"gav"`
Date string `json:"releaseTimestamp"`
RequiredCore string `json:"requiredCore"`
}

func init() {
pluginCmd.AddCommand(pluginCenterCmd)
}

var pluginCenterCmd = &cobra.Command{
Use: "center",
Short: i18n.T("Print information about new version of the plugins which are installed"),
Long: i18n.T("Print information about new version of the plugins which are installed"),
Example: `jcli plugin center`,
RunE: func(cmd *cobra.Command, _ []string) (err error) {
jClient := &client.PluginManager{
JenkinsCore: client.JenkinsCore{
RoundTripper: pluginListOption.RoundTripper,
},
}
getCurrentJenkinsAndClient(&(jClient.JenkinsCore))

var plugins *client.InstalledPluginList
t := table.NewWriter()
t.AppendHeader(table.Row{"ShortName", "Version", "Released Date", "Requires Jenkins"})
if plugins, err = jClient.GetPlugins(1); err == nil {
for _, plugin := range plugins.Plugins {
version, date, requireCore, err := searchNewPlugin(plugin.ShortName)
if err != nil {
return err
}
if version != plugin.Version {
t.AppendRow([]interface{}{plugin.ShortName, version, date, requireCore})
t.AppendSeparator()
}
}
}
cmd.Print(t.Render())
return
},
}

func searchNewPlugin(pluginName string) (version string, date string, requireCore string, err error) {
api := "https://plugins.jenkins.io/api/plugin/" + pluginName
resp, err := http.Get(api)
if err != nil {
return "", "", "", err
}
bytes, err := ioutil.ReadAll(resp.Body)
resp.Body.Close()
if err != nil {
return "", "", "", err
}
var newPluginOption NewPluginOption
err = json.Unmarshal(bytes, &newPluginOption)
if err != nil {
return "", "", "", err
}
version = trimToVersionNumber(newPluginOption.Version)
date = newPluginOption.Date[:10]
requireCore = "jenkins " + newPluginOption.RequiredCore
return version, date, requireCore, nil
}

func trimToVersionNumber(content string) string {
startOfVersionNumber := strings.LastIndex(content, ":")
return content[startOfVersionNumber+1:]
}
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
@@ -31,8 +31,8 @@ require (
golang.org/x/net v0.0.0-20210428140749-89ef3d95e781
golang.org/x/sys v0.0.0-20210616094352-59db8d763f22 // indirect
golang.org/x/text v0.3.6
golang.org/x/tools v0.1.5 // indirect
golang.org/x/tools v0.1.6-0.20210802203754-9b21a8868e16 // indirect
gopkg.in/yaml.v2 v2.4.0
honnef.co/go/tools v0.0.1-2020.1.3 // indirect
honnef.co/go/tools v0.2.0 // indirect
moul.io/http2curl v1.0.0
)
15 changes: 14 additions & 1 deletion go.sum
Original file line number Diff line number Diff line change
@@ -259,6 +259,8 @@ github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NH
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A=
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo=
github.com/jedib0t/go-pretty/v6 v6.2.4 h1:wdaj2KHD2W+mz8JgJ/Q6L/T5dB7kyqEFI16eLq7GEmk=
github.com/jedib0t/go-pretty/v6 v6.2.4/go.mod h1:+nE9fyyHGil+PuISTCrp7avEdo6bqoMwqZnuiK2r2a0=
github.com/jenkins-zh/jenkins-cli v0.0.32/go.mod h1:uE1mH9PNITrg0sugv6HXuM/CSddg0zxXoYu3w57I3JY=
github.com/jenkins-zh/jenkins-client v0.0.1 h1:+84X9Ce8sQaYNHIgzsm0a16mb0uYeFOhXM9nDx5dsXk=
github.com/jenkins-zh/jenkins-client v0.0.1/go.mod h1:ICBk7OOoTafVP//f/VfKZ34c0ff8vJwVnOsF9btiMYU=
@@ -595,6 +597,7 @@ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20180816055513-1c9583448a9c/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -703,7 +706,6 @@ golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtn
golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
<<<<<<< HEAD
golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
@@ -728,6 +730,7 @@ golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4f
golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
<<<<<<< HEAD
golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
@@ -740,6 +743,11 @@ golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4f
>>>>>>> update
golang.org/x/tools v0.1.5 h1:ouewzE6p+/VEB31YYnTbEJdi8pFqKp4P4n85vwo3DHA=
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
=======
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
golang.org/x/tools v0.1.6-0.20210802203754-9b21a8868e16 h1:ZC/gVBZl8poJyKzWLxxlsmhayVGosF4mohR35szD5Bg=
golang.org/x/tools v0.1.6-0.20210802203754-9b21a8868e16/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
>>>>>>> complete create yaml
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -901,6 +909,7 @@ honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWh
honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
<<<<<<< HEAD
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
<<<<<<< HEAD
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
@@ -910,6 +919,10 @@ rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
=======
=======
honnef.co/go/tools v0.2.0 h1:ws8AfbgTX3oIczLPNPCu5166oBg9ST2vNs0rcht+mDE=
honnef.co/go/tools v0.2.0/go.mod h1:lPVVZ2BS5TfnjLyizF7o7hv7j9/L+8cZY2hLyjP9cGY=
>>>>>>> complete create yaml
moul.io/http2curl v1.0.0 h1:6XwpyZOYsgZJrU8exnG87ncVkU1FVCcTRpwzOkTDUi8=
moul.io/http2curl v1.0.0/go.mod h1:f6cULg+e4Md/oW1cYmwW4IWQOVl2lGbmCNGOHvzX2kE=
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=