krz/gitbay

A CLI-first git forge.

clone: git clone https://gitbay.org/krz/gitbay.git

a3aaeec2690ba7a3db89f27f0fb7e08fb90bc628

verified · cmc

author: Christian Cleberg <hello@cleberg.net> · 2026-08-24T03:10:12Z

mrs: resolve org-owned source repo names

The MR query joined users only for the source owner, so MRs sourced
from org-owned repos displayed an empty source path.
 internal/store/mrs.go | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/internal/store/mrs.go b/internal/store/mrs.go
index 940f664..b344cb2 100644
--- a/internal/store/mrs.go
+++ b/internal/store/mrs.go
@@ -55,13 +55,14 @@ func (s *Store) CreateMR(repoID, authorID, sourceRepoID int64, sourceRef, target
 const mrSelect = `
 	SELECT m.id, m.repo_id, m.number, u.username,
 	       COALESCE(m.source_repo_id, 0),
-	       COALESCE(su.username || '/' || sr.name, ''),
+	       COALESCE(COALESCE(su.username, so.name) || '/' || sr.name, ''),
 	       m.source_ref, m.target_ref, m.title, m.body, m.state, m.head_sha,
 	       m.created_at, m.updated_at
 	FROM merge_requests m
 	JOIN users u ON u.id = m.author_id
 	LEFT JOIN repos sr ON sr.id = m.source_repo_id
-	LEFT JOIN users su ON sr.owner_kind = 'user' AND su.id = sr.owner_id`
+	LEFT JOIN users su ON sr.owner_kind = 'user' AND su.id = sr.owner_id
+	LEFT JOIN orgs so  ON sr.owner_kind = 'org'  AND so.id = sr.owner_id`
 
 func scanMR(row interface{ Scan(...any) error }) (MR, error) {
 	var m MR