Skip to content

Repository files navigation

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-lateststeps:
- name: Deploy Stageuses: fjogeleit/http-request-action@v1with:
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

ArgumentDescriptionDefault
urlRequest URLrequired Field
methodRequest MethodPOST
contentTypeRequest ContentTypeapplication/json
dataRequest 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
'{}'
filesMap 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'{}'
fileSingle 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
timeoutRequest Timeout in ms5000 (5s)
usernameUsername for Basic Auth
passwordPassword for Basic Auth
bearerTokenBearer Authentication Token (without Bearer Prefix)
customHeadersAdditional header values as JSON string, keys in this object overwrite default headers like Content-Type'{}'
escapeDataEscape newlines in data string content. Use 'true' (string) as value to enable it
preventFailureOnNoResponsePrevent this Action to fail if the request respond without an response. Use 'true' (string) as value to enable it
ignoreStatusCodesPrevent this Action to fail if the request respond with one of the configured Status Codes. Example: '404,401'
httpsCACertificate authority as string in PEM format

Response

VariableDescription
responseResponse as JSON String
headersHeaders

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 Requestid: myRequestuses: fjogeleit/http-request-action@v1with:
url: "http://yoursite.com/api"
- name: Show Responserun: | 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

About

Create HTTP Requests in GitHub Actions

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages