50 lines
1.2 KiB
Go
50 lines
1.2 KiB
Go
package config
|
|
|
|
import (
|
|
"os"
|
|
|
|
githubactions "github.com/sethvargo/go-githubactions"
|
|
)
|
|
|
|
// DrafterConfig holds all configurations we need for the drafter to run
|
|
type DrafterConfig struct {
|
|
// RepoOwner as provided by the github context
|
|
RepoOwner string
|
|
// RepoName as provided by the github context
|
|
RepoName string
|
|
// ApiUrl of gitea as provided by the "GITHUB_SERVER_URL" env var
|
|
ApiUrl string
|
|
// Token as provided by the "GITHUB_TOKEN" env var
|
|
Token string
|
|
// ConfigPath as provided by the "config-path" action input. defaults to ".gitea/release-drafter.yml"
|
|
ConfigPath string
|
|
}
|
|
|
|
// NewFromInputs creates a new drafter config by using the action inputs and the github context
|
|
func NewFromInputs(action *githubactions.Action) (*DrafterConfig, error) {
|
|
actionCtx, err := action.Context()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
var configPath string
|
|
inputConfigPath := action.GetInput("config-path")
|
|
|
|
if inputConfigPath == "" {
|
|
configPath = ".gitea/release-drafter.yml"
|
|
} else {
|
|
configPath = inputConfigPath
|
|
}
|
|
|
|
owner, name := actionCtx.Repo()
|
|
c := DrafterConfig{
|
|
RepoOwner: owner,
|
|
RepoName: name,
|
|
ApiUrl: actionCtx.ServerURL,
|
|
Token: os.Getenv("GITHUB_TOKEN"),
|
|
ConfigPath: configPath,
|
|
}
|
|
|
|
return &c, nil
|
|
}
|