File remote-config.patch of Package git-bug

From 65cfe2b3fff11d34b5ffc9f7e5d24aefb505497f Mon Sep 17 00:00:00 2001
From: William Ahern <william@25thandClement.com>
Date: Thu, 27 Jul 2023 22:06:45 -0700
Subject: [PATCH] pull, push: try reading git-bug.remote config value before
 defaulting to 'origin' when no explicit REMOTE argument

---
 commands/pull.go     |   16 +++++++++++-----
 commands/push.go     |   16 +++++++++++-----
 repository/config.go |   11 +++++++++++
 3 files changed, 33 insertions(+), 10 deletions(-)

Index: git-bug-0.8.1+git.1746484874.96c7a111/commands/pull.go
===================================================================
--- git-bug-0.8.1+git.1746484874.96c7a111.orig/commands/pull.go	2025-05-06 00:41:14.000000000 +0200
+++ git-bug-0.8.1+git.1746484874.96c7a111/commands/pull.go	2025-05-06 12:25:33.320505683 +0200
@@ -8,6 +8,7 @@
 	"github.com/git-bug/git-bug/commands/completion"
 	"github.com/git-bug/git-bug/commands/execenv"
 	"github.com/git-bug/git-bug/entity"
+	"github.com/git-bug/git-bug/repository"
 )
 
 func newPullCommand(env *execenv.Env) *cobra.Command {
@@ -25,13 +26,18 @@
 }
 
 func runPull(env *execenv.Env, args []string) error {
-	if len(args) > 1 {
+	var remote string
+	switch {
+	case len(args) > 1:
 		return errors.New("Only pulling from one remote at a time is supported")
-	}
-
-	remote := "origin"
-	if len(args) == 1 {
+	case len(args) == 1:
 		remote = args[0]
+	default:
+		v, err := repository.GetDefaultString("git-bug.remote", env.Repo.AnyConfig(), "origin")
+		if err != nil {
+			return err
+		}
+		remote = v
 	}
 
 	env.Out.Println("Fetching remote ...")
Index: git-bug-0.8.1+git.1746484874.96c7a111/commands/push.go
===================================================================
--- git-bug-0.8.1+git.1746484874.96c7a111.orig/commands/push.go	2025-05-06 00:41:14.000000000 +0200
+++ git-bug-0.8.1+git.1746484874.96c7a111/commands/push.go	2025-05-06 12:25:33.320753379 +0200
@@ -7,6 +7,7 @@
 
 	"github.com/git-bug/git-bug/commands/completion"
 	"github.com/git-bug/git-bug/commands/execenv"
+	"github.com/git-bug/git-bug/repository"
 )
 
 func newPushCommand(env *execenv.Env) *cobra.Command {
@@ -24,13 +25,18 @@
 }
 
 func runPush(env *execenv.Env, args []string) error {
-	if len(args) > 1 {
+	var remote string
+	switch {
+	case len(args) > 1:
 		return errors.New("Only pushing to one remote at a time is supported")
-	}
-
-	remote := "origin"
-	if len(args) == 1 {
+	case len(args) == 1:
 		remote = args[0]
+	default:
+		v, err := repository.GetDefaultString("git-bug.remote", env.Repo.AnyConfig(), "origin")
+		if err != nil {
+			return err
+		}
+		remote = v
 	}
 
 	stdout, err := env.Backend.Push(remote)
Index: git-bug-0.8.1+git.1746484874.96c7a111/repository/config.go
===================================================================
--- git-bug-0.8.1+git.1746484874.96c7a111.orig/repository/config.go	2025-05-06 00:41:14.000000000 +0200
+++ git-bug-0.8.1+git.1746484874.96c7a111/repository/config.go	2025-05-06 12:25:33.320922899 +0200
@@ -60,6 +60,17 @@
 	RemoveAll(keyPrefix string) error
 }
 
+func GetDefaultString(key string, cfg ConfigRead, def string) (string, error) {
+	val, err := cfg.ReadString(key)
+	if err == nil {
+		return val, nil
+	} else if errors.Is(err, ErrNoConfigEntry) {
+		return def, nil
+	} else {
+		return "", err
+	}
+}
+
 func ParseTimestamp(s string) (time.Time, error) {
 	timestamp, err := strconv.Atoi(s)
 	if err != nil {
openSUSE Build Service is sponsored by