diff --git a/.github/workflows/check-build.yaml b/.github/workflows/check-build.yaml index 510ad80..b128d08 100644 --- a/.github/workflows/check-build.yaml +++ b/.github/workflows/check-build.yaml @@ -2,6 +2,11 @@ name: "Check Build" on: pull_request_target: + paths: + - "dist/**" + - "src/**" + - "package*.json" + - "rollup.config.*" concurrency: group: ${{ github.workflow }}-${{ github.ref }} @@ -24,24 +29,12 @@ jobs: GITHUB_CTX: ${{ toJSON(github) }} run: echo "$GITHUB_CTX" - - name: "Check Changed Files" - id: changed - uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47 - with: - files: | - dist/** - src/** - package*.json - rollup.config.* - - name: "Checkout Pull" - if: ${{ steps.changed.outputs.any_changed == 'true' }} uses: actions/checkout@v5 with: ref: ${{ github.event.pull_request.head.sha }} - name: "Debug" - if: ${{ steps.changed.outputs.any_changed == 'true' }} continue-on-error: true run: | echo "::group::ls" @@ -51,18 +44,5 @@ jobs: tree . echo "::endgroup::" - #- name: "Setup Node" - # if: ${{ steps.changed.outputs.any_changed == 'true' }} - # uses: actions/setup-node@v6 - # with: - # node-version: 24 - # - #- name: "Install" - # if: ${{ steps.changed.outputs.any_changed == 'true' }} - # id: install - # run: | - # npm ci - - name: "Check Build Action" - if: ${{ steps.changed.outputs.any_changed == 'true' }} uses: cssnr/check-build-action@v1 diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 4792273..306a104 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -13,6 +13,7 @@ concurrency: jobs: lint: name: "Lint" + if: ${{ !contains(github.event.head_commit.message, '#nolint') }} runs-on: ubuntu-latest timeout-minutes: 5 @@ -75,11 +76,7 @@ jobs: run: | yq -e '.runs.main | test("^dist/")' action.yml - #- name: "Check Build Action" - # if: ${{ !cancelled() }} - # uses: cssnr/check-build-action@v1 - - name: "ESLint Annotate" if: ${{ !cancelled() && steps.eslint.outcome != 'success' }} continue-on-error: true - uses: ataylorme/eslint-annotate-action@v3 + uses: ataylorme/eslint-annotate-action@d57a1193d4c59cbfbf3f86c271f42612f9dbd9e9 # 3.0.0 diff --git a/.github/workflows/pull.yaml b/.github/workflows/pull.yaml index da86b80..b87fc85 100644 --- a/.github/workflows/pull.yaml +++ b/.github/workflows/pull.yaml @@ -42,3 +42,9 @@ jobs: - name: "NPM Outdated Check" continue-on-error: true uses: cssnr/npm-outdated-action@master + + - name: "Actions Up" + continue-on-error: true + uses: cssnr/actions-up-action@master + with: + exclude: "cssnr/.*,actions/.*" diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index c37a857..5444163 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -37,6 +37,6 @@ jobs: - name: "Send Failure Notification" if: ${{ failure() }} - uses: sarisia/actions-status-discord@v1 + uses: sarisia/actions-status-discord@11a0bfe3b50977e38aa2bd4a4ebd296415e83c19 # v1.15.4 with: webhook: ${{ secrets.DISCORD_WEBHOOK }} diff --git a/.prettierignore b/.prettierignore index cd26c30..b01fca6 100644 --- a/.prettierignore +++ b/.prettierignore @@ -14,4 +14,5 @@ node_modules/ .github/disabled/ # Files +.github/PULL_REQUEST_TEMPLATE/ .github/pull_request_template.md diff --git a/README.md b/README.md index a53393f..576455d 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,7 @@ [![GitHub Tag Minor](https://img.shields.io/github/v/tag/cssnr/web-request-action?sort=semver&filter=!v*.*.*&logo=git&logoColor=white&labelColor=585858&label=%20)](https://github.com/cssnr/web-request-action/releases) [![GitHub Release Version](https://img.shields.io/github/v/release/cssnr/web-request-action?logo=git&logoColor=white&labelColor=585858&label=%20)](https://github.com/cssnr/web-request-action/releases/latest) [![GitHub Dist Size](https://img.shields.io/github/size/cssnr/web-request-action/dist%2Findex.js?logo=bookstack&logoColor=white&label=dist%20size)](https://github.com/cssnr/web-request-action/blob/master/src/index.js) +[![Action Run Using](https://img.shields.io/badge/dynamic/yaml?url=https%3A%2F%2Fraw.githubusercontent.com%2Fcssnr%2Fweb-request-action%2Frefs%2Fheads%2Fmaster%2Faction.yml&query=%24.runs.using&logo=githubactions&logoColor=white&label=runs)](https://github.com/cssnr/web-request-action/blob/master/action.yml) [![Workflow Release](https://img.shields.io/github/actions/workflow/status/cssnr/web-request-action/release.yaml?logo=cachet&label=release)](https://github.com/cssnr/web-request-action/actions/workflows/release.yaml) [![Workflow Test](https://img.shields.io/github/actions/workflow/status/cssnr/web-request-action/test.yaml?logo=cachet&label=test)](https://github.com/cssnr/web-request-action/actions/workflows/test.yaml) [![Workflow Lint](https://img.shields.io/github/actions/workflow/status/cssnr/web-request-action/lint.yaml?logo=cachet&label=lint)](https://github.com/cssnr/web-request-action/actions/workflows/lint.yaml) @@ -278,6 +279,7 @@ Additionally, you can support other GitHub Actions I have published: - [Stack Deploy Action](https://github.com/cssnr/stack-deploy-action?tab=readme-ov-file#readme) - [Portainer Stack Deploy Action](https://github.com/cssnr/portainer-stack-deploy-action?tab=readme-ov-file#readme) - [Docker Context Action](https://github.com/cssnr/docker-context-action?tab=readme-ov-file#readme) +- [Actions Up Action](https://github.com/cssnr/actions-up-action?tab=readme-ov-file#readme) - [VirusTotal Action](https://github.com/cssnr/virustotal-action?tab=readme-ov-file#readme) - [Mirror Repository Action](https://github.com/cssnr/mirror-repository-action?tab=readme-ov-file#readme) - [Update Version Tags Action](https://github.com/cssnr/update-version-tags-action?tab=readme-ov-file#readme) @@ -300,6 +302,7 @@ Additionally, you can support other GitHub Actions I have published: These actions are not published on the Marketplace, but may be useful. +- [cssnr/create-files-action](https://github.com/cssnr/create-files-action?tab=readme-ov-file#readme) - Create various files from templates. - [cssnr/draft-release-action](https://github.com/cssnr/draft-release-action?tab=readme-ov-file#readme) - Keep a draft release ready to publish. - [cssnr/env-json-action](https://github.com/cssnr/env-json-action?tab=readme-ov-file#readme) - Convert env file to json or vice versa. - [cssnr/push-artifacts-action](https://github.com/cssnr/push-artifacts-action?tab=readme-ov-file#readme) - Sync files to a remote host with rsync. @@ -315,9 +318,9 @@ These actions are not published on the Marketplace, but may be useful. These are basic action templates that I use for creating new actions. - [js-test-action](https://github.com/smashedr/js-test-action?tab=readme-ov-file#readme) - JavaScript -- [py-test-action](https://github.com/smashedr/py-test-action?tab=readme-ov-file#readme) - Python - [ts-test-action](https://github.com/smashedr/ts-test-action?tab=readme-ov-file#readme) - TypeScript -- [docker-test-action](https://github.com/smashedr/docker-test-action?tab=readme-ov-file#readme) - Docker Image +- [py-test-action](https://github.com/smashedr/py-test-action?tab=readme-ov-file#readme) - Python (Dockerfile) +- [docker-test-action](https://github.com/smashedr/docker-test-action?tab=readme-ov-file#readme) - Docker (Image) Note: The `docker-test-action` builds, runs and pushes images to [GitHub Container Registry](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry). @@ -325,4 +328,4 @@ Note: The `docker-test-action` builds, runs and pushes images to [GitHub Contain -For a full list of current projects to support visit: [https://cssnr.github.io/](https://cssnr.github.io/) +For a full list of current projects visit: [https://cssnr.github.io/](https://cssnr.github.io/) diff --git a/action.yml b/action.yml index 1b4f434..2b8229d 100644 --- a/action.yml +++ b/action.yml @@ -40,5 +40,5 @@ outputs: description: "Response Data" runs: - using: "node20" + using: "node24" main: "dist/index.js" diff --git a/dist/index.js b/dist/index.js index 7a85a21..261a81b 100644 --- a/dist/index.js +++ b/dist/index.js @@ -36240,16 +36240,16 @@ module.exports = parseParams /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { "use strict"; -/*! Axios v1.13.1 Copyright (c) 2025 Matt Zabriskie and contributors */ +/*! Axios v1.13.2 Copyright (c) 2025 Matt Zabriskie and contributors */ const FormData$1 = __nccwpck_require__(6454); const crypto = __nccwpck_require__(6982); const url = __nccwpck_require__(7016); -const http2 = __nccwpck_require__(5675); const proxyFromEnv = __nccwpck_require__(7777); const http = __nccwpck_require__(8611); const https = __nccwpck_require__(5692); +const http2 = __nccwpck_require__(5675); const util = __nccwpck_require__(9023); const followRedirects = __nccwpck_require__(1573); const zlib = __nccwpck_require__(3106); @@ -36264,6 +36264,7 @@ const url__default = /*#__PURE__*/_interopDefaultLegacy(url); const proxyFromEnv__default = /*#__PURE__*/_interopDefaultLegacy(proxyFromEnv); const http__default = /*#__PURE__*/_interopDefaultLegacy(http); const https__default = /*#__PURE__*/_interopDefaultLegacy(https); +const http2__default = /*#__PURE__*/_interopDefaultLegacy(http2); const util__default = /*#__PURE__*/_interopDefaultLegacy(util); const followRedirects__default = /*#__PURE__*/_interopDefaultLegacy(followRedirects); const zlib__default = /*#__PURE__*/_interopDefaultLegacy(zlib); @@ -38400,7 +38401,7 @@ function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) { return requestedURL; } -const VERSION = "1.13.1"; +const VERSION = "1.13.2"; function parseProtocol(url) { const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url); @@ -38977,13 +38978,6 @@ const brotliOptions = { finishFlush: zlib__default["default"].constants.BROTLI_OPERATION_FLUSH }; -const { - HTTP2_HEADER_SCHEME, - HTTP2_HEADER_METHOD, - HTTP2_HEADER_PATH, - HTTP2_HEADER_STATUS -} = http2.constants; - const isBrotliSupported = utils$1.isFunction(zlib__default["default"].createBrotliDecompress); const {http: httpFollow, https: httpsFollow} = followRedirects__default["default"]; @@ -39013,9 +39007,9 @@ class Http2Sessions { sessionTimeout: 1000 }, options); - let authoritySessions; + let authoritySessions = this.sessions[authority]; - if ((authoritySessions = this.sessions[authority])) { + if (authoritySessions) { let len = authoritySessions.length; for (let i = 0; i < len; i++) { @@ -39026,7 +39020,7 @@ class Http2Sessions { } } - const session = http2.connect(authority, options); + const session = http2__default["default"].connect(authority, options); let removed; @@ -39041,11 +39035,12 @@ class Http2Sessions { while (i--) { if (entries[i][0] === session) { - entries.splice(i, 1); if (len === 1) { delete this.sessions[authority]; - return; + } else { + entries.splice(i, 1); } + return; } } }; @@ -39084,12 +39079,12 @@ class Http2Sessions { session.once('close', removeSession); - let entries = this.sessions[authority], entry = [ - session, - options - ]; + let entry = [ + session, + options + ]; - entries ? this.sessions[authority].push(entry) : authoritySessions = this.sessions[authority] = [entry]; + authoritySessions ? authoritySessions.push(entry) : authoritySessions = this.sessions[authority] = [entry]; return session; } @@ -39217,6 +39212,13 @@ const http2Transport = { const session = http2Sessions.getSession(authority, http2Options); + const { + HTTP2_HEADER_SCHEME, + HTTP2_HEADER_METHOD, + HTTP2_HEADER_PATH, + HTTP2_HEADER_STATUS + } = http2__default["default"].constants; + const http2Headers = { [HTTP2_HEADER_SCHEME]: options.protocol.replace(':', ''), [HTTP2_HEADER_METHOD]: options.method, @@ -39796,6 +39798,9 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) { req )); }); + } else { + // explicitly reset the socket timeout value for a possible `keep-alive` request + req.setTimeout(0); } @@ -41535,88 +41540,82 @@ const fs = __nccwpck_require__(9896) const https = __nccwpck_require__(5692) const yaml = __nccwpck_require__(4281) -;(async () => { - try { - // Inputs - core.startGroup('Inputs') - const url = core.getInput('url', { required: true }) - console.log('url:', url) - const method = core.getInput('method', { required: true }) - console.log('method:', method) - let data = parseData('data') - console.log('data:', data) - const headers = parseData('headers') - console.log('headers:', headers) - const params = parseData('params') - console.log('params:', params) - const username = core.getInput('username') - console.log('username:', username) - const password = core.getInput('password') - console.log('password:', password) - const insecure = core.getBooleanInput('insecure') - console.log('insecure:', insecure) - const file = core.getInput('file') - console.log('file:', file) - const name = core.getInput('name') - console.log('name:', name) - core.endGroup() // Inputs - - // Options - const auth = username && password ? { username, password } : {} - console.log('auth:', auth) - const httpsAgent = insecure - ? new https.Agent({ - rejectUnauthorized: false, - }) - : null - console.log('httpsAgent:', httpsAgent) - - // File - if (file) { - const form = new src_FormData() - for (const [key, value] of Object.entries(data)) { - form.append(key, value) - } - form.append(name, fs.createReadStream(file)) - Object.assign(headers, form.getHeaders()) - data = form +async function main() { + // Inputs + core.startGroup('Inputs') + const url = core.getInput('url', { required: true }) + console.log('url:', url) + const method = core.getInput('method', { required: true }) + console.log('method:', method) + let data = parseData('data') + console.log('data:', data) + const headers = parseData('headers') + console.log('headers:', headers) + const params = parseData('params') + console.log('params:', params) + const username = core.getInput('username') + console.log('username:', username) + const password = core.getInput('password') + console.log('password:', password) + const insecure = core.getBooleanInput('insecure') + console.log('insecure:', insecure) + const file = core.getInput('file') + console.log('file:', file) + const name = core.getInput('name') + console.log('name:', name) + core.endGroup() // Inputs + + // Options + const auth = username && password ? { username, password } : {} + console.log('auth:', auth) + const httpsAgent = insecure + ? new https.Agent({ + rejectUnauthorized: false, + }) + : null + console.log('httpsAgent:', httpsAgent) + + // File + if (file) { + const form = new src_FormData() + for (const [key, value] of Object.entries(data)) { + form.append(key, value) } + form.append(name, fs.createReadStream(file)) + Object.assign(headers, form.getHeaders()) + data = form + } - // Request - const config = { - url, - method, - headers, - params, - data, - auth, - httpsAgent, - } - console.log('config:', config) - const response = await axios.request(config) - console.log('response.status:', response.status) - // console.log('response:', response) - // console.log('response.request._headers:', response.request._headers) - core.startGroup('Headers') - console.log('response.headers:', response.headers) - core.endGroup() // Headers - - core.startGroup('Data') - console.log('response.data:', response.data) - core.endGroup() // Data - - // Outputs - core.setOutput('status', response.status) - core.setOutput('headers', response.headers) - core.setOutput('data', response.data) - - core.info(`\u001b[32;1mFinished Success`) - } catch (e) { - core.debug(e) - core.info(e.message) - core.setFailed(e.message) + // Request + const config = { + url, + method, + headers, + params, + data, + auth, + httpsAgent, } -})() + console.log('config:', config) + const response = await axios.request(config) + console.log('response.status:', response.status) + // console.log('response:', response) + // console.log('response.request._headers:', response.request._headers) + core.startGroup('Headers') + console.log('response.headers:', response.headers) + core.endGroup() // Headers + + core.startGroup('Data') + console.log('response.data:', response.data) + core.endGroup() // Data + + // Outputs + core.setOutput('status', response.status) + core.setOutput('headers', response.headers) + core.setOutput('data', response.data) + + core.info(`\u001b[32;1mFinished Success`) +} /** * Parse Data from Input @@ -41643,6 +41642,12 @@ function parseData(input) { throw new Error(`Unable to parse "${input}" with value: ${data}`) } +main().catch((e) => { + core.debug(e) + core.info(e.message) + core.setFailed(e.message) +}) + module.exports = __webpack_exports__; /******/ })() ; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 5810fb1..508b0d1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,14 +7,14 @@ "name": "web-request-action", "dependencies": { "@actions/core": "^1.11.1", - "axios": "^1.13.1", + "axios": "^1.13.2", "form-data": "^4.0.4", "js-yaml": "^4.1.0" }, "devDependencies": { - "@eslint/js": "^9.38.0", + "@eslint/js": "^9.39.1", "@vercel/ncc": "^0.38.4", - "eslint": "^9.38.0", + "eslint": "^9.39.1", "prettier": "^3.6.2" } }, @@ -111,22 +111,22 @@ } }, "node_modules/@eslint/config-helpers": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.1.tgz", - "integrity": "sha512-csZAzkNhsgwb0I/UAV6/RGFTbiakPCf0ZrGmrIxQpYvGZ00PhTkSnyKNolphgIvmnJeGw6rcGVEXfTzUnFuEvw==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.16.0" + "@eslint/core": "^0.17.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@eslint/core": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.16.0.tgz", - "integrity": "sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -161,9 +161,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.38.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.38.0.tgz", - "integrity": "sha512-UZ1VpFvXf9J06YG9xQBdnzU+kthors6KjhMAl6f4gH4usHyh31rUf2DLGInT8RFYIReYXNSydgPY0V2LuWgl7A==", + "version": "9.39.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.1.tgz", + "integrity": "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==", "dev": true, "license": "MIT", "engines": { @@ -184,13 +184,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.0.tgz", - "integrity": "sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.16.0", + "@eslint/core": "^0.17.0", "levn": "^0.4.1" }, "engines": { @@ -351,9 +351,9 @@ "license": "MIT" }, "node_modules/axios": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.1.tgz", - "integrity": "sha512-hU4EGxxt+j7TQijx1oYdAjw4xuIp1wRQSsbMFwSthCWeBQur1eF+qJ5iQ5sN3Tw8YRzQNKb8jszgBdMDVqwJcw==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz", + "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", @@ -580,20 +580,20 @@ } }, "node_modules/eslint": { - "version": "9.38.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.38.0.tgz", - "integrity": "sha512-t5aPOpmtJcZcz5UJyY2GbvpDlsK5E8JqRqoKtfiKE3cNh437KIqfJr3A3AKf5k64NPx6d0G3dno6XDY05PqPtw==", + "version": "9.39.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.1.tgz", + "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.1", - "@eslint/config-helpers": "^0.4.1", - "@eslint/core": "^0.16.0", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.38.0", - "@eslint/plugin-kit": "^0.4.0", + "@eslint/js": "9.39.1", + "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", diff --git a/package.json b/package.json index 5614c4b..02086f7 100644 --- a/package.json +++ b/package.json @@ -12,14 +12,14 @@ }, "dependencies": { "@actions/core": "^1.11.1", - "axios": "^1.13.1", + "axios": "^1.13.2", "form-data": "^4.0.4", "js-yaml": "^4.1.0" }, "devDependencies": { - "@eslint/js": "^9.38.0", + "@eslint/js": "^9.39.1", "@vercel/ncc": "^0.38.4", - "eslint": "^9.38.0", + "eslint": "^9.39.1", "prettier": "^3.6.2" } } diff --git a/src/index.js b/src/index.js index e6b7e0a..a35a436 100644 --- a/src/index.js +++ b/src/index.js @@ -5,88 +5,82 @@ const fs = require('fs') const https = require('https') const yaml = require('js-yaml') -;(async () => { - try { - // Inputs - core.startGroup('Inputs') - const url = core.getInput('url', { required: true }) - console.log('url:', url) - const method = core.getInput('method', { required: true }) - console.log('method:', method) - let data = parseData('data') - console.log('data:', data) - const headers = parseData('headers') - console.log('headers:', headers) - const params = parseData('params') - console.log('params:', params) - const username = core.getInput('username') - console.log('username:', username) - const password = core.getInput('password') - console.log('password:', password) - const insecure = core.getBooleanInput('insecure') - console.log('insecure:', insecure) - const file = core.getInput('file') - console.log('file:', file) - const name = core.getInput('name') - console.log('name:', name) - core.endGroup() // Inputs +async function main() { + // Inputs + core.startGroup('Inputs') + const url = core.getInput('url', { required: true }) + console.log('url:', url) + const method = core.getInput('method', { required: true }) + console.log('method:', method) + let data = parseData('data') + console.log('data:', data) + const headers = parseData('headers') + console.log('headers:', headers) + const params = parseData('params') + console.log('params:', params) + const username = core.getInput('username') + console.log('username:', username) + const password = core.getInput('password') + console.log('password:', password) + const insecure = core.getBooleanInput('insecure') + console.log('insecure:', insecure) + const file = core.getInput('file') + console.log('file:', file) + const name = core.getInput('name') + console.log('name:', name) + core.endGroup() // Inputs - // Options - const auth = username && password ? { username, password } : {} - console.log('auth:', auth) - const httpsAgent = insecure - ? new https.Agent({ - rejectUnauthorized: false, - }) - : null - console.log('httpsAgent:', httpsAgent) + // Options + const auth = username && password ? { username, password } : {} + console.log('auth:', auth) + const httpsAgent = insecure + ? new https.Agent({ + rejectUnauthorized: false, + }) + : null + console.log('httpsAgent:', httpsAgent) - // File - if (file) { - const form = new FormData() - for (const [key, value] of Object.entries(data)) { - form.append(key, value) - } - form.append(name, fs.createReadStream(file)) - Object.assign(headers, form.getHeaders()) - data = form + // File + if (file) { + const form = new FormData() + for (const [key, value] of Object.entries(data)) { + form.append(key, value) } + form.append(name, fs.createReadStream(file)) + Object.assign(headers, form.getHeaders()) + data = form + } - // Request - const config = { - url, - method, - headers, - params, - data, - auth, - httpsAgent, - } - console.log('config:', config) - const response = await axios.request(config) - console.log('response.status:', response.status) - // console.log('response:', response) - // console.log('response.request._headers:', response.request._headers) - core.startGroup('Headers') - console.log('response.headers:', response.headers) - core.endGroup() // Headers + // Request + const config = { + url, + method, + headers, + params, + data, + auth, + httpsAgent, + } + console.log('config:', config) + const response = await axios.request(config) + console.log('response.status:', response.status) + // console.log('response:', response) + // console.log('response.request._headers:', response.request._headers) + core.startGroup('Headers') + console.log('response.headers:', response.headers) + core.endGroup() // Headers - core.startGroup('Data') - console.log('response.data:', response.data) - core.endGroup() // Data + core.startGroup('Data') + console.log('response.data:', response.data) + core.endGroup() // Data - // Outputs - core.setOutput('status', response.status) - core.setOutput('headers', response.headers) - core.setOutput('data', response.data) + // Outputs + core.setOutput('status', response.status) + core.setOutput('headers', response.headers) + core.setOutput('data', response.data) - core.info(`\u001b[32;1mFinished Success`) - } catch (e) { - core.debug(e) - core.info(e.message) - core.setFailed(e.message) - } -})() + core.info(`\u001b[32;1mFinished Success`) +} /** * Parse Data from Input @@ -112,3 +106,9 @@ function parseData(input) { } throw new Error(`Unable to parse "${input}" with value: ${data}`) } + +main().catch((e) => { + core.debug(e) + core.info(e.message) + core.setFailed(e.message) +})