Skip to content

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!

License

Notifications You must be signed in to change notification settings

digoarthur/github-automated-repos

Repository files navigation

Github-automated-repos

angular-logo
Github-automated-repos is the lib that gives you the power to manage the visualization of your projects on the website,
in your own GitHub in one place!

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

Contributing Guidelines

NPM Paackage CodeFactor GitHub Husky Eslint Prettier Husky

ReactJS Check ViteJS Check NextJS Check

Installation

    npm install github-automated-repos
    # or
    yarn add github-automated-repos

hook config.

    import {useGitHubAutomatedRepos} from "github-automated-repos";

    const data = useGitHubAutomatedRepos("GitHubUsername", "KeyWord");

skills About Library

This library automates the view your GitHub projects on your 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 on your website, and you can even customize your project card, for example, with a representative icon and show which stacks were used. All in one place!

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

skills Library

Import

    import { useGitHubAutomatedRepos, ProjectIcon, StackIcon } from 'github-automated-repos/index';

The package imports four elements:

  • useGitHubAutomatedRepos hook responsible for automating the repositories. It returns a function called dataGithubRepos, which takes two parameters: data (data that comes from the GitHub API) and the keyword (the latter responsible for showing the project on your website from the moment it is declared in the Topics field of the your Github repository). The dataGithubRepos returns, so optimized, an array of objects containing 6 properties: id, html_url, homepage, topics, name and description.

    const data = useGitHubAutomatedRepos("GitHubUsername", "KeyWord");

  • StackIcons component returns, based on the iteration of the topics array, icons of the stacks used in your project. Insert the stacks used in the topics field of your repository. Check the Stack Icons tab!

       <StackIcons key={ } itemTopics={ } className={ } />

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

       <StackLabes key={ } itemTopics={ } className={ } />

  • ProjectIcons component returns, based on the iteration of the topics array, icons to represent your project. The project tag must be inserted in the topics field of your repository. Check the Project Icons tab!

       <ProjectIcons key={ } itemTopics={ } className={ } />


Fill in the fields in the github repository

  • 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.

image


  • topics: array that brings information about the icons in Project Icons and Stack Icons. Used in both ProjectIcon and 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.

image


  • name: This is the name of the repository. Refers to the field Settings / General / Repository name of your GitHub.

image


  • description: This is the description given to your repository. Refers to the About /Description field of your GitHub.

image



Code Example

❗❗ Don't forget to fill in the fields: your GitHubUsername and keyWord (determined by you).

 const data = useGitHubAutomatedRepos("GitHubUsername", "KeyWord");

Javascript Javascript

  import './App.css';
  import { useGitHubAutomatedRepos, ProjectIcons, StackIcons, StackLabels, } from 'github-automated-repos';
  function App() {
                              {/*useGitHubAutomatedRepos hook*/ }
  const data = useGitHubAutomatedRepos("GitHubUsername", "KeyWord");

    return (
      <div className="App">
        {
          data.map((item) => {
            return (
              <div key={item.id}>

                {/*Project Icons*/}
                {item.topics.map((icon) => {
                  return (
                    <ProjectIcons key={icon} className="project_Icon" iconItem={icon} />
                  )
                })}

                {/*html Url*/}
                <a href={item.html_url}>
                    {/*Name Project*/}
                    <h1>{item.name}</h1>
                </a>

                {/*Description*/}
                <p>{item.description}</p>
    
                {/*Homepage*/}
                <a href={item.homepage}>
                    <h3>Homepage</h3>
                </a>

                {/*Stacks Icon and Stacks Label*/}
                {item.topics.map((icon) => {
                  return (
                     <div key={icon} style={{display:'flex', justifyContent:'center'}}>
                      <StackIcons key={icon} className="stack_Icon" itemTopics={icon} />
                      <StackLabels key={icon} itemTopics={icon} />
                      </div>
                  )
                })}

              </div>

            )
          })
        }
      </div>
    );

  }
  export default App;

## Framework Settings.

NextJS

└── My-app
    ├── ...
    ├── next.config.js
    ├── ...
/** @type {import('next').NextConfig} */
const nextConfig = {
  reactStrictMode: true,
  transpilePackages: ['github-automated-repos'],
}

module.exports = nextConfig

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

based in: Api Github

by: @digoarthur