
Research
Security News
The Growing Risk of Malicious Browser Extensions
Socket researchers uncover how browser extensions in trusted stores are used to hijack sessions, redirect traffic, and manipulate user behavior.
Hermes cURL is a lightweight wrapper on top of cURL that provides reusable HTTP request configurations in YAML.
Hermes cURL is a lightweight wrapper on top of cURL that provides reusable HTTP request configurations in YAML. Configuration files can import attributes from other files which allows for common settings such as hostnames and authentication headers to be shared by multiple cURL calls.
Set up a base configuration for an entire API:
# api_base.yml
headers:
Authorization: Token MySecretAPIToken
Content-Type: application/json
host: localhost:5000
curl_flags:
"--location":
Set up a configuration for a specific endpoint and import our the base settings:
# api.yml
from: api_base.yml
method: PUT
path: /my/api
body: >
{"hello": "world"}
Run the hermes
command:
$ hermes api.yml
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 128 100 112 100 16 3960 565 --:--:-- --:--:-- --:--:-- 4000
{
"msg": "hello Mr world"
}
See examples for a working example.
python3 -m pip install hermes-curl
from
(optional): specify a path to another configuration file to inherit configurations from. This path is relative to the current file.path
(requires): path on the server to send the request to, including any query params.method
(required): HTTP method to use.host
(required): server host, including protocol and port.headers
(optional): dictionary of headers in the form. ExHeader: value
.body
(optional): request body.curl_flags
(optional): a dictionary with any other curl flags to add. Ex "--cacert: certfile"
.template_defaults
(optional): a dictionary of default template variables.Configurations are merged in the following fashion:
path
is concatenated, so setting path: /foo/
in the parent and path: /bar/
in the child will result in path: /foo/bar/
method
, body
, and host
.Configurations can contain variables using the {variable_name}
syntax. Variables can
be passed into the configuration by either setting -t variable_name=value
on the cli
or by setting template_defaults
in the configuration. Values passed on the cli have
precedence over values set in template_defaults.
Running hermes -t pk=2 example.yml
will GET http://localhost/api/thing/2/
and running
hermes example.yml
will GET http://localhost/api/thing/1/
host: http://localhost/
path: api/thing/{pk}/
method: GET
template_defaults:
pk: 1
Template variables can also be used via environment variables. This will inject the TOKEN
environment variable into the Token
header.
headers:
Content-Type: application/json
Authorization: "Token {env[TOKEN]}"
FAQs
Hermes cURL is a lightweight wrapper on top of cURL that provides reusable HTTP request configurations in YAML.
We found that hermes-curl demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover how browser extensions in trusted stores are used to hijack sessions, redirect traffic, and manipulate user behavior.
Research
Security News
An in-depth analysis of credential stealers, crypto drainers, cryptojackers, and clipboard hijackers abusing open source package registries to compromise Web3 development environments.
Security News
pnpm 10.12.1 introduces a global virtual store for faster installs and new options for managing dependencies with version catalogs.