You've already forked go-semantic-release
37 lines
887 B
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
|