github.com/goreleaser/goreleaser@v1.25.1/internal/pipe/release/scm.go (about)

     1  package release
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/goreleaser/goreleaser/internal/tmpl"
     7  	"github.com/goreleaser/goreleaser/pkg/context"
     8  )
     9  
    10  func setupGitHub(ctx *context.Context) error {
    11  	if ctx.Config.Release.GitHub.Name == "" {
    12  		repo, err := getRepository(ctx)
    13  		if err != nil && !ctx.Snapshot {
    14  			return err
    15  		}
    16  		ctx.Config.Release.GitHub = repo
    17  	}
    18  
    19  	if err := tmpl.New(ctx).ApplyAll(
    20  		&ctx.Config.Release.GitHub.Name,
    21  		&ctx.Config.Release.GitHub.Owner,
    22  	); err != nil {
    23  		return err
    24  	}
    25  
    26  	url, err := tmpl.New(ctx).Apply(fmt.Sprintf(
    27  		"%s/%s/%s/releases/tag/%s",
    28  		ctx.Config.GitHubURLs.Download,
    29  		ctx.Config.Release.GitHub.Owner,
    30  		ctx.Config.Release.GitHub.Name,
    31  		ctx.Git.CurrentTag,
    32  	))
    33  	ctx.ReleaseURL = url
    34  	return err
    35  }
    36  
    37  func setupGitLab(ctx *context.Context) error {
    38  	if ctx.Config.Release.GitLab.Name == "" {
    39  		repo, err := getRepository(ctx)
    40  		if err != nil {
    41  			return err
    42  		}
    43  		ctx.Config.Release.GitLab = repo
    44  	}
    45  
    46  	if err := tmpl.New(ctx).ApplyAll(
    47  		&ctx.Config.Release.GitLab.Name,
    48  		&ctx.Config.Release.GitLab.Owner,
    49  	); err != nil {
    50  		return err
    51  	}
    52  
    53  	url, err := tmpl.New(ctx).Apply(fmt.Sprintf(
    54  		"%s/%s/%s/-/releases/%s",
    55  		ctx.Config.GitLabURLs.Download,
    56  		ctx.Config.Release.GitLab.Owner,
    57  		ctx.Config.Release.GitLab.Name,
    58  		ctx.Git.CurrentTag,
    59  	))
    60  	ctx.ReleaseURL = url
    61  	return err
    62  }
    63  
    64  func setupGitea(ctx *context.Context) error {
    65  	if ctx.Config.Release.Gitea.Name == "" {
    66  		repo, err := getRepository(ctx)
    67  		if err != nil {
    68  			return err
    69  		}
    70  		ctx.Config.Release.Gitea = repo
    71  	}
    72  
    73  	if err := tmpl.New(ctx).ApplyAll(
    74  		&ctx.Config.Release.Gitea.Name,
    75  		&ctx.Config.Release.Gitea.Owner,
    76  	); err != nil {
    77  		return err
    78  	}
    79  
    80  	url, err := tmpl.New(ctx).Apply(fmt.Sprintf(
    81  		"%s/%s/%s/releases/tag/%s",
    82  		ctx.Config.GiteaURLs.Download,
    83  		ctx.Config.Release.Gitea.Owner,
    84  		ctx.Config.Release.Gitea.Name,
    85  		ctx.Git.CurrentTag,
    86  	))
    87  	ctx.ReleaseURL = url
    88  	return err
    89  }