summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThanos Apollo <public@thanosapollo.org>2026-04-23 13:43:31 +0300
committerThanos Apollo <public@thanosapollo.org>2026-04-23 13:43:31 +0300
commite25594f19393ac1f320af717a2596324e8e718ea (patch)
tree108a717ec1daa6ac4757b8549b1df719e10e80c0
parent457e5508250e9e22ebd1b9f7aa5cbb5ca3f85103 (diff)
settings: Fix nil owner/repo by using regular vars instead of buffer-locals
-rw-r--r--lisp/forgejo-settings.el29
1 files changed, 17 insertions, 12 deletions
diff --git a/lisp/forgejo-settings.el b/lisp/forgejo-settings.el
index 988dc1f..5595100 100644
--- a/lisp/forgejo-settings.el
+++ b/lisp/forgejo-settings.el
@@ -35,9 +35,15 @@
;;; Data operations
-(defvar-local forgejo-settings--data nil
+(defvar forgejo-settings--data nil
"Cached repo settings alist for the current context.")
+(defvar forgejo-settings--owner nil
+ "Owner of the repo being configured.")
+
+(defvar forgejo-settings--repo nil
+ "Name of the repo being configured.")
+
(defun forgejo-settings--fetch (owner repo callback)
"Fetch repo settings for OWNER/REPO, call CALLBACK with alist."
(forgejo-api-get
@@ -63,8 +69,8 @@
(defun forgejo-settings-set-description ()
"Edit the repository description."
(interactive)
- (let* ((owner forgejo-repo--owner)
- (repo forgejo-repo--name)
+ (let* ((owner forgejo-settings--owner)
+ (repo forgejo-settings--repo)
(current (or (forgejo-settings--get 'description) "")))
(let ((new (read-string "Description: " current)))
(unless (string= new current)
@@ -74,8 +80,8 @@
(defun forgejo-settings-set-website ()
"Edit the repository website."
(interactive)
- (let* ((owner forgejo-repo--owner)
- (repo forgejo-repo--name)
+ (let* ((owner forgejo-settings--owner)
+ (repo forgejo-settings--repo)
(current (or (forgejo-settings--get 'website) "")))
(let ((new (read-string "Website: " current)))
(unless (string= new current)
@@ -85,8 +91,8 @@
(defun forgejo-settings-toggle-manual-merge ()
"Toggle the manual merge setting."
(interactive)
- (let* ((owner forgejo-repo--owner)
- (repo forgejo-repo--name)
+ (let* ((owner forgejo-settings--owner)
+ (repo forgejo-settings--repo)
(current (forgejo-settings--get 'allow_manual_merge))
(new (not (eq current t))))
(forgejo-settings--save owner repo 'allow_manual_merge new)
@@ -127,10 +133,9 @@ Fetches current settings synchronously, then opens the transient."
(forgejo-settings--fetch
owner repo
(lambda (data)
- (setq forgejo-settings--data data)
- (setq-local forgejo-repo--owner owner
- forgejo-repo--name repo
- forgejo-repo--host (or host forgejo-host))
+ (setq forgejo-settings--data data
+ forgejo-settings--owner owner
+ forgejo-settings--repo repo)
(forgejo-settings--transient))))))
(declare-function forgejo-vc--repo-from-remote "forgejo-vc.el" ())
@@ -139,7 +144,7 @@ Fetches current settings synchronously, then opens the transient."
"Repository settings."
[:description
(lambda () (format "Settings: %s/%s"
- forgejo-repo--owner forgejo-repo--name))
+ forgejo-settings--owner forgejo-settings--repo))
("d" forgejo-settings-set-description
:description forgejo-settings--description-desc)
("w" forgejo-settings-set-website