Skip to content

fix(gitlab_service): include request URL when logging error

This is tiny fix that helps to debug issues with API requests. We are in the process of moving away from the deprecated request-promise library and so I'm not spending more time on polishing the code even though it could really use the attention.

Note that the current message shows you the server response, but you don't know which endpoint returned it:

{
  "userMessage": "Failed to parse GitLab API response",
  "errorMessage": "Unexpected token < in JSON at position 0",
  "stack": [
    "SyntaxError: Unexpected token < in JSON at position 0",
    "    at JSON.parse (<anonymous>)",
    "    at Object.config.transform (/Users/xxx/.vscode/extensions/gitlab.gitlab-workflow-3.11.1/src/gitlab_service.ts:95:9)",
    "    at /Users/xxx/.vscode/extensions/gitlab.gitlab-workflow-3.11.1/node_modules/request-promise-core/lib/plumbing.js:94:46",
    "    at Promise.cancellationExecute [as _execute] (/Users/xxx/.vscode/extensions/gitlab.gitlab-workflow-3.11.1/node_modules/bluebird/js/release/debuggability.js:406:9)",
    "    at Promise._resolveFromExecutor (/Users/xxx/.vscode/extensions/gitlab.gitlab-workflow-3.11.1/node_modules/bluebird/js/release/promise.js:518:18)",
    "    at new Promise (/Users/xxx/.vscode/extensions/gitlab.gitlab-workflow-3.11.1/node_modules/bluebird/js/release/promise.js:103:10)",
    "    at Request.plumbing.callback (/Users/xxx/.vscode/extensions/gitlab.gitlab-workflow-3.11.1/node_modules/request-promise-core/lib/plumbing.js:93:18)",
    "    at Request.RP$callback [as _callback] (/Users/xxx/.vscode/extensions/gitlab.gitlab-workflow-3.11.1/node_modules/request-promise-core/lib/plumbing.js:46:31)",
    "    at Request.self.callback (/Users/xxx/.vscode/extensions/gitlab.gitlab-workflow-3.11.1/node_modules/request/request.js:185:22)",
    "    at Request.emit (events.js:223:5)",
    "    at Request.<anonymous> (/Users/xxx/.vscode/extensions/gitlab.gitlab-workflow-3.11.1/node_modules/request/request.js:1154:10)",
    "    at Request.emit (events.js:223:5)",
    "    at IncomingMessage.<anonymous> (/Users/xxx/.vscode/extensions/gitlab.gitlab-workflow-3.11.1/node_modules/request/request.js:1076:12)",
    "    at Object.onceWrapper (events.js:312:28)",
    "    at IncomingMessage.emit (events.js:228:7)",
    "    at endReadableNT (_stream_readable.js:1185:12)",
    "    at processTicksAndRejections (internal/process/task_queues.js:81:21)"
  ],
  "additionalInfo": "Response body: <!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>404 Not Found</title>\n</head><body>\n<h1>Not Found</h1>\n<p>The requested URL was not found on this server.</p>\n</body></html>\n"
}
404 - "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>404 Not Found</title>\n</head><body>\n<h1>Not Found</h1>\n<p>The requested URL was not found on this server.</p>\n</body></html>\n"
StatusCodeError: 404 - "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>404 Not Found</title>\n</head><body>\n<h1>Not Found</h1>\n<p>The requested URL was not found on this server.</p>\n</body></html>\n"
    at new StatusCodeError (/Users/xxx/.vscode/extensions/gitlab.gitlab-workflow-3.11.1/node_modules/request-promise-core/lib/errors.js:32:15)
    at /Users/xxx/.vscode/extensions/gitlab.gitlab-workflow-3.11.1/node_modules/request-promise-core/lib/plumbing.js:97:41
    at tryCatcher (/Users/xxx/.vscode/extensions/gitlab.gitlab-workflow-3.11.1/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/Users/xxx/.vscode/extensions/gitlab.gitlab-workflow-3.11.1/node_modules/bluebird/js/release/promise.js:547:31)
    at Promise._settlePromise (/Users/xxx/.vscode/extensions/gitlab.gitlab-workflow-3.11.1/node_modules/bluebird/js/release/promise.js:604:18)
    at Promise._settlePromiseCtx (/Users/xxx/.vscode/extensions/gitlab.gitlab-workflow-3.11.1/node_modules/bluebird/js/release/promise.js:641:10)
    at _drainQueueStep (/Users/xxx/.vscode/extensions/gitlab.gitlab-workflow-3.11.1/node_modules/bluebird/js/release/async.js:97:12)
    at _drainQueue (/Users/xxx/.vscode/extensions/gitlab.gitlab-workflow-3.11.1/node_modules/bluebird/js/release/async.js:86:9)
    at Async._drainQueues (/Users/xxx/.vscode/extensions/gitlab.gitlab-workflow-3.11.1/node_modules/bluebird/js/release/async.js:102:5)
    at Immediate.Async.drainQueues [as _onImmediate] (/Users/xxx/.vscode/extensions/gitlab.gitlab-workflow-3.11.1/node_modules/bluebird/js/release/async.js:15:14)
    at processImmediate (internal/timers.js:439:21)

Related to #301 (closed)

Edited by Tomas Vik (OOO back on 2024-05-09)

Merge request reports