Skip to content
PingPongPlusPublic

About

A jet that shoots and destroys your commits!

Resources

Contributing

Stars

4 stars

Watchers

0 watching

Forks

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

Git Jet

One to three pixel jets launch from a carrier, bank over your real commit calendar, and destroy each active day's cell. Transparent background, waves, projectiles, pixel explosions and a spinning radar. Runs with GitHub Actions.

Lincoln — default carrier

A pixel jet launches from a Lincoln-inspired carrier with an angled runway, detailed island and spinning radar.

Classic — original carrier

The original ivory-island carrier with a spinning radar launches a pixel jet to clear the commit calendar.

Choose carrier: 'lincoln' (default) or carrier: 'classic' in your workflow. For the CLI, use --carrier classic. Both designs have the spinning radar.

Both demos use 56 synthetic commits across 14 active days. Live mode uses your actual data. One attack clears one day cell, regardless of that day's count. The jet returns to land, the calendar rebuilds, and the animation loops.

Use in your profile

  1. Copy this workflow into your profile repository as .github/workflows/git-jet.yml.
  2. Open Actions → Git Jet → Run workflow. It publishes images to output.
  3. Add this to your README, replacing both YOUR_USERNAME values:
<picture>
  <source media="(prefers-reduced-motion: no-preference)"
    srcset="https://raw.githubusercontent.com/YOUR_USERNAME/YOUR_USERNAME/output/git-jet.gif">
  <img width="960"
    src="https://raw.githubusercontent.com/YOUR_USERNAME/YOUR_USERNAME/output/git-jet.png"
    alt="My commit history cleared by a pixel jet">
</picture>

Updates run daily. Set days: '30', '7' or '365' under the generation step's with: section. The static PNG preserves the full calendar. Flight uses smooth curves at a steady cruise speed and fires while moving. The default is 20 FPS; fps: '10' makes smaller files while preserving flight speed. Set scale: '1' for smaller images.

Set jets: '2' or jets: '3' to launch multiple jets and clear busy calendars faster. The default is jets: '1'. Jets share the day cells, so each active day is still attacked exactly once. Launches are staggered and the calendar resets after every jet lands. Small calendars may take a similar time because launch and return flights still need to finish. For the CLI, use --jets 3.

GIFs over 25 MB are automatically retried at a lower resolution, then lower FPS if needed. Every day-cell attack is kept. To help keep your requested resolution, use more jets (jets: '3') to shorten the animation. Disable this fallback with auto-compress: 'false' or CLI --no-auto-compress.

Every generation picks a fresh route with varied sweeps, gentle bends and occasional small loops while shooting. To keep a favorite route, set seed: 'my-route' in the action or use CLI --seed my-route. Omit the seed for new randomness on each run. The generated report.json records the chosen seed.

Run locally

python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e '.[dev]'
git-jet render --demo --output-dir out/demo
git-jet render --username YOUR_USERNAME --days 365 --carrier lincoln --output-dir out/live

For offline real-data rendering, use --calendar out/live/calendar.json. git-jet collect --username YOUR_USERNAME --output out/calendar.json saves data without rendering. GITHUB_TOKEN is optional locally; Actions supplies its token. No server is needed.

What gets counted

Distinct authored commits in public, owned, non-fork repositories' default branches, including documentation commits. The selected 1–365-day window includes today and uses UTC. Duplicate SHAs count once. This commit-only graph excludes issues, PR activity, private repositories and unlinked author identities. It can differ from GitHub's broader profile contribution calendar.

Each active day gets one visible attack; flight length grows with active days. No targets are silently sampled or skipped. Empty calendars get a patrol with no shots. Export is bounded to 3,000 frames and 25 MB per GIF. If even the smallest render cannot fit, select fewer days. Failed generation preserves previously good assets.

Generation and publication are separate. The publisher updates only git-jet.gif and git-jet.png on output, preserves other files, uses non-force pushes and never changes your default branch. Publishing requires contents: write.

Goals

  • Approved carrier, parked aircraft, waves, directional jets, grid and effects.
  • Real commit collection, transparent GIF/PNG export and a daily Actions template.
  • Catapult launch, banked flight, one attack per active day and carrier return.
  • Optional 1–3 jets to share targets and shorten busy calendars.
  • Optional one shot per individual commit mode.
  • More carrier/jet designs and configurable graph palettes, with artwork approval.

Artwork approvals · Contributing · MIT

About

A jet that shoots and destroys your commits!

Resources

Contributing

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages