From 146c351397ccd928429cf319b39b246d47b834be Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Mon, 23 Feb 2026 14:45:10 -0500 Subject: [PATCH] fix: header must be a string, not array The header must be a string, not an array. Per the got documentation, `headers` is of type `object`. See https://github.com/sindresorhus/got/blob/v14.6.6/documentation/2-options.md#headers Fixes the mis-typing problem introduced in https://github.com/semantic-release/gitlab/pull/919 which appears to cause GitLab releases to fail with incorrect `EINVALIDGLTOKEN Invalid GitLab token.` errors --- lib/fail.js | 2 +- lib/publish.js | 2 +- lib/success.js | 2 +- lib/verify.js | 4 ++-- test/helpers/mock-gitlab.js | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/fail.js b/lib/fail.js index 3ce29c1e..7abc4944 100644 --- a/lib/fail.js +++ b/lib/fail.js @@ -31,7 +31,7 @@ export default async (pluginConfig, context) => { const { encodedProjectPath, projectApiUrl } = getProjectContext(context, gitlabUrl, gitlabApiUrl, repositoryUrl); const apiOptions = { - headers: { [tokenHeader]: gitlabToken }, + headers: { tokenHeader: gitlabToken }, retry: { limit: retryLimit, statusCodes: retryStatusCodes, diff --git a/lib/publish.js b/lib/publish.js index a86c4ac9..df906856 100644 --- a/lib/publish.js +++ b/lib/publish.js @@ -30,7 +30,7 @@ export default async (pluginConfig, context) => { const encodedGitTag = encodeURIComponent(gitTag); const apiOptions = { headers: { - [tokenHeader]: gitlabToken, + tokenHeader: gitlabToken, }, hooks: { beforeError: [ diff --git a/lib/success.js b/lib/success.js index 1c3ed3bb..9e4b5e8e 100644 --- a/lib/success.js +++ b/lib/success.js @@ -29,7 +29,7 @@ export default async (pluginConfig, context) => { } = resolveConfig(pluginConfig, context); const { projectApiUrl } = getProjectContext(context, gitlabUrl, gitlabApiUrl, repositoryUrl); const apiOptions = { - headers: { [tokenHeader]: gitlabToken }, + headers: { tokenHeader: gitlabToken }, retry: { limit: retryLimit, statusCodes: retryStatusCodes }, }; diff --git a/lib/verify.js b/lib/verify.js index bade808f..e84a5078 100644 --- a/lib/verify.js +++ b/lib/verify.js @@ -66,13 +66,13 @@ export default async (pluginConfig, context) => { try { if (useJobToken) { logger.log("Using Job Token for authentication. Some functionality may be disabled."); - await got.get(urlJoin(projectApiUrl, "releases"), { headers: { [tokenHeader]: gitlabToken } }); + await got.get(urlJoin(projectApiUrl, "releases"), { headers: { tokenHeader: gitlabToken } }); } else { ({ permissions: { project_access: projectAccess, group_access: groupAccess }, } = await got .get(projectApiUrl, { - headers: { [tokenHeader]: gitlabToken }, + headers: { tokenHeader: gitlabToken }, ...proxy, }) .json()); diff --git a/test/helpers/mock-gitlab.js b/test/helpers/mock-gitlab.js index fbf41327..98dba33c 100644 --- a/test/helpers/mock-gitlab.js +++ b/test/helpers/mock-gitlab.js @@ -26,5 +26,5 @@ export default function ( const tokenHeader = useJobToken ? "JOB-TOKEN" : "Private-Token"; const token = useJobToken ? env.CI_JOB_TOKEN : gitlabToken; - return nock(urlJoin(gitlabUrl, gitlabApiPathPrefix), { reqheaders: { [tokenHeader]: token } }); + return nock(urlJoin(gitlabUrl, gitlabApiPathPrefix), { reqheaders: { tokenHeader: token } }); }