github.com/goreleaser/goreleaser@v1.25.1/pkg/defaults/defaults.go (about)

     1  // Package defaults make the list of Defaulter implementations available
     2  // so projects extending GoReleaser are able to use it, namely, GoDownloader.
     3  package defaults
     4  
     5  import (
     6  	"fmt"
     7  
     8  	"github.com/goreleaser/goreleaser/internal/pipe/archive"
     9  	"github.com/goreleaser/goreleaser/internal/pipe/artifactory"
    10  	"github.com/goreleaser/goreleaser/internal/pipe/aur"
    11  	"github.com/goreleaser/goreleaser/internal/pipe/blob"
    12  	"github.com/goreleaser/goreleaser/internal/pipe/brew"
    13  	"github.com/goreleaser/goreleaser/internal/pipe/build"
    14  	"github.com/goreleaser/goreleaser/internal/pipe/checksums"
    15  	"github.com/goreleaser/goreleaser/internal/pipe/chocolatey"
    16  	"github.com/goreleaser/goreleaser/internal/pipe/discord"
    17  	"github.com/goreleaser/goreleaser/internal/pipe/docker"
    18  	"github.com/goreleaser/goreleaser/internal/pipe/gomod"
    19  	"github.com/goreleaser/goreleaser/internal/pipe/ko"
    20  	"github.com/goreleaser/goreleaser/internal/pipe/krew"
    21  	"github.com/goreleaser/goreleaser/internal/pipe/linkedin"
    22  	"github.com/goreleaser/goreleaser/internal/pipe/mastodon"
    23  	"github.com/goreleaser/goreleaser/internal/pipe/mattermost"
    24  	"github.com/goreleaser/goreleaser/internal/pipe/milestone"
    25  	"github.com/goreleaser/goreleaser/internal/pipe/nfpm"
    26  	"github.com/goreleaser/goreleaser/internal/pipe/nix"
    27  	"github.com/goreleaser/goreleaser/internal/pipe/opencollective"
    28  	"github.com/goreleaser/goreleaser/internal/pipe/project"
    29  	"github.com/goreleaser/goreleaser/internal/pipe/reddit"
    30  	"github.com/goreleaser/goreleaser/internal/pipe/release"
    31  	"github.com/goreleaser/goreleaser/internal/pipe/sbom"
    32  	"github.com/goreleaser/goreleaser/internal/pipe/scoop"
    33  	"github.com/goreleaser/goreleaser/internal/pipe/sign"
    34  	"github.com/goreleaser/goreleaser/internal/pipe/slack"
    35  	"github.com/goreleaser/goreleaser/internal/pipe/smtp"
    36  	"github.com/goreleaser/goreleaser/internal/pipe/snapcraft"
    37  	"github.com/goreleaser/goreleaser/internal/pipe/snapshot"
    38  	"github.com/goreleaser/goreleaser/internal/pipe/sourcearchive"
    39  	"github.com/goreleaser/goreleaser/internal/pipe/teams"
    40  	"github.com/goreleaser/goreleaser/internal/pipe/telegram"
    41  	"github.com/goreleaser/goreleaser/internal/pipe/twitter"
    42  	"github.com/goreleaser/goreleaser/internal/pipe/universalbinary"
    43  	"github.com/goreleaser/goreleaser/internal/pipe/upload"
    44  	"github.com/goreleaser/goreleaser/internal/pipe/upx"
    45  	"github.com/goreleaser/goreleaser/internal/pipe/webhook"
    46  	"github.com/goreleaser/goreleaser/internal/pipe/winget"
    47  	"github.com/goreleaser/goreleaser/pkg/context"
    48  )
    49  
    50  // Defaulter can be implemented by a Piper to set default values for its
    51  // configuration.
    52  type Defaulter interface {
    53  	fmt.Stringer
    54  
    55  	// Default sets the configuration defaults
    56  	Default(ctx *context.Context) error
    57  }
    58  
    59  // Defaulters is the list of defaulters.
    60  // nolint: gochecknoglobals
    61  var Defaulters = []Defaulter{
    62  	snapshot.Pipe{},
    63  	release.Pipe{},
    64  	project.Pipe{},
    65  	gomod.Pipe{},
    66  	build.Pipe{},
    67  	universalbinary.Pipe{},
    68  	upx.Pipe{},
    69  	sourcearchive.Pipe{},
    70  	archive.Pipe{},
    71  	nfpm.Pipe{},
    72  	snapcraft.Pipe{},
    73  	checksums.Pipe{},
    74  	sign.Pipe{},
    75  	sign.DockerPipe{},
    76  	sbom.Pipe{},
    77  	docker.Pipe{},
    78  	docker.ManifestPipe{},
    79  	artifactory.Pipe{},
    80  	blob.Pipe{},
    81  	upload.Pipe{},
    82  	aur.Pipe{},
    83  	nix.Pipe{},
    84  	winget.Pipe{},
    85  	brew.Pipe{},
    86  	krew.Pipe{},
    87  	ko.Pipe{},
    88  	scoop.Pipe{},
    89  	discord.Pipe{},
    90  	reddit.Pipe{},
    91  	slack.Pipe{},
    92  	teams.Pipe{},
    93  	twitter.Pipe{},
    94  	smtp.Pipe{},
    95  	mastodon.Pipe{},
    96  	mattermost.Pipe{},
    97  	milestone.Pipe{},
    98  	linkedin.Pipe{},
    99  	telegram.Pipe{},
   100  	webhook.Pipe{},
   101  	chocolatey.Pipe{},
   102  	opencollective.Pipe{},
   103  }