tickgit

module
v0.0.18 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 13, 2026 License: MIT

README

tests Go Report Card release license

tickgit 🎟️

This fork keeps the original tickgit idea, but points it at a more opinionated goal: make latent work in code visible enough to promote into proper GitHub issues, and prevent new latent-work comments from quietly accumulating in local source.

Use the tickgit command to view pending tasks, progress reports, completion summaries, historical data from git history, and issue-candidate markdown. Use the included GitHub Action as a read-only latent-work guard on pull requests and schedules.

This fork is not meant to replace GitHub Issues, JIRA, Trello, or other project management tools. It is meant to catch the work that starts as comments, tickets, or checklists in a codebase and give maintainers a safe path to either track it properly or stop adding more of it.

Fork goals

  • Detect latent-work comments locally and in CI without mutating repositories.
  • Compare current findings to a committed baseline so existing latent work does not block adoption.
  • Fail pull requests or scheduled checks only when new findings appear.
  • Generate issue-candidate markdown for human review before anything becomes a GitHub issue.
  • Keep supply-chain risk low by using read-only permissions, release-pinned Action refs, and explicit baselines.

TODOs

tickgit will scan a codebase and identify any TODO items in the comments. It will output a report like so:

# tickgit ~/Desktop/facebook/react
...
TODO:
  => packages/scheduler/src/__tests__/SchedulerBrowser-test.js:85:9
  => added 1 month ago by Andrew Clark <git@andrewclark.io> in a2e05b6c148b25590884e8911d4d4acfcb76a487

TODO: Scheduler no longer requires these methods to be polyfilled. But
  => packages/scheduler/src/__tests__/SchedulerBrowser-test.js:77:7
  => added 1 month ago by Andrew Clark <git@andrewclark.io> in a2e05b6c148b25590884e8911d4d4acfcb76a487

TODO: Scheduler no longer requires these methods to be polyfilled. But
  => packages/scheduler/src/forks/SchedulerHostConfig.default.js:77:7
  => added 1 month ago by Andrew Clark <git@andrewclark.io> in a2e05b6c148b25590884e8911d4d4acfcb76a487

TODO: useTransition hook instead.
  => fixtures/concurrent/time-slicing/src/index.js:110:11
  => added 3 weeks ago by Sebastian Markbåge <sebastian@calyptus.eu> in 3ad076472ce9108b9b8a6a6fe039244b74a34392

128 TODOs Found 📝

Check out an example of the TODOs tickgit will surface for the Kubernetes codebase.

Coming Soon
  • Blame - get a better sense of how old TODOs are, when they were introduced and by whom
  • Context - use --context-lines <n> for visibility into the lines of code around a TODO
  • More TODO type phrases to match, such as FIXME, XXX, HACK, or customized alternatives.
  • More configurability (e.g. custom ignore paths and color output)
  • Markdown parsing
  • More thorough historical stats

Installation

GitHub Releases

Download prebuilt binaries from the latest release.

Usage

The most up to date usage will be the output of tickgit --help.

Historical stats

Use tickgit stats to summarize current findings by phrase, age bucket, and directory, plus the oldest findings according to Git blame metadata.

tickgit stats
tickgit stats --json
Match phrases

By default, tickgit matches TODO, FIXME, OPTIMIZE, HACK, XXX, WTF, and LEGACY, plus the @lowercase form for each phrase. Use --match-phrase to override that list.

tickgit --match-phrase TODO --match-phrase FIXME
tickgit --match-phrase TODO,FIXME --csv-output
tickgit stats --match-phrase TODO --json
Ignore paths and color

Tickgit skips common repository metadata, dependency, and build paths by default, including .git, node_modules, vendor, dist, build, target, bin, obj, .terraform, virtual environment folders, and coverage output. Use --ignore-path to add repository-specific patterns.

tickgit --ignore-path fixtures --ignore-path generated
tickgit stats --ignore-path docs/generated

Human-readable output is colorized by default unless NO_COLOR is set. Use --color auto, --color always, or --color never to choose explicitly.

NO_COLOR=1 tickgit
tickgit --color never
Issue candidates

Use tickgit candidates to turn tickgit CSV output into issue-candidate markdown with stable duplicate keys. This command is intended for scheduled curation workflows; it does not create issues or mutate repositories.

tickgit --csv-output > .github/tickgit-current.csv
tickgit candidates --repo MTG-Thomas/tickgit --csv-file .github/tickgit-current.csv > .github/tickgit-candidates.md

GitHub Action

This fork includes a read-only GitHub Action that compares current tickgit CSV output to a committed baseline. It is intended for scheduled and pull request checks that fail only when a repository introduces new latent-work comments. The Action does not create issues, comments, commits, or other mutations.

Create a baseline:

tickgit --csv-output > .github/tickgit-baseline.csv

Then add a workflow:

name: tickgit TODO guard

on:
  pull_request:
  schedule:
    - cron: "17 13 * * 1-5"
  workflow_dispatch:

permissions:
  contents: read

jobs:
  todo-guard:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: MTG-Thomas/tickgit@v0.0.17
        with:
          baseline-file: .github/tickgit-baseline.csv
          fail-on-new: "true"
          match-phrases: TODO,FIXME,HACK
          ignore-paths: fixtures,docs/generated

Prefer pinning to a release tag or reviewed commit SHA rather than main when rolling the Action out across repositories. The Action builds tickgit from the pinned Action ref and exits with status 2 when new findings appear relative to the baseline.

For pull requests and pushes, the Action scans only added, copied, modified, or renamed files from the event base commit by default. Scheduled or manual runs without a base commit retain the full-repository scan. Set changed-only: "false" to force a full scan, or pass base-sha explicitly.

API

To find information about using the tickgit API, see this file.

Directories

Path Synopsis
cmd
tickgit command
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL