diff --git a/action.yml b/action.yml index 6ff369b..0f306b3 100644 --- a/action.yml +++ b/action.yml @@ -11,7 +11,6 @@ inputs: contentType: description: 'Content Type' required: false - default: 'application/json' data: description: 'Request Body as JSON String' required: false diff --git a/dist/index.js b/dist/index.js index 1aab96d..d967b58 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1342,8 +1342,6 @@ const METHOD_POST = 'POST' const request = async({ method, instanceConfig, data, files, auth, actions, preventFailureOnNoResponse, escapeData }) => { try { - const instance = axios.create(instanceConfig); - if (escapeData) { data = data.replace(/"[^"]*"/g, (match) => { return match.replace(/[\n\r]\s*/g, "\\n"); @@ -1375,6 +1373,10 @@ const request = async({ method, instanceConfig, data, files, auth, actions, prev data } + actions.debug('Instance Configuration: ' + JSON.stringify(instanceConfig)) + + const instance = axios.create(instanceConfig); + actions.debug('Request Data: ' + JSON.stringify(requestData)) const response = await instance.request(requestData) @@ -1421,12 +1423,18 @@ const convertToFormData = (data, files) => { const updateConfig = async (instanceConfig, formData, actions) => { try { + const formHeaders = formData.getHeaders() + const contentType = formHeaders['content-type'] + + delete formHeaders['content-type'] + return { ...instanceConfig, headers: { ...instanceConfig.headers, - ...formData.getHeaders(), - 'Content-Length': await contentLength(formData) + ...formHeaders, + 'Content-Length': await contentLength(formData), + 'Content-Type': contentType } } } catch(error) { @@ -3561,8 +3569,6 @@ const instanceConfig = { headers: { ...headers, ...customHeaders } } -core.debug('Instance Configuration: ' + JSON.stringify(instanceConfig)) - const data = core.getInput('data') || '{}'; const files = core.getInput('files') || '{}'; const method = core.getInput('method') || METHOD_POST; diff --git a/src/httpClient.js b/src/httpClient.js index 2c44d1f..1c2acd0 100644 --- a/src/httpClient.js +++ b/src/httpClient.js @@ -7,8 +7,6 @@ const METHOD_POST = 'POST' const request = async({ method, instanceConfig, data, files, auth, actions, preventFailureOnNoResponse, escapeData }) => { try { - const instance = axios.create(instanceConfig); - if (escapeData) { data = data.replace(/"[^"]*"/g, (match) => { return match.replace(/[\n\r]\s*/g, "\\n"); @@ -40,6 +38,10 @@ const request = async({ method, instanceConfig, data, files, auth, actions, prev data } + actions.debug('Instance Configuration: ' + JSON.stringify(instanceConfig)) + + const instance = axios.create(instanceConfig); + actions.debug('Request Data: ' + JSON.stringify(requestData)) const response = await instance.request(requestData) @@ -86,12 +88,18 @@ const convertToFormData = (data, files) => { const updateConfig = async (instanceConfig, formData, actions) => { try { + const formHeaders = formData.getHeaders() + const contentType = formHeaders['content-type'] + + delete formHeaders['content-type'] + return { ...instanceConfig, headers: { ...instanceConfig.headers, - ...formData.getHeaders(), - 'Content-Length': await contentLength(formData) + ...formHeaders, + 'Content-Length': await contentLength(formData), + 'Content-Type': contentType } } } catch(error) { diff --git a/src/index.js b/src/index.js index 7427033..a068bb1 100644 --- a/src/index.js +++ b/src/index.js @@ -34,8 +34,6 @@ const instanceConfig = { headers: { ...headers, ...customHeaders } } -core.debug('Instance Configuration: ' + JSON.stringify(instanceConfig)) - const data = core.getInput('data') || '{}'; const files = core.getInput('files') || '{}'; const method = core.getInput('method') || METHOD_POST;