Skip to content

noobhacker02/github-readme-automation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

11 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ€– GitHub Profile README Auto-Update System

Git Reader Header Banner

Python GitHub Actions License


Automatically fetch and display your GitHub projects in your profile README.
Features β€’ Installation β€’ Customization β€’ Manual Trigger


🎯 Overview

This project automatically updates your GitHub profile README (e.g., Your-Username/Your-Username) with your latest projects based on repository topics/tags. It uses a GitHub Action to run a Python script daily, fetch your tagged projects, and commit the changes back to your README.

✨ Features

  • πŸ”„ Automatic Daily Updates: Runs on a schedule (e.g., every day at midnight UTC).
  • 🏷️ Tag-Based Filtering: Only displays repos with topics you define (e.g., showcase, ai, rag).
  • 🎨 Custom Image Support: Automatically finds and uses a custom preview image (e.g., RepoName.png) from your project, or falls back to the standard GitHub OpenGraph image.
  • πŸ“± Mobile Responsive: The generated HTML cards work perfectly on all devices.
  • ⏰ Last Updated Timestamp: Shows exactly when the project list was last refreshed.
  • πŸš€ Zero Maintenance: Set it and forget it.

πŸš€ Installation

You can set this up in your own GitHub profile in 5 minutes.

Step 1: Create the File Structure in Your Profile Repo

In your profile repository (the one named Your-Username/Your-Username), create the following folder and file structure:


Your-Username/
β”œβ”€β”€ .github/
β”‚   └── workflows/
β”‚       └── update-readme.yml  
β”œβ”€β”€ scripts/
β”‚   └── update\_projects.py  
β”œβ”€β”€ requirements.txt  
└── README.md

Step 2: Add Project Markers to your README.md

In your README.md file, add these two HTML comments. The script will find these tags and replace everything between them.

<!--START_PROJECTS_LIST-->
<!--END_PROJECTS_LIST-->

Step 3: Add the Code Files

Copy the code from this repository into the files you just created:

Step 4: Configure GitHub Actions Permissions

You must give the GitHub Action permission to write to your repository.

  1. Go to your profile repository's Settings tab.
  2. Navigate to Actions > General.
  3. Scroll down to "Workflow permissions".
  4. Select "Read and write permissions".
  5. Click Save.

Step 5: Tag Your Repositories

For any project you want to appear on your README:

  1. Go to that project's repository page.
  2. Click the βš™οΈ (gear icon) next to the "About" section.
  3. In the "Topics" field, add one of the tags you defined in the script (e.g., showcase, ai).
  4. Click "Save changes".

That's it! Your README will update on the next scheduled run or when you trigger it manually.


πŸ› οΈ Manual Trigger

You don't have to wait for the daily schedule to see your changes.

  1. Go to your profile repository's Actions tab.
  2. On the left, click "Update README with Projects".
  3. Click the "Run workflow" button on the right.

🎨 Customization

Change Target Tags

Edit scripts/update_projects.py to add or remove your desired tags:

TARGET_TAGS = ["rag", "lln", "showcase", "ai", "your-custom-tag"]

Change Update Frequency

Edit .github/workflows/update-readme.yml and change the cron schedule:

schedule:
  # - cron: '0 0 * * *'  # Daily at midnight (Default)
  - cron: '0 */6 * * *'  # Every 6 hours
  # - cron: '0 0 * * 1'    # Every Monday

Add Custom Preview Images

For any project, you can add a custom image.

  1. Create a preview image for your project (e.g., My-Awesome-Project.png).
  2. The image name must exactly match your repository name.
  3. Push this image to the main branch of that project's repository.

The script will automatically find it and use it instead of the default GitHub preview.


πŸ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.

MIT LICENSE

About

πŸ€– GitHub Profile README Auto-Update System

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages