Documentation
¶
Overview ¶
Package gitlab implements the VCS release provider for GitLab repositories, supporting both public and token-authenticated access; the owner may be a slash-separated group path passed through to the GitLab API. Provider construction uses package-owned Settings; GTB config integration lives in SettingsFromConfig.
Index ¶
- func NewReleaseProvider(settings Settings) (forge.Provider, error)
- type GitLabReleaseProvider
- func (p *GitLabReleaseProvider) DownloadReleaseAsset(ctx context.Context, owner, repo string, asset forge.ReleaseAsset) (io.ReadCloser, string, error)
- func (p *GitLabReleaseProvider) GetLatestRelease(ctx context.Context, owner, repo string) (forge.Release, error)
- func (p *GitLabReleaseProvider) GetReleaseByTag(ctx context.Context, owner, repo, tag string) (forge.Release, error)
- func (p *GitLabReleaseProvider) ListReleases(ctx context.Context, owner, repo string, limit int) ([]forge.Release, error)
- type Settings
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewReleaseProvider ¶
NewReleaseProvider builds a GitLab release provider from explicit typed settings. A public repository needs no auth settings; Host selects the instance, empty means gitlab.com, and APIURL can override the derived API endpoint. When auth is absent, the token falls back to GITLAB_TOKEN.
Types ¶
type GitLabReleaseProvider ¶
type GitLabReleaseProvider struct {
// contains filtered or unexported fields
}
GitLabReleaseProvider implements forge.Provider.
func (*GitLabReleaseProvider) DownloadReleaseAsset ¶
func (p *GitLabReleaseProvider) DownloadReleaseAsset(ctx context.Context, owner, repo string, asset forge.ReleaseAsset) (io.ReadCloser, string, error)
DownloadReleaseAsset is more complex for GitLab.
func (*GitLabReleaseProvider) GetLatestRelease ¶
func (*GitLabReleaseProvider) GetReleaseByTag ¶
func (*GitLabReleaseProvider) ListReleases ¶
type Settings ¶
type Settings struct {
ReleaseSource forge.ReleaseSourceConfig
APIURL string `json:"api_url" yaml:"api_url"`
Auth forge.AuthConfig
}
Settings contains the typed configuration needed to construct a GitLab release provider without binding the provider to GTB config.
Fields are populated by the GTB config adapter via the narrow forge.TokenConfig seam, not decoded with mapstructure. The json/yaml tags are for documentation and serialisation only.
func SettingsFromConfig ¶
func SettingsFromConfig(src forge.ReleaseSourceConfig, cfg forge.TokenConfig) Settings
SettingsFromConfig adapts the gitlab config subtree into typed provider settings. It preserves the existing `url.api` and `auth.*` key layout.