http/README.md

65 lines
3 KiB
Markdown
Raw Normal View History

2020-02-24 04:23:15 -05:00
# 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.
2020-02-24 04:23:15 -05:00
### Example
```yaml
2020-02-24 04:23:15 -05:00
jobs:
2021-01-19 18:21:04 -05:00
deployment:
runs-on: ubuntu-latest
steps:
- name: Deploy Stage
uses: fjogeleit/http-request-action@master
with:
url: 'https://ansible.io/api/v2/job_templates/84/launch/'
method: 'POST'
username: ${{ secrets.AWX_USER }}
password: ${{ secrets.AWX_PASSWORD }}
2020-02-24 04:23:15 -05:00
```
### Request Configuration
2020-02-24 04:23:15 -05:00
|Argument| Description | Default |
|--------|---------------|-----------|
|url | Request URL | _required_ Field |
|method | Request Method| POST |
|contentType | Request ContentType| application/json |
2021-12-10 11:44:42 -05:00
|data | Request Body Content:<br>- text content like JSON or XML<br>- key=value pairs separated by '&' and contentType: application/x-www-form-urlencoded<br><br>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** | '{}' |
2022-02-09 22:14:07 -05:00
|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** ||
2020-02-24 04:23:15 -05:00
|timeout| Request Timeout in ms | 5000 (5s) |
|username| Username for Basic Auth ||
|password| Password for Basic Auth ||
|bearerToken| Bearer Authentication Token (without Bearer Prefix) ||
2020-03-25 06:15:19 -04:00
|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' ||
2020-02-24 04:23:15 -05:00
### Response
2020-02-24 04:23:15 -05:00
| Variable | Description |
|---|---|
`response` | Response as JSON String
2020-04-21 08:16:49 -04:00
To display HTTP response data in the GitHub Actions log give the request an `id` and access its `outputs`
2020-04-21 08:16:49 -04:00
```yaml
steps:
- name: Make Request
id: myRequest
uses: fjogeleit/http-request-action@master
with:
url: "http://yoursite.com/api"
- name: Show Response
run: echo ${{ steps.myRequest.outputs.response }}
```
2020-04-21 08:16:49 -04:00
### Additional Information
2020-04-21 08:16:49 -04:00
Additional information is available if debug logging is enabled:
2020-04-21 08:16:49 -04:00
- Instance Configuration (Url / Timeout / Headers)
2020-06-30 04:30:02 -04:00
- Request Data (Body / Auth / Method)
To [enable debug logging in GitHub Actions](https://docs.github.com/en/actions/managing-workflow-runs/enabling-debug-logging) create a secret `ACTIONS_RUNNER_DEBUG` with a value of `true`