Metadata-Version: 2.1
Name: rubrical
Version: 0.2.2
Summary: A CLI to encourage (😅) people to update their dependencies!
Home-page: https://github.com/ivanklee86/rubrical
License: MPL-2.0
Author: Ivan Lee
Author-email: ivanklee86@gmail.com
Requires-Python: >=3.11,<4.0
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Software Development :: Build Tools
Requires-Dist: pydantic (>=1.10.4,<2.0.0)
Requires-Dist: pygithub (>=1.58.0,<2.0.0)
Requires-Dist: python-benedict[all] (>=0.31.0,<0.32.0)
Requires-Dist: pyyaml (>=6.0,<7.0)
Requires-Dist: requirements-parser (>=0.5.0,<0.6.0)
Requires-Dist: semver (>=3.0.0,<4.0.0)
Requires-Dist: typer[all] (>=0.9.0,<0.10.0)
Project-URL: Repository, https://github.com/ivanklee86/rubrical
Description-Content-Type: text/markdown

# rubrical

[![CI](https://github.com/ivanklee86/rubrical/actions/workflows/ci.yaml/badge.svg)](https://github.com/ivanklee86/rubrical/actions/workflows/ci.yaml) [![codecov](https://codecov.io/gh/ivanklee86/rubrical/branch/main/graph/badge.svg?token=9WJM4LBDEX)](https://codecov.io/gh/ivanklee86/rubrical) [![PyPI version](https://badge.fury.io/py/rubrical.svg)](https://badge.fury.io/py/rubrical)

A CLI to encourage (😅) people to update their dependencies!

Supported package managers:
* Python (requirements.txt)
* Go (go.mod)
* Node.js (package.lock)
* Jsonnet
* _More coming soon!_

![rubrical](docs/images/rubrical.png)

## Installation

### Package

```
pip install rubrical
```

### Docker

```
docker pull ghcr.io/ivanklee86/rubrical:latest
docker run --rm -it --name rubrical -v `pwd`/tests/files:/code ghcr.io/ivanklee86/rubrical:latest --config /code/rubrical.yaml --target /code
```

## Usage

```console
$ rubrical [OPTIONS]
```

**Options**:

* `--config PATH`: Path to configuration  [default: rubrical.yaml]
* `--target PATH`: Path to configuration  [default: /workspaces/rubrical]
* `/--no-block`: Don't fail if blocks found.  [default: True]
* `--debug / --no-debug`: Enable debug messages  [default: no-debug]
* `--repository-name TEXT`: Repository name for reporting purposes.  [env var: RUBRICAL_REPOSITORY]
* `--pr-id INTEGER`: PR ID for reporting purposes.  [env var: RUBRICAL_PR_ID; default: 0]
* `--gh-access-token TEXT`: Github access token for reporting.  Presence will enable Github reporting.  [env var: RUBRICAL_GH_TOKEN]
* `--gh-custom-url TEXT`: Github Enterprise custom url. e.g. https://github.custom.dev  [env var: RUBRICAL_GH_CUSTOM_URL]
* `--install-completion`: Install completion for the current shell.
* `--show-completion`: Show completion for the current shell, to copy it or customize the installation.
* `--help`: Show this message and exit.

## Configuration

The `rubrical.yaml` file is used to configure checks for your application.

```yaml
version: 1
package_managers:
  - name: jsonnet
    packages:
      - name: "xunleii/vector_jsonnet" # Name of the dependency
        block: v0.1.0  # If dependency is older than this, error.
        warn: v0.1.2  # If dependency is older than this, warn.
  - name: python
    packages:
      - name: Mopidy-Dirble
        block: v1.2.1
        warn: v1.2.2
  - name: go
    packages:
      - name: github.com/adrg/xdg
        block: v0.5.0
        warn: v0.6.0
  - name: nodejs
    packages:
      - name: react
        block: v17.0.3
        warn: v17.0.4
```

## Reporting

### Terminal

Comes for free!

### Github

1. Create a Github access token with `Pull requests: Read and write` permissions.
2. Run rubrical with the `--gh-access-token`, `--repository-name`, and `--pr-id` flags.

