From 9bd7171413e515ec5edce4ff8ca4381246a79cef Mon Sep 17 00:00:00 2001 From: Domagoj Kriskovic Date: Fri, 30 Jan 2026 13:41:19 +0100 Subject: [PATCH] [project-history] update getProjectBlobSchema to accept numeric history_id GitOrigin-RevId: b38d8c9e279e227975a12662d3f0c9e0d21cc1bd --- .../project-history/app/js/HttpController.js | 2 +- .../test/acceptance/js/NumericProjectIdTests.js | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/services/project-history/app/js/HttpController.js b/services/project-history/app/js/HttpController.js index 7c64ea8d26..d0880fea7b 100644 --- a/services/project-history/app/js/HttpController.js +++ b/services/project-history/app/js/HttpController.js @@ -23,7 +23,7 @@ const ONE_DAY_IN_SECONDS = 24 * 60 * 60 const getProjectBlobSchema = z.object({ params: z.object({ - history_id: zz.objectId(), + history_id: zz.objectId().or(z.coerce.number()), hash: z.string(), }), }) diff --git a/services/project-history/test/acceptance/js/NumericProjectIdTests.js b/services/project-history/test/acceptance/js/NumericProjectIdTests.js index d4d8180e9c..1575a358e4 100644 --- a/services/project-history/test/acceptance/js/NumericProjectIdTests.js +++ b/services/project-history/test/acceptance/js/NumericProjectIdTests.js @@ -136,4 +136,20 @@ describe('NumericProjectId', function () { }) expect(response.statusCode).to.equal(200) }) + + it('should accept numeric history_id for getProjectBlob', async function () { + const blobHash = 'a'.repeat(40) + const blobContent = 'test blob content' + + MockHistoryStore() + .get(`/api/projects/${this.historyId}/blobs/${blobHash}`) + .reply(200, blobContent) + + const { response, body } = await makeRequest({ + method: 'GET', + url: `http://127.0.0.1:3054/project/${this.historyId}/blob/${blobHash}`, + }) + expect(response.statusCode).to.equal(200) + expect(body).to.equal(blobContent) + }) })