{"id":13399925,"url":"https://github.com/gelstudios/gitfiti","last_synced_at":"2025-05-15T00:06:27.292Z","repository":{"id":8199904,"uuid":"9631509","full_name":"gelstudios/gitfiti","owner":"gelstudios","description":"abusing github commit history for the lulz","archived":false,"fork":false,"pushed_at":"2024-10-28T04:54:08.000Z","size":157,"stargazers_count":8219,"open_issues_count":17,"forks_count":1132,"subscribers_count":91,"default_branch":"main","last_synced_at":"2025-05-15T00:04:41.187Z","etag":null,"topics":["art","contribution-graph","contributions-calendar","gitfiti","pixel-art","pixelart","pixels","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gelstudios.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-04-23T19:32:02.000Z","updated_at":"2025-05-14T18:05:46.000Z","dependencies_parsed_at":"2023-01-13T14:40:37.329Z","dependency_job_id":"33256341-2e81-438b-bb08-098eb37cb867","html_url":"https://github.com/gelstudios/gitfiti","commit_stats":{"total_commits":110,"total_committers":26,"mean_commits":4.230769230769231,"dds":0.6545454545454545,"last_synced_commit":"82d695183c40cac28d4f12cb208187d6ca2f6d75"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gelstudios%2Fgitfiti","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gelstudios%2Fgitfiti/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gelstudios%2Fgitfiti/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gelstudios%2Fgitfiti/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gelstudios","download_url":"https://codeload.github.com/gelstudios/gitfiti/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254249199,"owners_count":22039029,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["art","contribution-graph","contributions-calendar","gitfiti","pixel-art","pixelart","pixels","python"],"created_at":"2024-07-30T19:00:45.192Z","updated_at":"2025-05-15T00:06:27.268Z","avatar_url":"https://github.com/gelstudios.png","language":"Python","readme":"[![Build Status](https://travis-ci.org/gelstudios/gitfiti.svg?branch=master)](https://travis-ci.org/gelstudios/gitfiti)\n\n**gitfiti** _noun_ : Carefully crafted graffiti in a github commit history calendar.  \n\nAn example of gitfiti in the wild:  \n![screenshot of gitfiti](https://raw.github.com/gelstudios/gitfiti/master/gitfiti-screenshot.png \"screenshot\")\n\n`gitfiti.py` is a tool to decorate your github account's commit history calendar by (blatantly) abusing git's ability to accept commits _in the past_.\n\nHow? `gitfiti.py` generates a script (powershell or bash) that makes commits with the GIT_AUTHOR_DATE and GIT_COMMITTER_DATE environment variables set for each targeted pixel.\n\nSince this is likely to clobber repo's history, it is highly recommend that you create a _new_ github repo when using gitfiti. Also, the generated script assumes you are using public-key authentication with git.\n\n### Pixel Art\n\n![pixel art examples](https://raw.github.com/gelstudios/gitfiti/master/pixels-large.png \"pixel art\")  \nIncluded \"art\" from left to right: kitty, oneup, oneup2, hackerschool, octocat, octocat2\n\n### Usage\n\n1. Create a new github repo to store your handiwork.\n2. Run `gitfiti.py` and follow the prompts for username, art selection, offset, and repo name.\n\nFor Python 3, use `python3`.\n\n```console\n    $ python3 ./gitfiti.py\n\n              _ __  _____ __  _\n       ____ _(_) /_/ __(_) /_(_)\n      / __ `/ / __/ /_/ / __/ /\n     / /_/ / / /_/ __/ / /_/ /\n     \\__, /_/\\__/_/ /_/\\__/_/\n    /____/\n\n    Enter GitHub URL (leave blank to use https://github.com/):\n```\n\nFor Python 2, use `python2`.\n\n```console\n    $ python2 ./gitfiti.py\n\n              _ __  _____ __  _\n       ____ _(_) /_/ __(_) /_(_)\n      / __ `/ / __/ /_/ / __/ /\n     / /_/ / / /_/ __/ / /_/ /\n     \\__, /_/\\__/_/ /_/\\__/_/\n    /____/\n\n    Enter GitHub URL (leave blank to use https://github.com/):\n```\n\n3. Run the generated `gitfiti.sh` or `gitfiti.ps1` from your home directory (or any non-git tracked dir) and watch it go to work.\n4. Wait... Seriously, you'll probably need to wait a day or two for the gitfiti to show in your commit graph.\n\n### User Templates\n\nThe file format for personal templates is the following:\n\n1. Each template starts off with a \":\" and then a name (eg. \":foo\")\n2. Each line after that is part of a json-recognizable array.\n3. The array contain values 0-4, 0 being blank and 4 being dark green.\n4. To add multiple templates, just add another name tag as described in 1.\n\nFor example:\n\n```\n:center-blank\n[[1,1,1,1,1,1,1],\n[1,1,1,1,1,1,1],\n[1,1,1,1,1,1,1],\n[1,1,1,0,1,1,1],\n[1,1,1,1,1,1,1],\n[1,1,1,1,1,1,1],\n[1,1,1,1,1,1,1]]\n```\n\nThis would output a 7 x 7 light green square with a single blank center square.\n\nOnce you have a file with templates, enter its name when prompted and the templates will be added to the list of options.\n\n### Removal\n\nFortunately if you regret your gitfiti in the morning, removing it is fairly easy: delete the repo you created for your gitfiti (and wait).\n\n### License\n\ngitfiti is released under [The MIT license (MIT)](http://opensource.org/licenses/MIT)\n\n---\n\n#### Todo\n\n- ~~Remove 'requests' dependency~~ [_thanks empathetic-alligator_](https://github.com/empathetic-alligator)\n- ~~Web interface~~ See several web-based things below\n- ~~Load \"art\" from a file~~ [_thanks empathetic-alligator_](https://github.com/empathetic-alligator)\n- Load commit content from a file\n- Text/alphabet option\n- ~~powershell support!~~ [_thanks axzn_](https://github.com/axzn)\n- ...\n- Profit?\n\n#### Notable derivatives or mentions\n\n- [Vincent Van Git](https://github.com/jh3y/vincent-van-git) Vincent, which offers a [very slick web ui](https://vincent-van-git.netlify.app/) to generate a gitfiti script\n- [github-calendar-customerizer](https://github.com/ZachSaucier/github-calendar-customizer) from ZachSaucier, another very [nice web GUI](https://codepen.io/ZachSaucier/full/PzVRBy) for generating gitfiti templates\n- [git-art](https://github.com/jamesjarvis/git-art) from jamesjarvis, a work-alike web based [editor GUI](https://jamesjarvis.github.io/git-art/) that generates the script too\n- [Pikesley's](https://github.com/pikesley) Pokrovsky, which offers Github History Vandalism [as a Service!](http://pokrovsky.herokuapp.com/)\n- [PSVandalism](https://github.com/DenisBalan/PSVandalism) Wrapper around Pokrovsky, which makes possible vandalising Github History from Powershell\n- [github-board](https://github.com/bayandin/github-board) commits gitfiti from easy templates\n- [ghdecoy](https://github.com/tickelton/ghdecoy) fills the contribution graph with random data (sneaky!)\n- [Gitfiti Painter](http://codepen.io/cbas/pen/vOXeKV) visual drawing tool for artists to easily create templates\n- [git-draw](https://github.com/ben174/git-draw) a Chrome extension which will allow you to freely draw on your commit map(!)\n- [github-jack](https://github.com/tardypad/github-jack) a pure bash version with space invaders and shining creepypasta\n- [github-graffiti](https://github.com/mavrk/github-graffiti) a GUI editor with a bash script to allow custom designs on your commit map\n- [Paint GitHub](https://paintgithub.com/) is the most convenient way to paint your GitHub contribution graph!\n- [contribution-pixel-messages](https://github.com/abulvenz/contribution-pixel-messages) generates a date plan from an editable GUI\n- Seen something else? Submit a pull request or open an issue!\n","funding_links":[],"categories":["Python","KSP","Communication and Collaboration Tools","Python (1887)","有趣项目","Fun"],"sub_categories":["Mini Program","Version Control, Wiki, Knowledge base","Github 相关","Sans"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgelstudios%2Fgitfiti","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgelstudios%2Fgitfiti","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgelstudios%2Fgitfiti/lists"}