From 9fb8393cebe3ca42cfc1cecaea3614982dc033f2 Mon Sep 17 00:00:00 2001 From: Mikey Hoy Date: Thu, 5 Nov 2026 07:28:17 -0500 Subject: [PATCH 1/2] forge--update-templates(gitlab): Fix template loading [1: a6dec70d] introduced a bug in resolving Gitlab template paths that causes `forge-pull' to fail for repositories with issue or merge request templates. - Reference the full file path when reading. - Read from the default branch instead of the local working tree. Closes #881. 1: 2026-10-20 a6dec70d66ee18080d4627ae8d1f1f6fefe9c3e8 Get topic template using API and store in database --- lisp/forge-gitlab.el | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lisp/forge-gitlab.el b/lisp/forge-gitlab.el index a087b6ca..96681c32 100644 --- a/lisp/forge-gitlab.el +++ b/lisp/forge-gitlab.el @@ -504,14 +504,15 @@ (oset repo topic-templates (mapcan (pcase-lambda (`(,type . ,dir)) - (seq-keep (lambda (file) - (let* ((file (file-name-nondirectory file)) + (seq-keep (lambda (path) + (let* ((file (file-name-nondirectory path)) (name (file-name-sans-extension file))) (and (equal (file-name-extension file) "md") (list (forge--object-id repoid name) type file name nil nil (with-temp-buffer - (insert-file-contents file) + (magit-git-insert "cat-file" "-p" + (concat branch ":" path)) (buffer-str)) nil nil nil nil nil)))) (magit-git-items "ls-tree" "-z" "--full-tree" From 94958bace3d4e91527b09a4967492b6c5d388471 Mon Sep 17 00:00:00 2001 From: Jonas Bernoulli Date: Thu, 5 Nov 2026 17:49:27 +0100 Subject: [PATCH 2/2] forge--update-templates: Re-indent --- lisp/forge-gitlab.el | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/lisp/forge-gitlab.el b/lisp/forge-gitlab.el index 96681c32..49ba74ec 100644 --- a/lisp/forge-gitlab.el +++ b/lisp/forge-gitlab.el @@ -504,19 +504,20 @@ (oset repo topic-templates (mapcan (pcase-lambda (`(,type . ,dir)) - (seq-keep (lambda (path) - (let* ((file (file-name-nondirectory path)) - (name (file-name-sans-extension file))) - (and (equal (file-name-extension file) "md") - (list (forge--object-id repoid name) - type file name nil nil - (with-temp-buffer - (magit-git-insert "cat-file" "-p" - (concat branch ":" path)) - (buffer-str)) - nil nil nil nil nil)))) - (magit-git-items "ls-tree" "-z" "--full-tree" - "--name-only" "-r" branch "--" dir))) + (seq-keep + (lambda (path) + (let* ((file (file-name-nondirectory path)) + (name (file-name-sans-extension file))) + (and (equal (file-name-extension file) "md") + (list (forge--object-id repoid name) + type file name nil nil + (with-temp-buffer + (magit-git-insert "cat-file" "-p" + (concat branch ":" path)) + (buffer-str)) + nil nil nil nil nil)))) + (magit-git-items "ls-tree" "-z" "--full-tree" + "--name-only" "-r" branch "--" dir))) '((issue . ".gitlab/issue_templates") (pullreq . ".gitlab/merge_request_templates"))))))