Use "-gitea-url" instead of "-gitea-host" or simiar

This allows to use another schema than https:// to connect to Gitea
This commit is contained in:
2025-04-07 14:20:26 +02:00
parent 5ea5f05b02
commit d3f1b36676
5 changed files with 21 additions and 15 deletions

View File

@@ -24,6 +24,7 @@ import (
"fmt" "fmt"
"io" "io"
"log" "log"
"net/url"
"os" "os"
"path" "path"
"path/filepath" "path/filepath"
@@ -139,10 +140,15 @@ type GiteaTransport struct {
client *apiclient.GiteaAPI client *apiclient.GiteaAPI
} }
func AllocateGiteaTransport(host string) Gitea { func AllocateGiteaTransport(giteaUrl string) Gitea {
var r GiteaTransport var r GiteaTransport
r.transport = transport.New(host, apiclient.DefaultBasePath, [](string){"https"}) url, err := url.Parse(giteaUrl)
if err != nil {
log.Panicln("Failed to parse gitea url:", err)
}
r.transport = transport.New(url.Hostname(), apiclient.DefaultBasePath, [](string){url.Scheme})
r.transport.DefaultAuthentication = transport.BearerToken(giteaToken) r.transport.DefaultAuthentication = transport.BearerToken(giteaToken)
r.client = apiclient.New(r.transport, nil) r.client = apiclient.New(r.transport, nil)

View File

@@ -123,7 +123,7 @@ func PeriodReviewCheck(gitea common.Gitea) {
} }
func main() { func main() {
giteaHost := flag.String("gitea-host", "src.opensuse.org", "Gitea instance used for reviews") giteaUrl := flag.String("gitea-url", "https://src.opensuse.org", "Gitea instance used for reviews")
rabbitMqHost := flag.String("rabbit-host", "rabbit.opensuse.org", "RabbitMQ instance where Gitea webhook notifications are sent") rabbitMqHost := flag.String("rabbit-host", "rabbit.opensuse.org", "RabbitMQ instance where Gitea webhook notifications are sent")
interval := flag.Int64("internval", 5, "Notification polling interval in minutes (min 1 min)") interval := flag.Int64("internval", 5, "Notification polling interval in minutes (min 1 min)")
configFile := flag.String("config", "", "PrjGit listing config file") configFile := flag.String("config", "", "PrjGit listing config file")
@@ -153,7 +153,7 @@ func main() {
log.Panicln(err) log.Panicln(err)
} }
gitea := common.AllocateGiteaTransport(*giteaHost) gitea := common.AllocateGiteaTransport(*giteaUrl)
configs, err = common.ResolveWorkflowConfigs(gitea, configData) configs, err = common.ResolveWorkflowConfigs(gitea, configData)
if err != nil { if err != nil {
log.Panicln(err) log.Panicln(err)

View File

@@ -299,8 +299,8 @@ func generateObsPrjMeta(git common.Git, gitea common.Gitea, pr *models.PullReque
meta.Description = fmt.Sprintf(`Pull request build job PR#%d to branch %s of %s/%s`, meta.Description = fmt.Sprintf(`Pull request build job PR#%d to branch %s of %s/%s`,
pr.Index, pr.Base.Name, pr.Base.Repo.Owner.UserName, pr.Base.Repo.Name) pr.Index, pr.Base.Name, pr.Base.Repo.Owner.UserName, pr.Base.Repo.Name)
meta.Url = fmt.Sprintf( meta.Url = fmt.Sprintf(
"https://%s/%s/%s/pulls/%d", "%s/%s/%s/pulls/%d",
giteaHost, giteaUrl,
url.PathEscape(pr.Base.Repo.Owner.UserName), url.PathEscape(pr.Base.Repo.Owner.UserName),
url.PathEscape(pr.Base.Repo.Name), url.PathEscape(pr.Base.Repo.Name),
pr.Index, pr.Index,
@@ -579,8 +579,8 @@ func processPullNotification(gitea common.Gitea, thread *models.NotificationThre
} }
} }
func pollWorkNotifications(giteaHost string) { func pollWorkNotifications(giteaUrl string) {
gitea := common.AllocateGiteaTransport(giteaHost) gitea := common.AllocateGiteaTransport(giteaUrl)
data, err := gitea.GetPullNotifications(nil) data, err := gitea.GetPullNotifications(nil)
if err != nil { if err != nil {
@@ -609,7 +609,7 @@ var ListPullNotificationsOnly bool
var ProcessIDOnly int64 var ProcessIDOnly int64
var Debug bool var Debug bool
var BuildRoot string var BuildRoot string
var giteaHost string var giteaUrl string
var giteaUseSshClone bool var giteaUseSshClone bool
var obsApiHost string var obsApiHost string
var obsWebHost string var obsWebHost string
@@ -627,7 +627,7 @@ func main() {
flag.BoolVar(&ListPullNotificationsOnly, "list-notifications-only", false, "Only lists notifications without acting on them") flag.BoolVar(&ListPullNotificationsOnly, "list-notifications-only", false, "Only lists notifications without acting on them")
flag.Int64Var(&ProcessIDOnly, "id", -1, "Process only the specific ID and ignore the rest. Use for debugging") flag.Int64Var(&ProcessIDOnly, "id", -1, "Process only the specific ID and ignore the rest. Use for debugging")
flag.StringVar(&BuildRoot, "build-root", "", "Default build location for staging projects. Default is bot's home project") flag.StringVar(&BuildRoot, "build-root", "", "Default build location for staging projects. Default is bot's home project")
flag.StringVar(&giteaHost, "gitea", "src.opensuse.org", "Gitea instance") flag.StringVar(&giteaUrl, "gitea-url", "https://src.opensuse.org", "Gitea instance")
flag.BoolVar(&giteaUseSshClone, "use-ssh-clone", false, "enforce cloning via ssh") flag.BoolVar(&giteaUseSshClone, "use-ssh-clone", false, "enforce cloning via ssh")
flag.StringVar(&obsApiHost, "obs", "api.opensuse.org", "API for OBS instance") flag.StringVar(&obsApiHost, "obs", "api.opensuse.org", "API for OBS instance")
flag.StringVar(&obsWebHost, "obs-web", "", "Web OBS instance, if not derived from the obs config") flag.StringVar(&obsWebHost, "obs-web", "", "Web OBS instance, if not derived from the obs config")
@@ -643,7 +643,7 @@ func main() {
// go ProcessingObsMessages("rabbit.opensuse.org", "opensuse", "opensuse", "") // go ProcessingObsMessages("rabbit.opensuse.org", "opensuse", "opensuse", "")
for { for {
pollWorkNotifications(giteaHost) pollWorkNotifications(giteaUrl)
if Debug { if Debug {
break break
} }

View File

@@ -490,7 +490,7 @@ func updateConfiguration(configFilename string, orgs *[]string) {
func main() { func main() {
configFilename := flag.String("config", "", "List of PrjGit") configFilename := flag.String("config", "", "List of PrjGit")
giteaHost := flag.String("gitea", "src.opensuse.org", "Gitea instance") giteaUrl := flag.String("gitea-url", "https://src.opensuse.org", "Gitea instance")
rabbitUrl := flag.String("url", "amqps://rabbit.opensuse.org", "URL for RabbitMQ instance") rabbitUrl := flag.String("url", "amqps://rabbit.opensuse.org", "URL for RabbitMQ instance")
flag.BoolVar(&DebugMode, "debug", false, "Extra debugging information") flag.BoolVar(&DebugMode, "debug", false, "Extra debugging information")
flag.BoolVar(&checkOnStart, "check-on-start", false, "Check all repositories for consistency on start, without delays") flag.BoolVar(&checkOnStart, "check-on-start", false, "Check all repositories for consistency on start, without delays")
@@ -530,7 +530,7 @@ func main() {
checkInterval = time.Duration(*checkIntervalHours) * time.Hour checkInterval = time.Duration(*checkIntervalHours) * time.Hour
gitea = common.AllocateGiteaTransport(*giteaHost) gitea = common.AllocateGiteaTransport(*giteaUrl)
CurrentUser, err := gitea.GetCurrentUser() CurrentUser, err := gitea.GetCurrentUser()
if err != nil { if err != nil {
log.Fatalln("Cannot fetch current user:", err) log.Fatalln("Cannot fetch current user:", err)

View File

@@ -65,7 +65,7 @@ func main() {
} }
workflowConfig := flag.String("config", "", "Repository and workflow definition file") workflowConfig := flag.String("config", "", "Repository and workflow definition file")
giteaHost := flag.String("gitea", "src.opensuse.org", "Gitea instance") giteaUrl := flag.String("gitea-url", "https://src.opensuse.org", "Gitea instance")
rabbitUrl := flag.String("url", "amqps://rabbit.opensuse.org", "URL for RabbitMQ instance") rabbitUrl := flag.String("url", "amqps://rabbit.opensuse.org", "URL for RabbitMQ instance")
flag.BoolVar(&DebugMode, "debug", false, "Extra debugging information") flag.BoolVar(&DebugMode, "debug", false, "Extra debugging information")
checkOnStart := flag.Bool("check-on-start", false, "Check all repositories for consistency on start, without delays") checkOnStart := flag.Bool("check-on-start", false, "Check all repositories for consistency on start, without delays")
@@ -79,7 +79,7 @@ func main() {
log.Fatalln("No configuratio file specified. Aborting") log.Fatalln("No configuratio file specified. Aborting")
} }
gitea := common.AllocateGiteaTransport(*giteaHost) gitea := common.AllocateGiteaTransport(*giteaUrl)
config, err := common.ReadConfigFile(*workflowConfig) config, err := common.ReadConfigFile(*workflowConfig)
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)