| |
| <p align="center"> |
| <img src="actions.png"> |
| </p> |
| |
| # Actions Http-Client |
| |
| [](https://github.com/actions/http-client/actions) |
| |
| A lightweight HTTP client optimized for use with actions, TypeScript with generics and async await. |
| |
| ## Features |
| |
| - HTTP client with TypeScript generics and async/await/Promises |
| - Typings included so no need to acquire separately (great for intellisense and no versioning drift) |
| - [Proxy support](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/about-self-hosted-runners#using-a-proxy-server-with-self-hosted-runners) just works with actions and the runner |
| - Targets ES2019 (runner runs actions with node 12+). Only supported on node 12+. |
| - Basic, Bearer and PAT Support out of the box. Extensible handlers for others. |
| - Redirects supported |
| |
| Features and releases [here](./RELEASES.md) |
| |
| ## Install |
| |
| ``` |
| npm install @actions/http-client --save |
| ``` |
| |
| ## Samples |
| |
| See the [HTTP](./__tests__) tests for detailed examples. |
| |
| ## Errors |
| |
| ### HTTP |
| |
| The HTTP client does not throw unless truly exceptional. |
| |
| * A request that successfully executes resulting in a 404, 500 etc... will return a response object with a status code and a body. |
| * Redirects (3xx) will be followed by default. |
| |
| See [HTTP tests](./__tests__) for detailed examples. |
| |
| ## Debugging |
| |
| To enable detailed console logging of all HTTP requests and responses, set the NODE_DEBUG environment varible: |
| |
| ``` |
| export NODE_DEBUG=http |
| ``` |
| |
| ## Node support |
| |
| The http-client is built using the latest LTS version of Node 12. It may work on previous node LTS versions but it's tested and officially supported on Node12+. |
| |
| ## Support and Versioning |
| |
| We follow semver and will hold compatibility between major versions and increment the minor version with new features and capabilities (while holding compat). |
| |
| ## Contributing |
| |
| We welcome PRs. Please create an issue and if applicable, a design before proceeding with code. |
| |
| once: |
| |
| ```bash |
| $ npm install |
| ``` |
| |
| To build: |
| |
| ```bash |
| $ npm run build |
| ``` |
| |
| To run all tests: |
| ```bash |
| $ npm test |
| ``` |