Страница 3 из 4
Go: модули
Добавлено: 18 фев 2024, 00:00
Olej
Olej писал(а): ↑17 фев 2024, 22:37
И тут жестокий облом:
Olej писал(а): ↑17 фев 2024, 22:46
Генерирую токен
Теперь обновляю сетевой GitHub указывая
строку токена вместо пароля:
Код: Выделить всё
olej@R420:~/2024/Go/git/inout/inout$ git push
Username for 'https://github.com': olej-tsil-51
Password for 'https://olej-tsil-51@github.com':
Перечисление объектов: 8, готово.
Подсчет объектов: 100% (8/8), готово.
При сжатии изменений используется до 40 потоков
Сжатие объектов: 100% (7/7), готово.
Запись объектов: 100% (7/7), 1.34 КиБ | 1.34 МиБ/с, готово.
Всего 7 (изменений 0), повторно использовано 0 (изменений 0), повторно использовано пакетов 0
To https://github.com/olej-tsil-51/inout
01bb8ec..6b5d09a main -> main
Вот теперь комит зафиксирован в сети:
Код: Выделить всё
olej@R420:~/2024/Go/git/inout/inout$ git log
commit 6b5d09a217aac4ed6dd2a8c363cad377420ae092 (HEAD -> main, origin/main, origin/HEAD)
Author: oleg-tsiliuric <olej.tsil@gmail.com>
Date: Sat Feb 17 19:43:31 2024 +0200
Сб 17 фев 2024 19:43:07 EET
commit 01bb8ec1c18cdfe1d5134502e71b0ed435cd75c8
Author: Oleg Tsiliuric <o.tsiliuric@yandex.ru>
Date: Sat Feb 17 19:19:34 2024 +0200
Initial commit
И из такого модуля можно было бы импортировать в "import" Go кода пакеты и их методы ... если бы они там были
, но нас пока это не занимает, пока о том как формируется пользовательски модуль.
Go: модули
Добавлено: 18 фев 2024, 03:32
Olej
Olej писал(а): ↑17 фев 2024, 21:12
Теперь смотрю как это работает с модулями в сетевых GIT-репозиториях + последующий импорт из них...
Про сетевые репозитории, логины в них и т.д. - всё это было в теме:
использование GIT ... но было последний раз давно, 3 года назад (так что и тему еле нашёл - надо её подымать в форуме
) ... теперь нужно всё (начиная с логинов) вспоминать.
А интересует меня это всё на предмет: как
другие сетевые репозитории (отличные от GitHub) использовать с модулями GoLang ... можно ли
И вплоть до своих собственных (или корпоративных) репозиториев GIT, развёрнутых в сети
Go: модули
Добавлено: 18 фев 2024, 16:17
Olej
Olej писал(а): ↑18 фев 2024, 00:00
Теперь обновляю сетевой GitHub указывая строку токена вместо пароля:
Olej писал(а): ↑17 фев 2024, 21:12
Теперь смотрю как это работает с модулями в сетевых GIT-репозиториях + последующий импорт из них...
Но на GitHub свет клином не сошёлся ... есть ещё, как минимум GitLab и Bitbucket - из числа широко используемых.
Go: модули
Добавлено: 18 фев 2024, 20:48
Olej
Olej писал(а): ↑17 фев 2024, 21:12
Теперь смотрю как это работает с модулями в сетевых GIT-репозиториях
GitHub :
Было:
Код: Выделить всё
olej@R420:~/2024/Go/github/inout$ ls -o
итого 40
-rw-rw-r-- 1 olej 215 фев 13 01:28 inputf.go
-rw-rw-r-- 1 olej 296 фев 13 01:28 inputr.go
-rw-rw-r-- 1 olej 387 фев 13 01:54 inputs2.go
-rw-rw-r-- 1 olej 265 фев 13 01:28 inputs.go
-rw-rw-r-- 1 olej 18092 фев 17 19:25 LICENSE
-rw-r--r-- 1 olej 103 фев 13 01:48 Makefile
Прописывю описание модуля:
Код: Выделить всё
olej@R420:~/2024/Go/github/inout$ git remote show
origin
olej@R420:~/2024/Go/github/inout$ git remote get-url origin
https://github.com/olej-tsil-51/inout
Код: Выделить всё
olej@R420:~/2024/Go/github/inout$ go mod init github.com/olej-tsil-51/inout
go: creating new go.mod: module github.com/olej-tsil-51/inout
go: to add module requirements and sums:
go mod tidy
Стало:
Код: Выделить всё
olej@R420:~/2024/Go/github/inout$ ls -o
итого 44
-rw-rw-r-- 1 olej 48 фев 18 19:29 go.mod
-rw-rw-r-- 1 olej 215 фев 13 01:28 inputf.go
-rw-rw-r-- 1 olej 296 фев 13 01:28 inputr.go
-rw-rw-r-- 1 olej 387 фев 13 01:54 inputs2.go
-rw-rw-r-- 1 olej 265 фев 13 01:28 inputs.go
-rw-rw-r-- 1 olej 18092 фев 17 19:25 LICENSE
-rw-r--r-- 1 olej 103 фев 13 01:48 Makefile
Этот модуль ничего не экспортирует из сетевых репозиториев, поэтому ему go mod tidy бесполезно...
Go: модули
Добавлено: 18 фев 2024, 20:53
Olej
Olej писал(а): ↑18 фев 2024, 20:48
Этот модуль ничего не экспортирует из сетевых репозиториев, поэтому ему go mod tidy бесполезно...
Обновить локальный GIT репозиторий:
Код: Выделить всё
olej@R420:~/2024/Go/github/inout$ git status
Текущая ветка: main
Эта ветка соответствует «origin/main».
Неотслеживаемые файлы:
(используйте «git add <файл>...», чтобы добавить в то, что будет включено в коммит)
go.mod
индекс пуст, но есть неотслеживаемые файлы
(используйте «git add», чтобы проиндексировать их)
Код: Выделить всё
olej@R420:~/2024/Go/github/inout$ git add go.mod
Код: Выделить всё
olej@R420:~/2024/Go/github/inout$ git commit -m 'module: 18 фев 2024'
[main 37936fe] module: 18 фев 2024
1 file changed, 3 insertions(+)
create mode 100644 go.mod
Код: Выделить всё
olej@R420:~/2024/Go/github/inout$ git status
Текущая ветка: main
Ваша ветка опережает «origin/main» на 1 коммит.
(используйте «git push», чтобы опубликовать ваши локальные коммиты)
нечего коммитить, нет изменений в рабочем каталоге
И отправка на GitHub:
Код: Выделить всё
olej@R420:~/2024/Go/github/inout$ git push
Username for 'https://github.com': olej-tsil-51
Password for 'https://olej-tsil-51@github.com': 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
Перечисление объектов: 4, готово.
Подсчет объектов: 100% (4/4), готово.
При сжатии изменений используется до 40 потоков
Сжатие объектов: 100% (2/2), готово.
Запись объектов: 100% (3/3), 329 байтов | 329.00 КиБ/с, готово.
Всего 3 (изменений 1), повторно использовано 0 (изменений 0), повторно использовано пакетов 0
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To https://github.com/olej-tsil-51/inout
6b5d09a..37936fe main -> main
Откуда брать
токен (или
токены), которые вводим
вместо пароля (на запрос), описано здесь:
GitHub модулей Go.
И репозиторий GitHub (его WEB интерфейс) принял желаемый вид:
- Снимок экрана от 2024-02-18 19-43-11.png (146.83 КБ) 183 просмотра
Go: модули
Добавлено: 18 фев 2024, 21:03
Olej
Olej писал(а): ↑18 фев 2024, 16:17
Но на GitHub свет клином не сошёлся ... есть ещё, как минимум GitLab и Bitbucket
GitLab :
Код: Выделить всё
olej@R420:~/2024/Go/gitlab/inout$ pwd
/home/olej/2024/Go/gitlab/inout
olej@R420:~/2024/Go/gitlab/inout$ ls -o
итого 28
-rw-rw-r-- 1 olej 215 фев 13 01:28 inputf.go
-rw-rw-r-- 1 olej 296 фев 13 01:28 inputr.go
-rw-rw-r-- 1 olej 387 фев 13 01:54 inputs2.go
-rw-rw-r-- 1 olej 265 фев 13 01:28 inputs.go
-rw-r--r-- 1 olej 103 фев 13 01:48 Makefile
-rw-rw-r-- 1 olej 6159 фев 18 04:35 README.md
Код: Выделить всё
olej@R420:~/2024/Go/gitlab/inout$ git remote
origin
olej@R420:~/2024/Go/gitlab/inout$ git remote get-url origin
https://gitlab.com/go1195807/inout.git
Код: Выделить всё
olej@R420:~/2024/Go/gitlab/inout$ go mod init gitlab.com/go1195807/inout.git
go: creating new go.mod: module gitlab.com/go1195807/inout.git
go: to add module requirements and sums:
go mod tidy
Вот добавилось:
Код: Выделить всё
olej@R420:~/2024/Go/gitlab/inout$ ls -o
итого 32
-rw-rw-r-- 1 olej 49 фев 18 19:59 go.mod
-rw-rw-r-- 1 olej 215 фев 13 01:28 inputf.go
-rw-rw-r-- 1 olej 296 фев 13 01:28 inputr.go
-rw-rw-r-- 1 olej 387 фев 13 01:54 inputs2.go
-rw-rw-r-- 1 olej 265 фев 13 01:28 inputs.go
-rw-r--r-- 1 olej 103 фев 13 01:48 Makefile
-rw-rw-r-- 1 olej 6159 фев 18 04:35 README.md
Код: Выделить всё
olej@R420:~/2024/Go/gitlab/inout$ cat go.mod
module gitlab.com/go1195807/inout.git
go 1.22.0
Go: модули
Добавлено: 18 фев 2024, 21:07
Olej
Olej писал(а): ↑18 фев 2024, 21:03
Вот добавилось:
Теперь включить это под контроль локалного GIT:
Код: Выделить всё
olej@R420:~/2024/Go/gitlab/inout$ git status
Текущая ветка: main
Эта ветка соответствует «origin/main».
Неотслеживаемые файлы:
(используйте «git add <файл>...», чтобы добавить в то, что будет включено в коммит)
go.mod
индекс пуст, но есть неотслеживаемые файлы
(используйте «git add», чтобы проиндексировать их)
Код: Выделить всё
olej@R420:~/2024/Go/gitlab/inout$ git add go.mod
Код: Выделить всё
olej@R420:~/2024/Go/gitlab/inout$ git status
Текущая ветка: main
Эта ветка соответствует «origin/main».
Изменения, которые будут включены в коммит:
(используйте «git restore --staged <файл>...», чтобы убрать из индекса)
новый файл: go.mod
Код: Выделить всё
olej@R420:~/2024/Go/gitlab/inout$ git commit -m 'module: 18 фев 2024'
[main 1398d64] module: 18 фев 2024
1 file changed, 3 insertions(+)
create mode 100644 go.mod
И отправить на GitLab:
Код: Выделить всё
olej@R420:~/2024/Go/gitlab/inout$ git push
Username for 'https://gitlab.com': olej.tsil
Password for 'https://olej.tsil@gitlab.com':
Перечисление объектов: 4, готово.
Подсчет объектов: 100% (4/4), готово.
При сжатии изменений используется до 40 потоков
Сжатие объектов: 100% (2/2), готово.
Запись объектов: 100% (3/3), 327 байтов | 327.00 КиБ/с, готово.
Всего 3 (изменений 1), повторно использовано 0 (изменений 0), повторно использовано пакетов 0
To https://gitlab.com/go1195807/inout.git
a5329b9..1398d64 main -> main
GitLab у меня зарегистрирован по аккаунту Google
О том как
получить/создать пароль к GitLab написано здесь:
удалённые GIT репозитории
И выглядит (WEB-интерфейс) репозиторий на GitLab теперь так:
- Снимок экрана от 2024-02-18 20-16-17.png (129.41 КБ) 179 просмотров
Go: модули
Добавлено: 18 фев 2024, 21:45
Olej
Olej писал(а): ↑18 фев 2024, 16:17
Но на GitHub свет клином не сошёлся ... есть ещё, как минимум GitLab и Bitbucket - из числа широко используемых.
Bitbucket :
Код: Выделить всё
olej@R420:~/2024/Go/bitbucket/inout$ pwd
/home/olej/2024/Go/bitbucket/inout
Код: Выделить всё
olej@R420:~/2024/Go/bitbucket/inout$ ls -o
итого 24
-rw-rw-r-- 1 olej 215 фев 13 01:28 inputf.go
-rw-rw-r-- 1 olej 296 фев 13 01:28 inputr.go
-rw-rw-r-- 1 olej 387 фев 13 01:54 inputs2.go
-rw-rw-r-- 1 olej 265 фев 13 01:28 inputs.go
-rw-r--r-- 1 olej 103 фев 13 01:48 Makefile
-rw-rw-r-- 1 olej 565 фев 18 03:34 README.md
Добавляю описание модуля:
Код: Выделить всё
olej@R420:~/2024/Go/bitbucket/inout$ git remote
origin
Код: Выделить всё
olej@R420:~/2024/Go/bitbucket/inout$ git remote get-url origin
https://oleg-tsiliuric@bitbucket.org/oleg-tsiliuric/inout.git
В большинстве случаев, когда у нас 1 сетевой репозиторий, можер сразу так:
Код: Выделить всё
olej@R420:~/2024/Go/bitbucket/inout$ git remote get-url $(git remote)
https://oleg-tsiliuric@bitbucket.org/oleg-tsiliuric/inout.git
Добавили описание модуля:
Код: Выделить всё
olej@R420:~/2024/Go/bitbucket/inout$ go mod init bitbucket.org/oleg-tsiliuric/inout.git
go: creating new go.mod: module bitbucket.org/oleg-tsiliuric/inout.git
go: to add module requirements and sums:
go mod tidy
Код: Выделить всё
olej@R420:~/2024/Go/bitbucket/inout$ ls -o
итого 28
-rw-rw-r-- 1 olej 57 фев 18 20:31 go.mod
-rw-rw-r-- 1 olej 215 фев 13 01:28 inputf.go
-rw-rw-r-- 1 olej 296 фев 13 01:28 inputr.go
-rw-rw-r-- 1 olej 387 фев 13 01:54 inputs2.go
-rw-rw-r-- 1 olej 265 фев 13 01:28 inputs.go
-rw-r--r-- 1 olej 103 фев 13 01:48 Makefile
-rw-rw-r-- 1 olej 565 фев 18 03:34 README.md
Код: Выделить всё
olej@R420:~/2024/Go/bitbucket/inout$ cat go.mod
module bitbucket.org/oleg-tsiliuric/inout.git
go 1.22.0
Завели его под контроль локального GIT:
Код: Выделить всё
olej@R420:~/2024/Go/bitbucket/inout$ git status
Текущая ветка: main
Эта ветка соответствует «origin/main».
Неотслеживаемые файлы:
(используйте «git add <файл>...», чтобы добавить в то, что будет включено в коммит)
go.mod
индекс пуст, но есть неотслеживаемые файлы
(используйте «git add», чтобы проиндексировать их)
Код: Выделить всё
olej@R420:~/2024/Go/bitbucket/inout$ git add go.mod
Код: Выделить всё
olej@R420:~/2024/Go/bitbucket/inout$ git status
Текущая ветка: main
Эта ветка соответствует «origin/main».
Изменения, которые будут включены в коммит:
(используйте «git restore --staged <файл>...», чтобы убрать из индекса)
новый файл: go.mod
Зафиксировали:
Код: Выделить всё
olej@R420:~/2024/Go/bitbucket/inout$ git commit -m 'module: 18 фев 2024'
[main 55c512f] module: 18 фев 2024
1 file changed, 3 insertions(+)
create mode 100644 go.mod
Код: Выделить всё
olej@R420:~/2024/Go/bitbucket/inout$ git log
commit 55c512f64aa7fc3305009987453bbeb0e59c0450 (HEAD -> main)
Author: oleg-tsiliuric <olej.tsil@gmail.com>
Date: Sun Feb 18 20:36:33 2024 +0200
module: 18 фев 2024
commit 3bb08931a735f83b6892710ab4228d0d32242959 (origin/main, origin/HEAD)
Author: oleg-tsiliuric <olej.tsil@gmail.com>
Date: Sun Feb 18 03:58:35 2024 +0200
Вс 18 фев 2024 03:57:44
commit 91ec45a507eb77f6f5912ea96a677e26f6618647
Author: Олег Цилюрик <olej.tsil@gmail.com>
Date: Sun Feb 18 01:33:01 2024 +0000
Initial commit
Go: модули
Добавлено: 18 фев 2024, 22:18
Olej
Olej писал(а): ↑18 фев 2024, 21:45
Зафиксировали:
И отправляем его (синхронизация) на Bitbucket:
Код: Выделить всё
olej@R420:~/2024/Go/bitbucket/inout$ git push
Password for 'https://oleg-tsiliuric@bitbucket.org':
Перечисление объектов: 4, готово.
Подсчет объектов: 100% (4/4), готово.
При сжатии изменений используется до 40 потоков
Сжатие объектов: 100% (3/3), готово.
Запись объектов: 100% (3/3), 334 байта | 334.00 КиБ/с, готово.
Всего 3 (изменений 1), повторно использовано 0 (изменений 0), повторно использовано пакетов 0
To https://bitbucket.org/oleg-tsiliuric/inout.git
3bb0893..55c512f main -> main
Обращаем внимание: в этом случае он не спрашивает имя пользователя (он его знает), только пароль.
У меня логин Bitbucket сделан через аккаунт Google.
О том как
получить/создать пароль к Bitbucket написано здесь:
удалённые GIT репозитории.
И WEB-интерфейс репозитория Bitbucket приобретает такой вот вид:
Go: модули
Добавлено: 19 фев 2024, 02:39
Olej
Всё что до сих пор - это было то как создать и описать модуль.
Ну и как использовать готовые модули в качестве требуемого импорта.
Импорт затребованный произаодится сюла:
Код: Выделить всё
olej@R420:~$ ls `go env GOPATH`/pkg/mod/
cache dmitri.shuralyov.com github.com golang.org google.golang.org go.opentelemetry.io go.uber.org k8s.io rsc.io sourcegraph.com
cloud.google.com gerace.dev go.etcd.io golang.zx2c4.com go.opencensus.io@v0.23.0 gopkg.in honnef.co launchpad.net sigs.k8s.io
Вот например из репозиторев GitHub:
Код: Выделить всё
olej@R420:~$ ls `go env GOPATH`/pkg/mod/github.com
afex casbin dgrijalva flynn go-logr ianlancetaylor '!knetic' mxk pact-foundation russross tidwall
alecthomas cenkalti dimchansky form3tech-oss google imdario konsorten nats-io pascaldekloe ryanuber tinylib
antihax census-instrumentation dnstap franela googleapis inconshreveable kr niemeyer pborman samuel tmc
apache cespare docker frankban go-openapi influxdata libp2p nxadm performancecopilot sean- urfave
apparentlymart chzyer docopt fsnotify gopherjs infobloxopen lightstep '!n!y!times' peterbourgon '!shopify' vikulin
'!arceliar' clbanning dustin getlantern gorilla ip2location lyft oklog philhofer 'shurcoo!l' vishvananda
armon client9 eapache ghodss go-sql-driver jmespath mailru olekukonko pierrec sirupsen '!vivid!cortex'
aryann cncf edsrzf go-board go-stack jonboulle mattn '!one!of!one' pkg slonm vorot93
asaskevich cockroachdb eiannone godbus gregjones jpillora matttproud onsi pmezard smartystreets xiang90
astaxie codahale ekomobile gofrs grpc-ecosystem json-iterator '!microsoft' op posener soheilhy yggdrasil-network
aws coredns elazarl go-gl 'g!spera' jstemmer miekg opentracing prometheus sony yuin
'!azure' coreos emicklei gogo hajimehoshi jtolds mitchellh opentracing-contrib '!puerkito!bio' spaolacci zhoreeq
beorn7 cpuguy83 envoyproxy go-kit hashicorp julienschmidt moby openzipkin quic-go spf13
bgentry creack evanphx golang hjson kardianos modern-go openzipkin-contrib rcrowley stoewer
bits-and-blooms '!data!dog' farsightsec go-logfmt hpcloud kataras munnerz oschwald rivo streadway
'!burnt!sushi' davecgh fatih gologme hudl kisielk mwitkow oxtoacart rogpeppe stretchr
И всё это, со временем, требует не так уж и мало:
Код: Выделить всё
olej@R420:~$ du -hs `go env GOPATH`/pkg/mod
2,1G /home/olej/go/pkg/mod