/tjek

tjek changes with the main branch

Primary LanguagePythonMIT LicenseMIT

tjek

tjek changes with the main branch


This project gives you a minimal method to check which files changed in a git project such that you only need to run your checks against these files. There's a few use-cases for it:

  • This can help prevent pytest from running every single unit test even if only a few changes have been made.
  • Static site builders could use it to only build the markdown files that are different than the main branch. This may seriously reduce the build time locally.

Install

pip install https://github.com/koaning/tjek.git@main

Quickstart

This app is useful when you want to limit certain CI steps based on which files have changed. For example; you might

CLI Documentation

Tjek helps you understand changed git files.

> tjek --help

Tjek helps you understand changed git files.

Options:
  --help  Show this message and exit.

Commands:
  diffs      List updated files compared to another branch.
  ifchanged  Run a CLI command if specific files changed.
  version    Gives the version of the app
tjek diffs

List updated files compared to another branch.

Usage:

$ tjek diffs [OPTIONS]

Options:

  • --branch TEXT: Branch to compare against. [default: origin/main]
  • --help: Show this message and exit.
tjek ifchanged

Run a CLI command if specific files changed.

Usage:

$ tjek ifchanged [OPTIONS] FILES... COMMAND

Arguments:

  • FILES...: The file to count the words in. [required]
  • COMMAND: Command to run if need changes are detected. [required]

Options:

  • --branch TEXT: Branch to compare against. [default: origin/main]
  • --verbose / --no-verbose: Show extra info. [default: False]
  • --help: Show this message and exit.
tjek version

Gives the version of the app

Usage:

$ tjek version [OPTIONS]

Options:

  • --help: Show this message and exit.

Python Documentation

The python library exposes a single function that can be used to help detect files that have changed.

from tjek import find_changed_files

find_changed_files()

This is super useful when you're building a static website (exibit A) and you're only interested in building the few markdown files that have changed. This might cause a serious speedup!