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

     1  package release
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/triarius/goreleaser/internal/tmpl"
     7  	"github.com/triarius/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  	owner, err := tmpl.New(ctx).Apply(ctx.Config.Release.GitHub.Owner)
    20  	if err != nil {
    21  		return err
    22  	}
    23  	ctx.Config.Release.GitHub.Owner = owner
    24  
    25  	name, err := tmpl.New(ctx).Apply(ctx.Config.Release.GitHub.Name)
    26  	if err != nil {
    27  		return err
    28  	}
    29  	ctx.Config.Release.GitHub.Name = name
    30  
    31  	ctx.ReleaseURL, err = tmpl.New(ctx).Apply(fmt.Sprintf(
    32  		"%s/%s/%s/releases/tag/%s",
    33  		ctx.Config.GitHubURLs.Download,
    34  		ctx.Config.Release.GitHub.Owner,
    35  		ctx.Config.Release.GitHub.Name,
    36  		ctx.Git.CurrentTag,
    37  	))
    38  	return err
    39  }
    40  
    41  func setupGitLab(ctx *context.Context) error {
    42  	if ctx.Config.Release.GitLab.Name == "" {
    43  		repo, err := getRepository(ctx)
    44  		if err != nil {
    45  			return err
    46  		}
    47  		ctx.Config.Release.GitLab = repo
    48  	}
    49  
    50  	owner, err := tmpl.New(ctx).Apply(ctx.Config.Release.GitLab.Owner)
    51  	if err != nil {
    52  		return err
    53  	}
    54  	ctx.Config.Release.GitLab.Owner = owner
    55  
    56  	name, err := tmpl.New(ctx).Apply(ctx.Config.Release.GitLab.Name)
    57  	if err != nil {
    58  		return err
    59  	}
    60  	ctx.Config.Release.GitLab.Name = name
    61  
    62  	ctx.ReleaseURL, err = tmpl.New(ctx).Apply(fmt.Sprintf(
    63  		"%s/%s/%s/-/releases/%s",
    64  		ctx.Config.GitLabURLs.Download,
    65  		ctx.Config.Release.GitLab.Owner,
    66  		ctx.Config.Release.GitLab.Name,
    67  		ctx.Git.CurrentTag,
    68  	))
    69  	return err
    70  }
    71  
    72  func setupGitea(ctx *context.Context) error {
    73  	if ctx.Config.Release.Gitea.Name == "" {
    74  		repo, err := getRepository(ctx)
    75  		if err != nil {
    76  			return err
    77  		}
    78  		ctx.Config.Release.Gitea = repo
    79  	}
    80  
    81  	owner, err := tmpl.New(ctx).Apply(ctx.Config.Release.Gitea.Owner)
    82  	if err != nil {
    83  		return err
    84  	}
    85  	ctx.Config.Release.Gitea.Owner = owner
    86  
    87  	name, err := tmpl.New(ctx).Apply(ctx.Config.Release.Gitea.Name)
    88  	if err != nil {
    89  		return err
    90  	}
    91  	ctx.Config.Release.Gitea.Name = name
    92  
    93  	ctx.ReleaseURL, err = tmpl.New(ctx).Apply(fmt.Sprintf(
    94  		"%s/%s/%s/releases/tag/%s",
    95  		ctx.Config.GiteaURLs.Download,
    96  		ctx.Config.Release.Gitea.Owner,
    97  		ctx.Config.Release.Gitea.Name,
    98  		ctx.Git.CurrentTag,
    99  	))
   100  	return err
   101  }