github-automated-repos is a free, open source project & work management project written in TypeScript and released under MIT. It has 1,699 GitHub stars, 24 forks and 0 open issues, and was last pushed 10 months ago. On this registry it ranks #45 of 73 tracked projects in Project & Work Management, with 5 head-to-head comparisons available. It gained 9 stars over the last 30 tracked days.

What is github-automated-repos?

github-automated-repos is an MIT-licensed TypeScript and ReactJS library, published on npm, that builds the project list on a portfolio or website from GitHub repository Topics instead of hand-edited code files, and it is aimed at frontend developers who publish a personal project page.

What it is

github-automated-repos is a ReactJS library plus a companion CLI, written in TypeScript and released under the MIT licence. It is listed in this registry under Business Software / Project & Work Management, carries the npm package name github-automated-repos and the CLI name github-automated-repos-cli, and is registered as a GitHub API and GitHub automation tool. The project has 1686 stars, 24 forks, 0 open issues, and its most recent push is dated 2026-01-01. Its homepage is a stack icon reference at https://github-automated-repos.vercel.app/stackicons.

The concrete problem it solves is stated directly in the README. A portfolio or website normally tracks its projects either in project.js files that force the author to edit code every time a project changes, or through raw GitHub API calls that offer no data control. This library replaces both paths. Configuration is written once in the application through the useGitHubAutomatedRepos hook with a GitHub username and a keyword, and from then on the set of visible projects is managed on GitHub itself, in the Topics field of each repository. A keyword such as attached, portfolio or featured decides which repositories appear, and each project card can carry a representative icon and the stacks used.

Key capabilities

  • useGitHubAutomatedRepos hook configured with GitHubUsername and KeyWord as the single in-code configuration point.
  • npx github-automated-repos-cli init scaffolding command that prompts for the GitHub username and fetches public repositories directly from GitHub.
  • Repository filtering by keyword placed in the GitHub Topics field, with attached, portfolio and featured given as working examples.
  • Template file generation, with terminal output showing a written target such as app\projects\page.tsx.
  • Interactive overwrite prompt when the target file already exists, so the page can be regenerated.
  • Card customisation through a representative icon and the list of stacks used, supported by the icon reference at /stackicons.
  • Published as the npm package github-automated-repos, with a CodeFactor code quality badge in the README.

Who uses it and how

  • Frontend developers and developers building a portfolio site, matching the developer-portfolio, frontend-developers and github-portfolio topics.
  • Next.js App Router projects: the CLI writes into a path such as app/projects/page.tsx and reports the page ready at http://localhost:3000/projects.
  • Maintainers with many repositories who want to add or remove a project from the site by editing a repository topic rather than shipping a code change.
  • Authors who want each project card to show a chosen icon and the stacks used, using the homepage icon reference as the source.
  • Adoption is modest but real: 1686 stars and 24 forks on the repository.

Getting started

Run npx github-automated-repos-cli init and answer the two prompts for GitHub username and filter keyword, or install the github-automated-repos npm package and configure the useGitHubAutomatedRepos hook directly.

How it compares

No paid products and no comparable tools are named in the facts for this entry, so the only interface it is contrasted against is the GitHub API itself, which the README describes as offering no data control. It stands alone in this registry on that basis.

When to use it — and when not to

Use it when the project page already lives in a React or Next.js application and the desired source of truth is GitHub Topics, since there is no database, storage layer or SMTP service to operate and the data is read from GitHub. The README is sparse and partly written in Portuguese with leftover raw image markup and comment fragments, so expect to read the CLI prompts and terminal output rather than the prose. Do not pick it for a non-React stack, or when project data must come from a source other than public GitHub repositories.

project readme (upstream, from github) — read inline

English   Português

banner_logo_github-automated-repos

GitHub NPM Paackage CodeFactor PRs Welcome


✅ github-automated-repos is the library,ReactJS, that gives you the power to control your GitHub data, your projects on the portfolio / website, in your own GitHub in one place!

❌ project.js files ( edit code ) ❌ GitHub API ( no data control )

github-automated-repos library

https://github-automated-repos.vercel.app

Contributing Guidelines



init - CLI    Stack Icons    Hook & Components    Fill the fields of the repository (GitHub)    React Query Config.   

skills About Library

This library automates the view your GitHub projects on your porfolio / website in one place. But how? Make the code configuration only once in your application with github-automated-repos, and manage the view of your projects on GitHub in the Topics field. Choose which project will be seen, and you can even customize your project card, for example, with a representative icon and show which stacks were used. All in one place!

Details
Control your projects
Control your Projects
Customize and represent through icons.
Customize and represent through icons
In one place
In one place



init - CLI

1. Run Command

npx github-automated-repos-cli init

dots-horizontal-svgrepo-com (2)

2. Enter data

🦑 GitHub Username

You will be prompted to enter your GitHub username.

This is used to fetch your public repositories directly from GitHub.

✔ GitHub username: xxxxxx
🔑 Keyword (Repository Filter)

Next, you’ll choose a keyword (for example: attached , portfolio , featured ).

This keyword will be used to filter repositories via the GitHub Topics field.

✔ Keyword to filter (e.g. 'attached'): attached

[!IMPORTANT] Don't forget to enter your Keyword in the Topics field of each project so it appears on the generated page.

image

dots-horizontal-svgrepo-com (2)

3. Terminal Result

√ Target file already exists:
C:\Users\Leveling IT\Desktop\Person-Page\testenext\app\projects\page.tsx
What would you like to do? » Overwrite
✔ GitHub username: digoarthur
✔ Keyword to filter (e.g. 'attached'): attached
✔ Template ready.
✔ File created at: C:\Users\Leveling IT\Desktop\Person-Page\testenext\app\projects\page.tsx

✨ Your project page is ready!
🔗 http://localhost:3000/projects

Init finished successfully.

dots-horizontal-svgrepo-com (2)

4. Banner

Insert banner, layout images to represent your project. Types are .PNG and .SVG. For this to be possible, the name of the image file must contain bannerin the name. Insert your images in the following path: Ex.:

└── public
      └── `bannerXYZ.png` 
      └── `bannerABC.svg` 
    ├── ...
dashgo_layout dashfincaneiro_layout proffy_layout

dots-horizontal-svgrepo-com (2)

5. Choose the repositories and fill in the Topics field with the keyword you determined.

image

[!IMPORTANT] To insert stack names in the topics field, see web documentation or the table below. > Stack Icons

react-icons NET_Core_Logo mysql-logo-svgrepo-com mongo-svgrepo-com (1) linux-svgrepo-com vue Vitejs-logo typescript tailwind-svgrepo-com swift swagger-svgrepo-com (1) storybook sqlite-svgrepo-com (1) spring-svgrepo-com scala-svgrepo-com sass-svgrepo-com ruby-svgrepo-com Ruby_On_Rails_Logo react-query-seeklogo com python-svgrepo-com prisma prettier

dots-horizontal-svgrepo-com (2)

6. ✅Ready! JSON - Data from repositories chosen by you!

[!TIP] Customize your cards your way

JSON - DATA

Data Example ~ console.log(data) ~

Array(4)
0
: 
{id: 517152367, name: 'Dashgo', html_url: 'https://github.com/DIGOARTHUR/Dashgo', description: 'IGNITE - Trilha ReactJS/ - Neste projeto é aplicad…ate, Components, Props. Recursos do JS como: Map.', topics: Array(7), …}
1
: 
{id: 482667387, name: 'DashBoard-Financeiro', html_url: 'https://github.com/DIGOARTHUR/DashBoard-Financeiro', description: 'IGNITE - Trilha ReactJS/ Chapter II - Esta aplicaç…mpanhamento de valores de entrada, saída e total.', topics: Array(6), …}
2
: 
{id: 412849316, name: 'Task.TODO', html_url: 'https://github.com/DIGOARTHUR/Task.TODO', description: 'IGNITE - Trilha ReactJS/ - Este projeto aborda con…Filter e Math, Spread. E para estilização o SASS.', topics: Array(7), …}
3
: 
{id: 355616217, name: 'Move.it', html_url: 'https://github.com/DIGOARTHUR/Move.it', description: 'NLW#04 - Rocketseat - Utilizando a técnica Pomodor… o objetivo é executar a tarefa do seu interesse.', topics: Array(8), …}
length
: 
4
[[Prototype]]
: 
Array(0)
IN PAGE WEB

[!TIP] Customize your cards your way!

portfolio_page




hook-svgrepo-com Stack Icons

Stack icons for you to customize your cards; insert the labels in the Topics field of your repository.



Logo Stack Name Logo Stack Name Logo Stack Name Logo Stack Name
androidstudio androidstudio angular angular arduino arduino aws aws
babel babel bash bash bitbucket bitbucket blender blender
bootstrap bootstrap c c canva canva clion clion
cpp cpp csharp csharp css3 css3 dart dart
denojs denojs django django docker docker dotnetcore dotnetcore
eclipse eclipse elixir elixir eslint eslint expo expo
express express figma figma firebase firebase flask flask
flutter flutter gatsby gatsby gimp gimp git git
go go googlecloud googlecloud graphql graphql grunt grunt
gulpjs gulpjs haskell haskell heroku heroku html5 html5
husky husky inkscape inkscape java java javascript javascript
jenkins jenkins jest jest jira jira jquery jquery
jupyter jupyter kotlin kotlin kubernetes kubernetes laravel laravel
linux linux lua lua markdown markdown materialui materialui
mongodb mongodb mysql mysql nestjs nestjs netcore netcore
nextjs nextjs nodejs nodejs npm npm objectc objectc
pearl pearl php php postgresql postgresql prettier prettier
prisma prisma pycharm pycharm python python r r
rails rails raspberrypi raspberrypi react react reacticons reacticons
redux redux ruby ruby rust rust salesforce salesforce
sass sass scala scala sequelize sequelize spring spring
sqlite sqlite storybook storybook styledcomponents styledcomponents swagger swagger
switch switch tailwind tailwind typescript typescript visualstudio visualstudio
visualstudiocode visualstudiocode vitejs vitejs vuejs vuejs yarn yarn



hook-svgrepo-com abstract Hook & Components

Learn more about the Hook and Components that render the Stack icons.


  • useGitHubAutomatedRepos hook responsible for automating the return of data from repositories. This hook takes two parameters: GitHubUsername & keyword. The return is an array of objects containing 7 properties: id, banner, html_url, homepage, topics, name and description.

    const { data, isLoading, isLoadingError } = useGitHubAutomatedRepos("GitHubUsername", "KeyWord");
    
    • return data example:

    [
    {
        banner:"https://raw.githubusercontent.com/DIGOARTHUR/github-automated-repos/main/src/assets/images/banner.png"
        description: "The library that automates, in one place, the administration of your github projects on your website."
        homepage: "https://github-automated-repos.vercel.app"
        html_url: "https://github.com/DIGOARTHUR/github-automated-repos"
        id: 585693873
        name: "github-automated-repos"
        topics: (8) ['automated', 'deploy', 'github', 'library', '
    }
    ]
    
    • isLoading: while the data is not loaded, isLoading returns TRUE.

        if (isLoading) {
           return  loading...
         }
    
    • isLoadingError: will be true if the query failed while fetching for the first time.


  • StackIcons The component returns, based on the iteration of the topic array that is contained in data, icons of the stacks used in your project. Enter the stacks used in your repository's topic field.. Check the Stack Icons tab!

     data?.map((item) => {
         return (
        ...
        {item.topics.map((icon, index) => {
             return (
    
        }
        ...
    
    • Render component StackIcons example:

react-iconsNET_Core_Logo mysql-logo-svgrepo-com mongo-svgrepo-com (1) linux-svgrepo-com vue Vitejs-logo typescript tailwind-svgrepo-com swift swagger-svgrepo-com (1) storybook sqlite-svgrepo-com (1) spring-svgrepo-com scala-svgrepo-com sass-svgrepo-com ruby-svgrepo-com Ruby_On_Rails_Logo react-query-seeklogo com python-svgrepo-com prisma prettier



  • StackLabels component returns, based on the iteration of the topics array that is contained in data, labels of the stacks used in your project. Insert the stacks used in the topics field of your repository. Check the Stack Icons tab!

       data.map((item) => {
         return (
        ...
        {item.topics.map((icon, index) => {
             return (
    
        }
        ...
    
    • Render component StackLabels example:






skills Fill in the fields in the github repository

[!IMPORTANT] Pay attention to filling in each field of your repository on GitHub.


  • banner: this property returns a .PNG e .SVG image. For this to be possible, the name of the image file must contain bannerin the name. Insert your images in the following path: Ex.:
└── public
      └── `bannerXYZ.png` 
      └── `bannerABC.svg` 
    ├── ...
dashgo_layout dashfincaneiro_layout proffy_layout
  • id: repository identification number. Used as parameter in the key tag. ( This field does not need to be filled in. )

  • html_url: repository link. Used as the link of access. ( This field does not need to be filled in. )

  • homepage: it's the access link to the built page, page deploy. About / Website of your GitHub.

homepage_Props
  • topics: array that brings information about the icons in Stack Icons. Used in both StackLabels e StackIcon components. It is in this field that is passed the key configured in the hook. Refers to the field About / Topics of your GitHub.
topics_Props
  • name: this is the name of the repository. Refers to the field Settings / General / Repository name of your GitHub.
name_Props
  • description: this is the description given to your repository. Refers to the About /Description field of your GitHub.
description_Props

Example Cards Porftolio github-automated-repos




NextJS React Query Config.

[!NOTE] Follow the official standard React Query installation instructions.

import { useGitHubAutomatedRepos, StackIcons, StackLabels } from "github-automated-repos/react-query";
Hook Example:
// Usage Example + [ React Query ]
const { data, isLoading } = useGitHubAutomatedRepos('digoarthur', 'attached', {
 refetchInterval: 300000, // 5 minutes
 refetchOnWindowFocus: false,
 staleTime: 10 * 60 * 1000, // 10 minutes
});





Love github-automated-repos? Give our repo a star ⭐ ⬆️ .

based in: Api Github

by: @digoarthur Brazil Flag

github-automated-repos-cli

Frequently asked questions

Is github-automated-repos free to use?

github-automated-repos is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does github-automated-repos do?

The library, ReactJS, that gives you the power to control your GitHub data, your projects on the portfolio / website, in your own GitHub in one place!

What is github-automated-repos written in?

github-automated-repos is primarily written in TypeScript. Its source is publicly available at https://github.com/digoarthur/github-automated-repos, and it has 1,699 GitHub stars.