# Pattrick
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](https://brew.sh/):
```bash
brew tap jvanbuel/pattrick
brew install pattrick
```
On Linux, you can install Pattrick by executing the following commands:
```bash
curl -L https://github.com/jvanbuel/pattrick/releases/download/v0.3.0/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:
```bash
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:
```bash
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. install Python packages from Azure DevOps Artifacts), or to a local `.env` file:
```bash
pattrick create --out std-out (default) / dot-netrc / dot-env
```
To get an overview of the other commands an options available, run:
```bash
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.
```rust
use pattrick::{PatTokenManager, PatTokenListRequest, DisplayFilterOption};
use pattrick::azure::get_ad_token_for_devops;
let pat_manager = PatTokenManager::new(get_ad_token_for_devops().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](https://docs.rs/pattrick/latest/pattrick/)