Skip to content

ThanhNguyxn/Git-Gotchi

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

πŸ‘Ύ Profile-Gotchi

GitHub Action License: MIT Version

Turn your GitHub Profile into a living, breathing virtual pet habitat! 🐾

πŸ”΄ Live Demo

This is the actual pet generated for ThanhNguyxn, updated daily at 00:00 UTC:

Live Profile Gotchi Demo

Profile-Gotchi is a GitHub Action that generates a dynamic, pixel-art SVG of a virtual pet. Your pet's species and mood evolve based on your coding activity!


✨ Features

  • Dynamic Evolution: Your pet changes species based on your top programming language.
  • Mood System: Keep your pet happy by committing code daily!
  • Zero Config: Works out of the box with sensible defaults.
  • Lightweight: Generates a simple SVG, no heavy images.

🦁 The Pet Roster

Your coding habits determine your companion. View the full Pet Gallery here.

Language Pet Species Icon
JavaScript / TypeScript Spider πŸ•·οΈ
Python Snake 🐍
Go Gopher 🐹
Rust Crab πŸ¦€
PHP Elephant 🐘
Java Coffee β˜•
Swift Bird πŸ•ŠοΈ
C++ / C# Robot πŸ€–
C Gear βš™οΈ
Kotlin Fox 🦊
Dart Hummingbird 🐦
Scala Ladder πŸͺœ
R Owl πŸ¦‰
Perl Camel πŸͺ
Shell Tux 🐧
Ruby Gem πŸ’Ž
HTML / CSS Chameleon 🦎
Lua Capybara 🦫
Julia Alpaca πŸ¦™
Elixir Phoenix πŸ”₯
Others Cat 🐱
Star 🌟 or Fork 🍴 Unicorn πŸ¦„

🎭 Moods & States (Priority System)

Priority State Condition Icon
1 Ghost No commits for 7+ days πŸ‘»
2 Sleeping No commits today (active in last 7 days) πŸ’€
3 Hyper 10+ commits in last 24h πŸ”₯
4 Night Owl Last commit between 00:00-04:00 (local time) πŸ¦‰
5 Weekend Chill Saturday/Sunday + < 3 commits πŸ–οΈ
6 Happy Default active state ⚑

NEW in v2.0.0: Each mood has unique pixel art with distinct eye styles!


πŸ¦‹ Evolution System

Your pet evolves as you level up! Each evolution stage brings visual changes and effects.

Stage Levels Icon Effects
Egg 1-5 πŸ₯š 70% size, no effects
Baby 6-15 🐣 85% size, growing!
Juvenile 16-30 🌱 95% size, green aura
Adult 31-50 ⭐ 100% size, gold aura
Master 51-75 πŸ’« 105% size, purple aura + sparkles
Legendary 76-99 πŸ‘‘ 110% size, orange aura + sparkles
Mythical 100 🌟 115% size, cyan aura + floating runes
πŸ₯š Egg 🌱 Juvenile ⭐ Adult πŸ‘‘ Legendary 🌟 Mythical
Egg Juvenile Adult Legendary Mythical

Pro Tip: When you're close to evolving (within 2 levels), you'll see a ✨ Evolution Ready! ✨ indicator!


πŸŽ„ Seasonal Events (Auto-Detect!)

Your pet automatically wears holiday accessories based on the current date!

πŸŽ… Christmas πŸŽ‰ New Year πŸ’• Valentine πŸŽƒ Halloween
Christmas NewYear Valentine Halloween

Also includes: 🧧 Tet (Lunar New Year), 🌹 Women's Day, β˜• Programmer Day, 🎩 Men's Day. Easter Eggs: πŸ‘» Friday 13th, 🀑 April Fools.

View full Event Calendar in Gallery


πŸ“– Setup Guide

Follow these steps to add a pet to your profile:

Step 1: Create the Workflow File

  1. In your repository (e.g., username/username), go to the Actions tab.
  2. Click New workflow -> set up a workflow yourself.
  3. Name the file profile-gotchi.yml.
  4. Paste the following code:
name: Profile Gotchi

on:
  schedule:
    - cron: '0 0 * * *' # Updates daily at 00:00 UTC
  workflow_dispatch: # Allows manual trigger

jobs:
  update-pet:
    permissions:
      contents: write
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      
      - name: Generate Pet πŸ‘Ύ
        uses: ThanhNguyxn/Git-Gotchi@main
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          username: ${{ github.repository_owner }}
          # Optional: Advanced Configuration
          timezone: 'UTC'               # Recommended for international users
          background_theme: 'minimal'   # Options: 'minimal', 'cyberpunk', 'nature'
          show_level: 'true'            # Show level stats on pet
          
      - name: Commit & Push πŸ’Ύ
        run: |
          git config --global user.name 'github-actions[bot]'
          git config --global user.email 'github-actions[bot]@users.noreply.github.com'
          git add dist/pet.svg
          git commit -m "Update Profile-Gotchi πŸ‘Ύ" || exit 0
          git push

Advanced Configuration Options

🌍 Timezone

Set your local timezone for accurate mood detection (Night Owl, Weekend Chill).

timezone: 'UTC'                 # Recommended for international (default)
timezone: 'America/New_York'    # US Eastern
timezone: 'Europe/London'       # UK
timezone: 'Asia/Tokyo'          # Japan
timezone: 'Australia/Sydney'    # Australia

Find your timezone: Use IANA timezone format. Common examples: America/Los_Angeles, Europe/Paris, Asia/Singapore.


🎨 Background Theme

Choose a visual style for your pet's background.

Theme Preview Description
minimal Minimal Clean, subtle gradient (default)
cyberpunk Cyberpunk Neon purple grid, futuristic
nature Nature Green meadow with clouds
background_theme: 'minimal'     # Default - clean look
background_theme: 'cyberpunk'   # Neon vibes πŸŒ†
background_theme: 'nature'      # Outdoor feel 🌿

πŸ“Š Show Level Stats

Display your coding level and XP progress on the pet.

show_level: 'true'   # Show level (default)
show_level: 'false'  # Hide level - pet only

XP Formula: Every commit = 10 XP. Level up by coding more!


πŸ“‹ Full Example

- name: Generate Pet πŸ‘Ύ
  uses: ThanhNguyxn/Git-Gotchi@main
  with:
    github_token: ${{ secrets.GITHUB_TOKEN }}
    username: ${{ github.repository_owner }}
    
    # 🌍 Timezone (for Night Owl & Weekend detection)
    timezone: 'UTC'
    
    # 🎨 Theme (minimal, cyberpunk, nature)
    background_theme: 'cyberpunk'
    
    # πŸ“Š Show level stats
    show_level: 'true'

Step 2: Check Permissions

Ensure your workflow has permission to write to the repository:

  1. Go to Settings -> Actions -> General.
  2. Scroll down to Workflow permissions.
  3. Select Read and write permissions.
  4. Click Save.

Step 3: Add the Pet to your Profile

Edit your README.md and add the following markdown where you want the pet to appear:

### My Coding Pet πŸ‘Ύ
![Profile Gotchi](dist/pet.svg)

βš™οΈ Configuration

Input Description Required Default
github_token Your GitHub Token. Use ${{ secrets.GITHUB_TOKEN }}. βœ… N/A
username The GitHub username to track. βœ… N/A

Note

Security Note: The ${{ secrets.GITHUB_TOKEN }} is a standard, temporary token automatically provided by GitHub Actions. It is safe to use in your workflow file and does not expose your personal access tokens or secrets.


🀝 Contributing

Contributions are welcome! Feel free to open an issue or submit a Pull Request.

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Made with ❀️ by ThanhNguyxn