ssube/cautious-journey

View on GitHub
docs/config.md

Summary

Maintainability
Test Coverage
# Config

This guide describes the config file format.

## Contents

- [Config](#config)
  - [Contents](#contents)
  - [Logger](#logger)
    - [Logger Name](#logger-name)
    - [Logger Level](#logger-level)
  - [Projects](#projects)
    - [Project Colors](#project-colors)
    - [Project Flags](#project-flags)
    - [Project Name](#project-name)
    - [Project Remote](#project-remote)
      - [Github Remote](#github-remote)
      - [Gitlab Remote](#gitlab-remote)
    - [Project States](#project-states)
      - [Project State Values](#project-state-values)
        - [Project State Values Become](#project-state-values-become)

## Logger

### Logger Name

String.

### Logger Level

String enum.

- `debug`
- `info`
- `warn`
- `error`

## Projects

### Project Colors

Hex string, no hash: `abcdef`

### Project Flags

Flags are individual labels, which may be set by themselves.

- `adds`: list of labels to be added
- `color`: hex string, no hash
- `desc`: string, long description
- `name`: string
- `removes`: list of labels to be removed

### Project Name

String.

Project path on the remote, including username, group, etc. Slash-delimited.

### Project Remote

- `data`: string map, arbitrary data for the remote
- `type`: string enum, one of `github-remote` or `gitlab-remote`

#### Github Remote

For token authentication:

- `token`: Github user token with project scope
- `type`: `token`

For app authentication:

- `id`: application ID
- `installationId`: installation ID
- `privateKey`: application key material
- `type`: `app`

#### Gitlab Remote

For token authentication:

- `token`: Gitlab personal access token with API scope
- `type`: `token`

### Project States

States are groups of labels, only one of which may be set at a time.

- `color`: hex string, no hash
- `desc`: string, long description
- `name`: string
- `values`: list of state values

#### Project State Values

- `becomes`: list of potential state changes
- `color`: hex string, no hash
- `desc`: string, long description
- `name`: string, will be appended to the state name

##### Project State Values Become

Potential state changes, which can be applied if all of the `matches` exist.

- `adds`: list of labels to be added
- `matches`: list of labels that must exist
- `removes`: list of labels to be removed