jfrog 获取所有仓库

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()
	}
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值