#access-token #devops #azure #command-line-tool #personal #pat #list

bin+lib pattrick

Pattrick is a command line tool for managing Personal Access Tokens (PAT) in Azure DevOps

9 releases

0.3.7 Dec 13, 2023
0.3.6 Mar 30, 2023
0.3.5 Jan 5, 2023
0.3.2 Dec 31, 2022
0.1.0 Oct 11, 2022

#409 in Authentication

MIT license

82KB
843 lines

1673695104691

crates build docs license

Pattrick is a command line tool for managing Personal Access Tokens (PAT) in Azure DevOps.

It allows you to:

  • 🐣 create
  • 📖 list
  • 🔎 show
  • ⚰️ delete

PATs without having to go to the web interface.

Installation

On MacOs, you can install Pattrick with Homebrew:

brew tap jvanbuel/pattrick
brew install pattrick

On Linux, you can install Pattrick by executing the following commands:

curl -L https://github.com/jvanbuel/pattrick/releases/latest/download/pattrick-x86_64-unknown-linux-gnu.tar.gz | tar xvz
chmod +x pattrick
sudo mv pattrick /usr/local/bin/pattrick

Usage

Pattrick looks for Azure CLI credentials to fetch an access token for authentication with Azure DevOps. You can get one locally by logging in to Azure with:

az login

If pattrick cannot find a valid access token, it will try to log you in automatically (by using the az login command under the hood). You can then start using pattrick to manage your PAT tokens:

pattrick create --lifetime 100 --scope packaging

By default, pattrick writes newly created token to stdout. However, you can also tell pattrick to write the token to your .netrc file (useful for e.g. installing Python packages from Azure DevOps Artifacts), or to a local .env file:

pattrick create --out std-out (default) / dot-netrc / dot-env

To get an overview of the other commands and options available, run:

pattrick --help

Usage as standalone library

You can also use Pattrick as a standalone library. This is useful if you want to manage PATS programmatically in your own codebase.

use pattrick::{PatTokenManager, PatTokenListRequest, DisplayFilterOption};
use pattrick::azure::get_ad_token_for_devops;

let pat_manager = PatTokenManager::new(get_ad_token_for_devops(1).await?);

let pat_tokens = pat_manager.list_pat_tokens(
     PatTokenListRequest {
        display_filter_option: DisplayFilterOption::All
     }
 ).await?;

For more information, check out the pattrick documentation at docs.rs

Dependencies

~36–57MB
~1M SLoC