diff --git a/dist/index.js b/dist/index.js index a9889a1..c9fbbd8 100644 --- a/dist/index.js +++ b/dist/index.js @@ -2672,10 +2672,15 @@ module.exports.default = axios; const axios = __webpack_require__(53); const FormData = __webpack_require__(928) const fs = __webpack_require__(747) +const url = __webpack_require__(835); const METHOD_GET = 'GET' const METHOD_POST = 'POST' +const HEADER_CONTENT_TYPE = 'Content-Type' + +const CONTENT_TYPE_URLENCODED = 'application/x-www-form-urlencoded' + /** * @param {Object} param0 * @param {string} param0.method HTTP Method @@ -2723,6 +2728,13 @@ const request = async({ method, instanceConfig, data, files, file, actions, igno updateConfigForFile(instanceConfig, file, actions) } + if (instanceConfig.headers[HEADER_CONTENT_TYPE] === CONTENT_TYPE_URLENCODED) { + let dataJson = convertToJSON(data) + if (typeof dataJson === 'object') { + data = (new url.URLSearchParams(dataJson)).toString(); + } + } + const requestData = { method, data, diff --git a/package-lock.json b/package-lock.json index ad3c523..0eb3ab4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "http-request-action", - "version": "1.9.0", + "version": "1.11.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "http-request-action", - "version": "1.9.0", + "version": "1.11.2", "license": "MIT", "dependencies": { "@actions/core": "^1.9.1" diff --git a/package.json b/package.json index 3685e37..8bda880 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "http-request-action", - "version": "1.9.0", + "version": "1.11.2", "description": "", "main": "src/index.js", "private": false, diff --git a/src/httpClient.js b/src/httpClient.js index 4ac2bdf..31fd2d2 100644 --- a/src/httpClient.js +++ b/src/httpClient.js @@ -1,10 +1,15 @@ const axios = require('axios'); const FormData = require('form-data') const fs = require('fs') +const url = require('url'); const METHOD_GET = 'GET' const METHOD_POST = 'POST' +const HEADER_CONTENT_TYPE = 'Content-Type' + +const CONTENT_TYPE_URLENCODED = 'application/x-www-form-urlencoded' + /** * @param {Object} param0 * @param {string} param0.method HTTP Method @@ -52,6 +57,13 @@ const request = async({ method, instanceConfig, data, files, file, actions, igno updateConfigForFile(instanceConfig, file, actions) } + if (instanceConfig.headers[HEADER_CONTENT_TYPE] === CONTENT_TYPE_URLENCODED) { + let dataJson = convertToJSON(data) + if (typeof dataJson === 'object') { + data = (new url.URLSearchParams(dataJson)).toString(); + } + } + const requestData = { method, data,