From 2385f3c9db9c116d213dfeb722522f4e2a47a52d Mon Sep 17 00:00:00 2001
From: Gergely Nagy <forgejo@gergo.csillger.hu>
Date: Fri, 26 Apr 2024 09:25:30 +0200
Subject: [PATCH] services/convert: Convert a Repository's ObjectFormatName too

When converting a `repo_model.Repository` to `api.Repository`, copy the
`ObjectFormatName` field too.

Fixes #3458.

Signed-off-by: Gergely Nagy <forgejo@gergo.csillger.hu>
---
 services/convert/repository.go     |  1 +
 tests/integration/api_repo_test.go | 11 +++++++++++
 2 files changed, 12 insertions(+)

diff --git a/services/convert/repository.go b/services/convert/repository.go
index fcd0824e45..35becd96d0 100644
--- a/services/convert/repository.go
+++ b/services/convert/repository.go
@@ -237,6 +237,7 @@ func innerToRepo(ctx context.Context, repo *repo_model.Repository, permissionInR
 		MirrorInterval:                mirrorInterval,
 		MirrorUpdated:                 mirrorUpdated,
 		RepoTransfer:                  transfer,
+		ObjectFormatName:              repo.ObjectFormatName,
 	}
 }
 
diff --git a/tests/integration/api_repo_test.go b/tests/integration/api_repo_test.go
index 8ae2622976..2fb89cfa6e 100644
--- a/tests/integration/api_repo_test.go
+++ b/tests/integration/api_repo_test.go
@@ -701,3 +701,14 @@ func TestAPIRepoGetAssignees(t *testing.T) {
 	DecodeJSON(t, resp, &assignees)
 	assert.Len(t, assignees, 1)
 }
+
+func TestAPIViewRepoObjectFormat(t *testing.T) {
+	defer tests.PrepareTestEnv(t)()
+
+	var repo api.Repository
+
+	req := NewRequest(t, "GET", "/api/v1/repos/user2/repo1")
+	resp := MakeRequest(t, req, http.StatusOK)
+	DecodeJSON(t, resp, &repo)
+	assert.EqualValues(t, "sha1", repo.ObjectFormatName)
+}