Proving that "commit productivity" is a scam, one automated green square at a time.
Long story short: I don't like people who measure productivity and learning by how many commits you make. It's the exact same energy as measuring developer skill by asking, "how many lines of code did you write today?"
So, FORK THAT. I automated that BS(kinda of). Mwahahahah.
(Anyways, this was cooler in my head, ngl).
1. Clone the repository
git clone https://github.com/piratebird/gitbandit.git
cd gitbandit2. Set up your Python Virtual Environment Keep your system packages clean.
python3 -m venv venv
# Activate it (Linux/macOS)
source venv/bin/activate
# Activate it (Windows)
# venv\Scripts\activate 3. Install Dependencies
pip install -r requirements.txt4. Configure your GitHub Token Gitbandit needs a Personal Access Token (PAT) to work its magic.
- Go to GitHub -> Settings -> Developer Settings -> Personal access tokens -> Tokens (classic)
- Generate a new token. Ensure you check the
reposcope (Full control of private repositories). - Copy the
.env.examplefile and rename it to.env. - Paste your token inside:
# Inside your .env file
GITHUB_TOKEN=your_personal_access_token_hereOnce your environment is set up, just run the main script. It will ask for your target repository and handle the rest (creating the repo if it doesn't exist, and committing so hell yeah :b ).
python __main__.pyPro-tip for automation: Instead of leaving a Python script running 24/7 in the background, set up a native
crontabor asystemdtimer to run this script daily.
- Time Traveler: Spoofing
GIT_AUTHOR_DATEto commit into the past. - Better UX: Polish up the CLI interactions.
- The "Green Square" Canvas: Build a TUI to actually draw specific shapes on the GitHub contribution graph using targeted commits.
- Engine Swap: Possible implementation of the native
subprocesslibrary instead ofPyGithub(or make it a user choice). - Built-in Scheduler: Solve the dilemma between
crontabvs.systemd-servicevs. a Python script running 25/8. - Idk, if any other idea comes to mind Imma add it here.
This project is licensed under the GPL License. See the LICENSE file for details.