mirror of
https://github.com/fjogeleit/http-request-action.git
synced 2024-11-21 19:31:00 -05:00
Create HTTP Requests in GitHub Actions
76415c3c59
Bump actions/checkout from 2 to 3 |
||
---|---|---|
.github | ||
dist | ||
src | ||
.gitignore | ||
action.yml | ||
LICENSE | ||
package-lock.json | ||
package.json | ||
README.md |
HTTP Request Action
Create HTTP Requests from GitHub Actions. This action allows GitHub events to engage with tools like Ansible AWX that use HTTP APIs.
Example
jobs:
deployment:
runs-on: ubuntu-latest
steps:
- name: Deploy Stage
uses: fjogeleit/http-request-action@v1
with:
url: 'https://ansible.io/api/v2/job_templates/84/launch/'
method: 'POST'
username: ${{ secrets.AWX_USER }}
password: ${{ secrets.AWX_PASSWORD }}
customHeaders: '{"Content-Type": "application/json"}'
data: '{"key_1": "value_1", "key_2": "value_2"}'
Versioning
master
branch is deprecated. Please use main
or v1
to get the latest version of this action. It is recommended to use a fixed version.
Request Configuration
Argument | Description | Default |
---|---|---|
url | Request URL | required Field |
method | Request Method | POST |
contentType | Request ContentType | application/json |
data | Request Body Content: - text content like JSON or XML - key=value pairs separated by '&' and contentType: application/x-www-form-urlencoded only for POST / PUT / PATCH Requests |
'{}' |
files | Map of key / absolute file paths send as multipart/form-data request to the API, if set the contentType is set to multipart/form-data, values provided by data will be added as additional FormData values, nested objects are not supported. Example provided in the test Workflow of this Action | '{}' |
file | Single absolute file path send as application/octet-stream request to the API, if set the contentType is set to application/octet-stream . This input will be ignored if either data or files input is present. Example provided in the test Workflow of this Action |
|
timeout | Request Timeout in ms | 5000 (5s) |
username | Username for Basic Auth | |
password | Password for Basic Auth | |
bearerToken | Bearer Authentication Token (without Bearer Prefix) | |
customHeaders | Additional header values as JSON string, keys in this object overwrite default headers like Content-Type | '{}' |
escapeData | Escape newlines in data string content. Use 'true' (string) as value to enable it | |
preventFailureOnNoResponse | Prevent this Action to fail if the request respond without an response. Use 'true' (string) as value to enable it | |
ignoreStatusCodes | Prevent this Action to fail if the request respond with one of the configured Status Codes. Example: '404,401' | |
httpsCA | Certificate authority as string in PEM format |
Response
Variable | Description |
---|---|
response |
Response as JSON String |
headers |
Headers |
To display HTTP response data in the GitHub Actions log give the request an id
and access its outputs
. You can also access specific field from the response data using fromJson() expression.
steps:
- name: Make Request
id: myRequest
uses: fjogeleit/http-request-action@v1
with:
url: "http://yoursite.com/api"
- name: Show Response
run: |
echo ${{ steps.myRequest.outputs.response }}
echo ${{ steps.myRequest.outputs.headers }}
echo ${{ fromJson(steps.myRequest.outputs.response).field_you_want_to_access }}
Additional Information
Additional information is available if debug logging is enabled:
- Instance Configuration (Url / Timeout / Headers)
- Request Data (Body / Auth / Method)
To enable debug logging in GitHub Actions create a secret ACTIONS_RUNNER_DEBUG
with a value of true