diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..e6cb058 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,32 @@ +name: Test + +on: [push, pull_request] + +jobs: + request: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + ref: ${{ github.ref }} + + - name: Request Postment Echo GET + uses: ./ + with: + url: 'https://postman-echo.com/get' + method: 'GET' + + - name: Request Postment Echo POST + uses: ./ + with: + url: 'https://postman-echo.com/post' + method: 'POST' + data: '{ "key": "value" }' + + - name: Request Postment Echo BasicAuth + uses: ./ + with: + url: 'https://postman-echo.com/basic-auth' + method: 'GET' + username: 'postman' + password: 'password' diff --git a/README.md b/README.md index 3ecfd9f..e8a9bf8 100644 --- a/README.md +++ b/README.md @@ -32,3 +32,11 @@ jobs: ### Output - `response` Request Response as JSON String + + +### Debug Informations + +Enable Debug mode to get informations about + +- Instance Configuration (Url / Timeout / Headers) +- Request Data (Body / Auth / Method) \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index 00e16ba..a5250f6 100644 --- a/dist/index.js +++ b/dist/index.js @@ -2597,6 +2597,9 @@ module.exports = function httpAdapter(config) { const core = __webpack_require__(470); const axios = __webpack_require__(53); +const METHOD_GET = 'GET' +const METHOD_POST = 'POST' + let auth = undefined let customHeaders = {} @@ -2629,19 +2632,22 @@ const instanceConfig = { headers: { ...headers, ...customHeaders } } -core.debug(JSON.stringify(instanceConfig)) +core.debug('Instance Configuration: ' + JSON.stringify(instanceConfig)) const instance = axios.create(instanceConfig); (async() => { try { + const method = core.getInput('method') || METHOD_POST; + const data = method === METHOD_GET ? undefined : JSON.parse(core.getInput('data') || '{}') + const requestData = { auth, - method: core.getInput('method') || 'POST', - data: JSON.parse(core.getInput('data') || '{}') + method, + data } - core.debug(JSON.stringify(requestData)) + core.debug('Request Data: ' + JSON.stringify(requestData)) const response = await instance.request(requestData) diff --git a/src/index.js b/src/index.js index bd613bf..44a22bb 100644 --- a/src/index.js +++ b/src/index.js @@ -1,6 +1,9 @@ const core = require("@actions/core"); const axios = require("axios"); +const METHOD_GET = 'GET' +const METHOD_POST = 'POST' + let auth = undefined let customHeaders = {} @@ -33,19 +36,22 @@ const instanceConfig = { headers: { ...headers, ...customHeaders } } -core.debug(JSON.stringify(instanceConfig)) +core.debug('Instance Configuration: ' + JSON.stringify(instanceConfig)) const instance = axios.create(instanceConfig); (async() => { try { + const method = core.getInput('method') || METHOD_POST; + const data = method === METHOD_GET ? undefined : JSON.parse(core.getInput('data') || '{}') + const requestData = { auth, - method: core.getInput('method') || 'POST', - data: JSON.parse(core.getInput('data') || '{}') + method, + data } - core.debug(JSON.stringify(requestData)) + core.debug('Request Data: ' + JSON.stringify(requestData)) const response = await instance.request(requestData)