Перейти к содержанию

Реестр пакетов Go


Для работы с модулями Go необходимо установить язык программирования Go.

Скачайте пакет с официального сайта или установите с помощью команды:

sudo apt install golang-go

Для аутентификации вам потребуется создать в профиле транспортный токен, сохраните его для дальнейшей работы.

Базовый реестр GitFlic

Скачивание и установка пакета

В документации ниже встречается атрибут <домен_gitflic> На его место необходимо указать домен, в зависимости от версии:

  • для gitflic.ru go.gitflic.ru

  • для self-hosted localhost:8080

Домен и порт для self-hosted версии может отличаться.

Значение атрибута url зависит от уровня доступа проекта:

Уровень URL
Проект {домен_gitflic}/{ownerAlias}/{projectAlias}
Компания {домен_gitflic}/{companyAlias}/{projectAlias}
Команда {домен_gitflic}/{teamAlias}/{projectAlias}
Переменная в URL Описание
ownerAlias Псевдоним владельца проекта
projectAlias Псевдоним проекта
companyAlias Псевдоним компании
teamAlias Псевдоним команды
  • Отключите проксирование пакетов:
export GOPROXY=direct
  • Убедитесь, что ваш репозиторий является публичным, или настройте Git для использования SSH вместо HTTPS

  • Загрузите модуль из репозитория с помощью команды go get:

go mod init mynewproject
go get <выбранный url репозитория>
  • Также вы можете импортировать модуль непосредственно в вашем коде:
package main

import (
    "fmt"

    "<выбранный url репозитория>"
)

func main() {
    fmt.Println("Hello, World!")
}

Публикация пакета

Создайте репозиторий на GitFlic и загрузите туда ваш модуль. Вы можете сделать это стандартно, через терминал, или воспользуйтесь загрузкой файлов через веб-интерфейс.

Go

Репозиторий реестра Go

Репозитории реестра Go работают как удаленный прокси-сервер хранящий модули.

Функционал доступен в Enterprise и Atlas версии

Значение атрибута url зависит от уровня доступа проекта:

Уровень URL
Проект {домен_gitflic}/project/{ownerAlias}/{projectAlias}/package/{repositoryName}/-/go
Компания {домен_gitflic}/company/{companyAlias}/package/{repositoryName}/-/go
Инстанс {домен_gitflic}/registry/package/{repositoryName}/-/go
Переменная в URL Описание
ownerAlias Псевдоним владельца проекта
projectAlias Псевдоним проекта
companyAlias Псевдоним компании
repositoryName Псевдоним репозитория реестра

Скачивание модулей

Для загрузки модулей из gitflic настройте подключение к репозиторию

GOPROXY = "<username>:<transport_token>@{домен_gitflic}/project/{ownerAlias}/{projectAlias}/package/{repositoryName}/-/go,direct"

Для установки пакетов указанных в go.mod используйте команду:

go mod tidy

Для установки конкретного пакета используйте:

go get <package_name>@<package_version>

Публикация модулей

В локальных репозиториях реестра публикуются собранные архивы модулей.

Для публикации используйте команду:

   curl --user <username>:<transport_token> \
        --upload-file <path/to/file> \
        https://{домен_gitflic}/project/{ownerAlias}/{projectAlias}/package/{repositoryName}/-/go/upload

Или загрузите пакет вручную через веб-интерфейс.