pattrick 0.3.3

Pattrick is a command line tool for managing Personal Access Tokens (PAT) in Azure DevOps.
Documentation
# 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/)