1
0
Fork 0
toolkit/packages/http-client
Brian Cristante 91b7bf978c
Move @actions/http-client into the toolkit (#1062)
💡 See https://github.com/actions/toolkit/pull/1064 for a better diff!

https://github.com/actions/toolkit contains a variety of packages used for building actions.  https://github.com/actions/http-client is one such package, but lives outside of the toolkit.  Moving it inside of the toolkit will improve discoverability and reduce the number of repos we have to keep track of for maintenance tasks (such as github/c2c-actions-service#2937).

I checked with @bryanmacfarlane on the historical decision here.  Apparently it was just inertia from before we released the toolkit as multiple packages.

The benefits here are:
- Have one fewer repo to keep track of
- Signal that this is an HTTP client meant for building actions, not for general use.

## Notes
- `@actions/http-client` will continue to be released as its own package.
- Bumping the package version to **2.0.0**.  Since we're compiling in strict mode now, there are some breaking changes to the exported types.  This is an improvement because the null-unsafe version of`http-client` is currently breaking the safety of null-safe consumers.
- I'm not updating the other packages to use the new version in this PR.  I plan to do that in a follow-up.  We'll hold off on publishing `http-client` v2 to NPM until that's done just in case other changes shake out of it.
2022-05-03 11:10:13 -04:00
..
__tests__ Move @actions/http-client into the toolkit (#1062) 2022-05-03 11:10:13 -04:00
src Move @actions/http-client into the toolkit (#1062) 2022-05-03 11:10:13 -04:00
.gitignore Move @actions/http-client into the toolkit (#1062) 2022-05-03 11:10:13 -04:00
LICENSE Move @actions/http-client into the toolkit (#1062) 2022-05-03 11:10:13 -04:00
README.md Move @actions/http-client into the toolkit (#1062) 2022-05-03 11:10:13 -04:00
RELEASES.md Move @actions/http-client into the toolkit (#1062) 2022-05-03 11:10:13 -04:00
package-lock.json Move @actions/http-client into the toolkit (#1062) 2022-05-03 11:10:13 -04:00
package.json Move @actions/http-client into the toolkit (#1062) 2022-05-03 11:10:13 -04:00
tsconfig.json Move @actions/http-client into the toolkit (#1062) 2022-05-03 11:10:13 -04:00

README.md

@actions/http-client

A lightweight HTTP client optimized for building actions.

Features

  • HTTP client with TypeScript generics and async/await/Promises
  • Typings included!
  • Proxy support 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

Install

npm install @actions/http-client --save

Samples

See the 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 the 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:

npm install

To build:

npm run build

To run all tests:

npm test