Files
go-semantic-release/internal/releaser/releaser.go

37 lines
887 B
Go

package releaser
import (
"fmt"
"github.com/Nightapes/go-semantic-release/internal/cache"
"github.com/Nightapes/go-semantic-release/internal/releaser/releasers"
"github.com/Nightapes/go-semantic-release/pkg/config"
)
// Releasers struct type
type Releasers struct {
config *config.ReleaseConfig
}
// Releaser interface for providers
type Releaser interface {
CreateRelease(releaseName, releaseMessage string) error
}
// New initialize a Relerser
func New(c *config.ReleaseConfig) *Releasers {
return &Releasers{
config: c,
}
}
//GetReleaser returns an initialized releaser
func (r *Releasers) GetReleaser(releaserType string) (Releaser, error) {
switch releaserType {
case releasers.GITHUB:
return releasers.NewGitHubReleaser(r.config), nil
}
return nil, fmt.Errorf("Could not initialize a releaser from this type: %s", releaserType)
}
// tbd. http helper function