mirror of
https://github.com/fjogeleit/http-request-action.git
synced 2026-02-05 00:55:52 +08:00
Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5d7e3ef283 | ||
|
|
089a11111a | ||
|
|
f7cd714b2c | ||
|
|
acd894b2e1 | ||
|
|
8ed097ea3f | ||
|
|
b9373e0ef3 | ||
|
|
65d4ab42a4 | ||
|
|
193a7dd98c | ||
|
|
3b9f5efa1c | ||
|
|
cfc342658b | ||
|
|
bd6ff9fa68 | ||
|
|
748170326f | ||
|
|
b52a6b1b8b | ||
|
|
8f0ce9cdaf |
32
.github/workflows/test.yml
vendored
Normal file
32
.github/workflows/test.yml
vendored
Normal file
@@ -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'
|
||||
@@ -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)
|
||||
40
dist/index.js
vendored
40
dist/index.js
vendored
@@ -2597,7 +2597,10 @@ module.exports = function httpAdapter(config) {
|
||||
const core = __webpack_require__(470);
|
||||
const axios = __webpack_require__(53);
|
||||
|
||||
const auth = {}
|
||||
const METHOD_GET = 'GET'
|
||||
const METHOD_POST = 'POST'
|
||||
|
||||
let auth = undefined
|
||||
let customHeaders = {}
|
||||
|
||||
if (!!core.getInput('customHeaders')) {
|
||||
@@ -2610,32 +2613,43 @@ if (!!core.getInput('customHeaders')) {
|
||||
|
||||
const headers = { 'Content-Type': core.getInput('contentType') || 'application/json' }
|
||||
|
||||
if (!!core.getInput('username')) {
|
||||
auth.username = core.getInput('username');
|
||||
}
|
||||
if (!!core.getInput('username') || !!core.getInput('password')) {
|
||||
core.debug('Add BasicHTTP Auth config')
|
||||
|
||||
if (!!core.getInput('password')) {
|
||||
auth.password = core.getInput('password');
|
||||
auth = {
|
||||
username: core.getInput('username'),
|
||||
password: core.getInput('password')
|
||||
}
|
||||
}
|
||||
|
||||
if (!!core.getInput('bearerToken')) {
|
||||
headers['Authentication'] = `Bearer ${core.getInput('bearerToken')}`;
|
||||
headers['Authorization'] = `Bearer ${core.getInput('bearerToken')}`;
|
||||
}
|
||||
|
||||
const instance = axios.create({
|
||||
const instanceConfig = {
|
||||
baseURL: core.getInput('url', { required: true }),
|
||||
timeout: parseInt(core.getInput('timeout') || 5000, 10),
|
||||
headers: { ...headers, ...customHeaders }
|
||||
});
|
||||
}
|
||||
|
||||
core.debug('Instance Configuration: ' + JSON.stringify(instanceConfig))
|
||||
|
||||
const instance = axios.create(instanceConfig);
|
||||
|
||||
(async() => {
|
||||
try {
|
||||
const response = await instance.request({
|
||||
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('Request Data: ' + JSON.stringify(requestData))
|
||||
|
||||
const response = await instance.request(requestData)
|
||||
|
||||
core.setOutput('response', JSON.stringify(response.data))
|
||||
} catch (error) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "http-request-action",
|
||||
"version": "1.0.0",
|
||||
"version": "1.3.0",
|
||||
"description": "",
|
||||
"main": "src/index.js",
|
||||
"private": false,
|
||||
|
||||
40
src/index.js
40
src/index.js
@@ -1,7 +1,10 @@
|
||||
const core = require("@actions/core");
|
||||
const axios = require("axios");
|
||||
|
||||
const auth = {}
|
||||
const METHOD_GET = 'GET'
|
||||
const METHOD_POST = 'POST'
|
||||
|
||||
let auth = undefined
|
||||
let customHeaders = {}
|
||||
|
||||
if (!!core.getInput('customHeaders')) {
|
||||
@@ -14,32 +17,43 @@ if (!!core.getInput('customHeaders')) {
|
||||
|
||||
const headers = { 'Content-Type': core.getInput('contentType') || 'application/json' }
|
||||
|
||||
if (!!core.getInput('username')) {
|
||||
auth.username = core.getInput('username');
|
||||
}
|
||||
if (!!core.getInput('username') || !!core.getInput('password')) {
|
||||
core.debug('Add BasicHTTP Auth config')
|
||||
|
||||
if (!!core.getInput('password')) {
|
||||
auth.password = core.getInput('password');
|
||||
auth = {
|
||||
username: core.getInput('username'),
|
||||
password: core.getInput('password')
|
||||
}
|
||||
}
|
||||
|
||||
if (!!core.getInput('bearerToken')) {
|
||||
headers['Authentication'] = `Bearer ${core.getInput('bearerToken')}`;
|
||||
headers['Authorization'] = `Bearer ${core.getInput('bearerToken')}`;
|
||||
}
|
||||
|
||||
const instance = axios.create({
|
||||
const instanceConfig = {
|
||||
baseURL: core.getInput('url', { required: true }),
|
||||
timeout: parseInt(core.getInput('timeout') || 5000, 10),
|
||||
headers: { ...headers, ...customHeaders }
|
||||
});
|
||||
}
|
||||
|
||||
core.debug('Instance Configuration: ' + JSON.stringify(instanceConfig))
|
||||
|
||||
const instance = axios.create(instanceConfig);
|
||||
|
||||
(async() => {
|
||||
try {
|
||||
const response = await instance.request({
|
||||
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('Request Data: ' + JSON.stringify(requestData))
|
||||
|
||||
const response = await instance.request(requestData)
|
||||
|
||||
core.setOutput('response', JSON.stringify(response.data))
|
||||
} catch (error) {
|
||||
|
||||
Reference in New Issue
Block a user