Skip to content

Latest commit

 

History

History
96 lines (67 loc) · 2.9 KB

README.md

File metadata and controls

96 lines (67 loc) · 2.9 KB

craas-go: Go SDK for Container Registry Service

Go.dev reference Go Report Card Coverage Status

Package craas-go provides Go SDK to work with the Selectel Container Registry Service.

Documentation

The Go library documentation is available at go.dev.

What this library is capable of

You can use this library to work with the following objects of the Selectel Container Registry Service:

Getting started

Installation

You can install needed craas-go packages via go get command:

go get github.com/selectel/craas-go/pkg/v1/registry

Authentication

To work with the Selectel Container Registry API you first need to:

Endpoints

Selectel Container Registry Service currently has the following API endpoints:

URL
https://cr.selcloud.ru/api/v1

Usage example

package main

import (
	"context"
	"fmt"
	"log"

	v1 "github.com/selectel/craas-go/pkg"
	"github.com/selectel/craas-go/pkg/v1/registry"
	"github.com/selectel/craas-go/pkg/v1/repository"
)

func main() {
	// Token to work with Selectel Cloud project.
	token := "gAAAAABeVNzu-..."

	// CRaaS endpoint to work with.
	endpoint := "https://cr.selcloud.ru/api/v1"

	// Create a new CRaaS client.
	crClient := v1.NewCRaaSClientV1(token, endpoint)

	// Prepare empty context.
	ctx := context.Background()

	// Create a new registry.
	createdRegistry, _, err := registry.Create(ctx, crClient, "my-registry")
	if err != nil {
		log.Fatal(err)
	}

	// Print the registry fields.
	fmt.Printf("Created registry: %+v", createdRegistry)

	// Get a list of registry repositories.
	repositories, _, err := repository.ListRepositories(ctx, crClient, createdRegistry.ID)
	if err != nil {
		log.Fatal(err)
	}

	// Print the repository fields.
	for _, repo := range repositories {
		fmt.Printf("Repository: %+v", repo)
	}
}