mirror of
https://github.com/go-gitea/gitea.git
synced 2026-03-14 11:56:41 -05:00
GOPROXY protocol support #3668
Closed
opened 2025-11-02 05:21:10 -06:00 by GiteaMirror
·
10 comments
No Branch/Tag Specified
main
release/v1.25
release/v1.24
release/v1.23
release/v1.22
release/v1.21
release/v1.20
release/v1.19
release/v1.18
release/v1.17
release/v1.16
release/v1.15
release/v1.14
release/v1.13
release/v1.12
release/v1.11
release/v1.10
release/v1.9
release/v1.8
v1.25.3
v1.25.2
v1.25.1
v1.25.0
v1.24.7
v1.25.0-rc0
v1.26.0-dev
v1.24.6
v1.24.5
v1.24.4
v1.24.3
v1.24.2
v1.24.1
v1.24.0
v1.23.8
v1.24.0-rc0
v1.25.0-dev
v1.23.7
v1.23.6
v1.23.5
v1.23.4
v1.23.3
v1.23.2
v1.23.1
v1.23.0
v1.23.0-rc0
v1.24.0-dev
v1.22.6
v1.22.5
v1.22.4
v1.22.3
v1.22.2
v1.22.1
v1.22.0
v1.23.0-dev
v1.22.0-rc1
v1.21.11
v1.22.0-rc0
v1.21.10
v1.21.9
v1.21.8
v1.21.7
v1.21.6
v1.21.5
v1.21.4
v1.21.3
v1.21.2
v1.20.6
v1.21.1
v1.21.0
v1.21.0-rc2
v1.21.0-rc1
v1.20.5
v1.22.0-dev
v1.21.0-rc0
v1.20.4
v1.20.3
v1.20.2
v1.20.1
v1.20.0
v1.19.4
v1.21.0-dev
v1.20.0-rc2
v1.20.0-rc1
v1.20.0-rc0
v1.19.3
v1.19.2
v1.19.1
v1.19.0
v1.19.0-rc1
v1.20.0-dev
v1.19.0-rc0
v1.18.5
v1.18.4
v1.18.3
v1.18.2
v1.18.1
v1.18.0
v1.17.4
v1.18.0-rc1
v1.19.0-dev
v1.18.0-rc0
v1.17.3
v1.17.2
v1.17.1
v1.17.0
v1.17.0-rc2
v1.16.9
v1.17.0-rc1
v1.18.0-dev
v1.16.8
v1.16.7
v1.16.6
v1.16.5
v1.16.4
v1.16.3
v1.16.2
v1.16.1
v1.16.0
v1.15.11
v1.17.0-dev
v1.16.0-rc1
v1.15.10
v1.15.9
v1.15.8
v1.15.7
v1.15.6
v1.15.5
v1.15.4
v1.15.3
v1.15.2
v1.15.1
v1.14.7
v1.15.0
v1.15.0-rc3
v1.14.6
v1.15.0-rc2
v1.14.5
v1.16.0-dev
v1.15.0-rc1
v1.14.4
v1.14.3
v1.14.2
v1.14.1
v1.14.0
v1.13.7
v1.14.0-rc2
v1.13.6
v1.13.5
v1.14.0-rc1
v1.15.0-dev
v1.13.4
v1.13.3
v1.13.2
v1.13.1
v1.13.0
v1.12.6
v1.13.0-rc2
v1.14.0-dev
v1.13.0-rc1
v1.12.5
v1.12.4
v1.12.3
v1.12.2
v1.12.1
v1.11.8
v1.12.0
v1.11.7
v1.12.0-rc2
v1.11.6
v1.12.0-rc1
v1.13.0-dev
v1.11.5
v1.11.4
v1.11.3
v1.10.6
v1.12.0-dev
v1.11.2
v1.10.5
v1.11.1
v1.10.4
v1.11.0
v1.11.0-rc2
v1.10.3
v1.11.0-rc1
v1.10.2
v1.10.1
v1.10.0
v1.9.6
v1.9.5
v1.10.0-rc2
v1.11.0-dev
v1.10.0-rc1
v1.9.4
v1.9.3
v1.9.2
v1.9.1
v1.9.0
v1.9.0-rc2
v1.10.0-dev
v1.9.0-rc1
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.8.0-rc3
v1.7.6
v1.8.0-rc2
v1.7.5
v1.8.0-rc1
v1.9.0-dev
v1.7.4
v1.7.3
v1.7.2
v1.7.1
v1.7.0
v1.7.0-rc3
v1.6.4
v1.7.0-rc2
v1.6.3
v1.7.0-rc1
v1.7.0-dev
v1.6.2
v1.6.1
v1.6.0
v1.6.0-rc2
v1.5.3
v1.6.0-rc1
v1.6.0-dev
v1.5.2
v1.5.1
v1.5.0
v1.5.0-rc2
v1.5.0-rc1
v1.5.0-dev
v1.4.3
v1.4.2
v1.4.1
v1.4.0
v1.4.0-rc3
v1.4.0-rc2
v1.3.3
v1.4.0-rc1
v1.3.2
v1.3.1
v1.3.0
v1.3.0-rc2
v1.3.0-rc1
v1.2.3
v1.2.2
v1.2.1
v1.2.0
v1.2.0-rc3
v1.2.0-rc2
v1.1.4
v1.2.0-rc1
v1.1.3
v1.1.2
v1.1.1
v1.1.0
v1.0.2
v1.0.1
v1.0.0
v0.9.99
Labels
Clear labels
$20
$250
$50
$500
backport/done
💎 Bounty
docs-update-needed
good first issue
hacktoberfest
issue/bounty
issue/confirmed
issue/critical
issue/duplicate
issue/needs-feedback
issue/not-a-bug
issue/regression
issue/stale
issue/workaround
lgtm/need 2
modifies/api
modifies/translation
outdated/backport/v1.18
outdated/theme/markdown
outdated/theme/timetracker
performance/bigrepo
performance/cpu
performance/memory
performance/speed
pr/breaking
proposal/accepted
proposal/rejected
pr/wip
pull-request
reviewed/wontfix
💰 Rewarded
skip-changelog
status/blocked
topic/accessibility
topic/api
topic/authentication
topic/build
topic/code-linting
topic/commit-signing
topic/content-rendering
topic/deployment
topic/distribution
topic/federation
topic/gitea-actions
topic/issues
topic/lfs
topic/mobile
topic/moderation
topic/packages
topic/pr
topic/projects
topic/repo
topic/repo-migration
topic/security
topic/theme
topic/ui
topic/ui-interaction
topic/ux
topic/webhooks
topic/wiki
type/bug
type/deprecation
type/docs
type/enhancement
type/feature
type/miscellaneous
type/proposal
type/question
type/refactoring
type/summary
type/testing
type/upstream
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/gitea#3668
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @lunny on GitHub (Jul 25, 2019).
If gitea could be as a goproxy server and all requested repositories could be stored on a special orgnization. That maybe a good idea.
ref: https://go.dev/ref/mod#goproxy-protocol
@lunny commented on GitHub (Aug 8, 2019):
The benefit when gitea support goproxy protocol but not a third-party:
A goproxy protocol request likes below, there are 5 http requests need to be implemented.
If gitea supports that, the domain
gitea.comwill be a reserved username.refs:
https://research.swtch.com/vgo-module
https://docs.gomods.io/intro/protocol/
btw:
Since go1.13 will support multiple goproxies, this will be possible.
@lafriks commented on GitHub (Aug 8, 2019):
but problem is that pretty much any domain will have to be reserved username then...
@sapk commented on GitHub (Aug 8, 2019):
And what it would do with external package (not a local repo) ? cache them also ?
From an architecture point, I feel that it would be better to use one of the many goproxy implementation since it would be better to setup it under another domain like goproxy.domain.com. Furtermore, one of the goal of the goproxy is to act as a cache in case of downtime of repo, implentating goproxy in gitea would lost this advantage.
@lunny commented on GitHub (Aug 8, 2019):
@lafriks No. Only the domain gitea itself. Mirrors could be any place because we know they mirrored from.
@lunny commented on GitHub (Aug 8, 2019):
@sapk there are two functionality of goproxy protocol. One is for cache, another is for repositories.
Before go module come, go will get packages via go get that we only needs to provide a meta and a VCS(git) protocol.
On go module time, above is also available but provide a direct protocol is better. It will accelerate directly visit because git is too slow for a go module protocol.
You can consider this is a go module protocol v2 rather than go get protocol v1.
This will not against goproxy, it will only provide repositories via goproxy protocol.
@lunny commented on GitHub (Aug 8, 2019):
When I and unknwon begin
gopmrepository on 2014 or 2015. We download github'sziportar.gzsource packages but not via git protocol. It's faster thango getthat time. The goproxy is similiar.@sapk commented on GitHub (Aug 8, 2019):
@lunny I understand the speed-up but the trade-off are "big" (blocking some name, adding complexity, ...) compare to someone just setup a goproxy aside.
And for blocking name, technically module are not necessary FQDN at the base so it can interfere with a lot of other url. I think we better try to offer api endpoint (if needed) and work with goproxy implementation to help them speed there inital search on gitea.
On a side note, I haven't tested but GOPROXY should support a subfolder like GOPROXY=https://myproxy.com/sub-folder. (at least, it support it for file:// url) confirmed and confirmed
If we implement goproxy, I think it would be better to offer a sub-folder as an endpoint.
@lafriks commented on GitHub (Aug 8, 2019):
we could set to reserved username
registryto use for goproxy, maybe later also for npm, docker registries etc, so that it could be used withGOPROXY=https://gitea.com/registry/go/and for others we could usehttps://gitea.com/registry/npm/etc@lunny commented on GitHub (Aug 9, 2019):
@sapk @lafriks Yeah. Gitea could implement these package protocols for this instance's repositories (NOT for a cache proxy). The target is different from goproxy or athens . And as what @lafriks said, this should be a first step to support golang, furthermore we can support other language packages protocols.
For enterprises' public or private repositories, that will reduce an extra server(goproxies or other languages).
Once gitea implemented this and with go 1.13, we can just set
GOPROXY=https://myenterprise.com/registry/go,https://goproxy.io@s3rj1k commented on GitHub (Apr 6, 2023):
Highly needed feature