概述
package main
import (
"github.com/jfrog/jfrog-client-go/artifactory"
"github.com/jfrog/jfrog-client-go/artifactory/auth"
"github.com/jfrog/jfrog-client-go/artifactory/services"
"github.com/jfrog/jfrog-client-go/config"
"github.com/jfrog/jfrog-client-go/utils/log"
auth2 "github.com/jfrog/jfrog-client-go/auth"
"os"
"time"
"fmt"
)
var rtDetails auth2.ServiceDetails
func init() {
var file *os.File
log.SetLogger(log.NewLogger(log.INFO, file))
}
func Init() error{
rtDetails =auth.NewArtifactoryDetails()
rtDetails.SetUrl("http://localhost:8081/artifactory/")
rtDetails.SetUser("admin")
rtDetails.SetPassword("password")
return nil
}
func main() {
Init()
serviceConfig, err := config.NewConfigBuilder().
SetServiceDetails(rtDetails).
// Optionally overwrite the default HTTP timeout, which is set to 30 seconds.
SetHttpTimeout(180 * time.Second).
// Optionally overwrite the default HTTP retries, which is set to 3.
SetHttpRetries(8).
Build()
if err != nil {
fmt.Println(err)
}
rtManager, err := artifactory.New(serviceConfig)
ping, err := rtManager.Ping()
if err != nil {
return
}
log.Output("artifactory connect is ", string(ping))
params := services.NewRepositoriesFilterParams()
params.PackageType = "Docker"
params.RepoType = "LOCAL"
reposDetail, err := rtManager.GetAllRepositoriesFiltered(params)
//reposDetail, err := rtManager.GetAllRepositories()
if nil != err{
return
}
for _, v := range *reposDetail{
fmt.Println(v)
v.GetRepoType()
}
}
结果如下:
通过GetAllRepositoriesFiltered接口过滤查询所有docker的私有仓库。里面有一个hello_world 的docker仓库。类型为LOCAL。
该返回结果的定义为:
type RepositoryDetails struct {
Key string//仓库名字
Rclass string
Type string//LCOAL
Description string
Url string//路径
PackageType string//docker类型等
}
转成JSON格式:
package main
import (
"github.com/jfrog/jfrog-client-go/artifactory"
"github.com/jfrog/jfrog-client-go/artifactory/auth"
"github.com/jfrog/jfrog-client-go/artifactory/services"
"github.com/jfrog/jfrog-client-go/config"
"github.com/jfrog/jfrog-client-go/utils/log"
auth2 "github.com/jfrog/jfrog-client-go/auth"
"os"
"time"
"fmt"
"encoding/json"
)
var rtDetails auth2.ServiceDetails
func init() {
var file *os.File
log.SetLogger(log.NewLogger(log.INFO, file))
}
func Init() error{
rtDetails =auth.NewArtifactoryDetails()
rtDetails.SetUrl("http://localhost:8081/artifactory/")
rtDetails.SetUser("admin")
rtDetails.SetPassword("password")
return nil
}
func main() {
Init()
serviceConfig, err := config.NewConfigBuilder().
SetServiceDetails(rtDetails).
// Optionally overwrite the default HTTP timeout, which is set to 30 seconds.
SetHttpTimeout(180 * time.Second).
// Optionally overwrite the default HTTP retries, which is set to 3.
SetHttpRetries(8).
Build()
if err != nil {
fmt.Println(err)
}
rtManager, err := artifactory.New(serviceConfig)
ping, err := rtManager.Ping()
if err != nil {
return
}
log.Output("artifactory connect is ", string(ping))
params := services.NewRepositoriesFilterParams()
params.PackageType = "Docker"
params.RepoType = "LOCAL"
reposDetail, err := rtManager.GetAllRepositoriesFiltered(params)
//reposDetail, err := rtManager.GetAllRepositories()
if nil != err{
return
}
for _, v := range *reposDetail{
data , err := json.Marshal(v)
if nil == err {
fmt.Println(string(data))
}
v.GetRepoType()
}
}
最后
以上就是安详香水为你收集整理的jfrog 获取所有仓库的全部内容,希望文章能够帮你解决jfrog 获取所有仓库所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复