gitea-release-drafter/src/config/action.go

55 lines
1.3 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
}
type Category struct {
Title string `yaml:"title"`
Labels []string `yaml:"labels"`
}
// 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
}