Honor 'SOW_ASSETS_SERVER_URL and 'SOW_ASSETS_REPO'
This commit is contained in:
@@ -75,15 +75,42 @@ func resolveReleasedPartsManifest(p *project.Project, progress func(string)) (ma
|
||||
}
|
||||
|
||||
func deriveSowAssetsRepoSpec(root string) (giteaRepoSpec, error) {
|
||||
serverOverride := strings.TrimSpace(os.Getenv("SOW_ASSETS_SERVER_URL"))
|
||||
repoOverride := strings.TrimSpace(os.Getenv("SOW_ASSETS_REPO"))
|
||||
remote, err := gitOutput(root, "remote", "get-url", "origin")
|
||||
if err != nil || strings.TrimSpace(remote) == "" {
|
||||
return giteaRepoSpec{BaseURL: defaultGiteaBaseURL, Owner: defaultSowAssetsRepoOwner, Repo: defaultSowAssetsRepoName}, nil
|
||||
spec := giteaRepoSpec{BaseURL: defaultGiteaBaseURL, Owner: defaultSowAssetsRepoOwner, Repo: defaultSowAssetsRepoName}
|
||||
if err == nil && strings.TrimSpace(remote) != "" {
|
||||
if derived, ok := parseRepoSpec(strings.TrimSpace(remote)); ok {
|
||||
derived.Repo = defaultSowAssetsRepoName
|
||||
spec = derived
|
||||
}
|
||||
}
|
||||
if spec, ok := parseRepoSpec(strings.TrimSpace(remote)); ok {
|
||||
spec.Repo = defaultSowAssetsRepoName
|
||||
return spec, nil
|
||||
|
||||
if serverOverride != "" {
|
||||
spec.BaseURL = strings.TrimRight(serverOverride, "/")
|
||||
}
|
||||
return giteaRepoSpec{BaseURL: defaultGiteaBaseURL, Owner: defaultSowAssetsRepoOwner, Repo: defaultSowAssetsRepoName}, nil
|
||||
if repoOverride != "" {
|
||||
owner, repo, ok := parseOwnerRepo(repoOverride)
|
||||
if !ok {
|
||||
return giteaRepoSpec{}, fmt.Errorf("invalid SOW_ASSETS_REPO %q; expected owner/repo", repoOverride)
|
||||
}
|
||||
spec.Owner = owner
|
||||
spec.Repo = repo
|
||||
}
|
||||
return spec, nil
|
||||
}
|
||||
|
||||
func parseOwnerRepo(raw string) (string, string, bool) {
|
||||
parts := strings.Split(strings.Trim(strings.TrimSuffix(raw, ".git"), "/"), "/")
|
||||
if len(parts) < 2 {
|
||||
return "", "", false
|
||||
}
|
||||
owner := strings.TrimSpace(parts[len(parts)-2])
|
||||
repo := strings.TrimSpace(parts[len(parts)-1])
|
||||
if owner == "" || repo == "" {
|
||||
return "", "", false
|
||||
}
|
||||
return owner, repo, true
|
||||
}
|
||||
|
||||
func parseRepoSpec(raw string) (giteaRepoSpec, bool) {
|
||||
|
||||
Reference in New Issue
Block a user