Skip to main content

netrcli - cli for .netrc file

netrcli is a small command line tool to work with entries in .netrc file. As the .netrc file support is implemented in many tools, like ftp, curl, pip, and wget, this tool targets to help the use of those tools with authenticated services, like GitLab.

The credentials are stored in plaintext in the .netrc file.

This is the way .netrc is. You have been warned.

In the background netrcli extends python standard library netrc implementation.

Installation

Install the command line tool from with pipx:

pipx install netrcli

Alternatively use pip for the installation:

pip install netrcli

Either way, to check the installation and netrcli version, run:

netrcli --version

If you see a version in the terminal, you're good to go!

Usage

When in doubt, try

netrcli --help

The tool uses ~/.netrc file. If such does not exist, it will be created to the home directory of the current user.

Updating entries in .netrc file

To add or modify the entry of myhost.com in the .netrc file, run

netrcli update --login user@name.com --password qwerty123 myhost.com

Use in GitLab pipelines

To add GitLab credentials in the .netrc file during GitLab jobs, run

netrcli update --gitlab-ci

in the GitLab job. This adds an entry in the .netrc file with using environment variables CI_SERVER_HOST CI_REGISTRY_USER, and CI_JOB_TOKEN. Now you can use for example curl to fetch packages from GitLab package registry with just --netrc argument set.

Note, that curl only supports HTTP basic authentication with the credentials from .netrc file with ``--netrc` argument.

Most of the endpoints in GitLab do not support HTTP basic authentication for authentication, but for example generic package registry does support it.

Get information from .netrc file

To get a stored login (username) to the standard output for a specific host from the .netrc file, run

netrcli get --login myhost.com

To get the stored password of the host, run:

netrcli get --password myhost.com

And to get the stored password of the host formatted in OAuth 2.0 authorization header, run

netrcli get --oauth-bearer myhost.com

This may be handy for example with curl --header "$(netrcli get --oauth-bearer myhost.com)" myhost.com/something.

Metadata

Release files for netrcli 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for netrcli 0.1.0
File Size Uploaded
netrcli-0.1.0.tar.gz 5.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for netrcli 0.1.0
File Interpreter ABI Platform
netrcli-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 11.7 kB

Release files / netrcli-0.1.0.tar.gz

Download URL netrcli-0.1.0.tar.gz
Size 5.7 kB
Tags Source
SHA-256 checksum
How to use checksums
0178dbfeb98784409d89ad2ce92dd3a91741806fd51d25508e64e5320817c5bf
BLAKE2b-256 checksum
How to use checksums
73a1cd834e4bb8a8549e9a6a0377c42e59d7b3b531e13d163bb28ff56b14d0fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / netrcli-0.1.0-py3-none-any.whl

Download URL netrcli-0.1.0-py3-none-any.whl
Size 5.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
961462b1e9f760425798c38397cfe748a3ab13ee69724b3dc7da63057f8833ee
BLAKE2b-256 checksum
How to use checksums
fe25ef09e40ca5363ee2cec274093fabeb1a8be586806d4fbdf87c4e373140b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page