Skip to content

yi-Xu-0100/repo-list-generator

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

⚑️ Repo List Generator GitHub Action

sync2gitee(list) test Github last commit Github latest release Github license

views views per week clones clones per week

The GitHub action that generate repo list for user or organization.

The personal access token (PAT) is used to fetch all the repository list of the authenticated user. Guide in here.

🎨 Table of Contents

πŸš€ Configuration

inputs:
  user:
    description: >
      Set up the user name to generate repository list.
      It can be user or organization.
      The 'owner/repository' will transform to 'owner'.
    required: false
    default: ${{ github.repository }}
  max_page:
    description: >
      Set up maxPage for request to generate repository list.
      Default 100 repository per page can be fetched.
    required: false
    default: 10
  my_token:
    description: >
      Set up the personal access token (PAT).
      The PAT is used to generate repository list for user or organization.
    required: false
    default: ${{ github.token }}
  block_list:
    description: >
      Set up the block_list for repoList.
      The repositories in block_list will exclude in repository list.
    required: false
    default: ''
  allow_empty:
    description: >
      Set up whether allow empty repository for repoList.
    required: false
    default: false
  allow_archived:
    description: >
      Set up whether allow archived repository for repoList.
    required: false
    default: true

outputs:
  repo:
    description: >
      Current repository name.
  repoList:
    description: >
      Repository list exclude private and fork.
      Public(source without private) and no fork.
  repoList_ALL:
    description: >
      Repository list include private and fork.
      Source(public and private) and fork
  repoList_PRIVATE:
    description: >
      Repository list include private.
      Source(public and private) and no fork.
  repoList_FORK:
    description: >
      Repository list include fork.
      Public(source without private) and fork.
  privateList:
    description: >
      Private repository list.
      Only private(fork can not be private).
  forkList:
    description: >
      Fork repository list.
      Only fork(private can not be fork).
  emptyList:
    description: >
      Empty repository list.
      Default exclude in each list.
  archivedList:
    description: >
      Archived repository list.
      Default include in each list.

πŸ“ Default example

Default example use GITHUB_TOKEN to fetch public repository list for user or organization.

- name: Get Repo List
  id: repo
  uses: yi-Xu-0100/repo-list-generator@v1.1.1
  # with:
  # (default)my_token: ${{ secrets.GITHUB_TOKEN }}
  # (default)user: ${{ github.repository }}
  # (default)max_page: 10
  # (default)block_list:
  # (default)allow_empty: false
  # (default)allow_archived: true

- name: Echo Output
  run: |
    echo repo: ${{steps.repo.outputs.repo}}
    echo repoList: ${{steps.repo.outputs.repoList}}
    echo repoList_ALL: ${{steps.repo.outputs.repoList_ALL}}
    echo repoList_PRIVATE: ${{steps.repo.outputs.repoList_PRIVATE}}
    echo repoList_FORK: ${{steps.repo.outputs.repoList_FORK}}
    echo privateList: ${{steps.repo.outputs.privateList}}
    echo forkList: ${{steps.repo.outputs.forkList}}
    echo emptyList: ${{steps.repo.outputs.emptyList}}
    echo archivedList: ${{steps.repo.outputs.emptyList}}

πŸ“ Example for get private repository

This example use REPO_TOKEN to fetch private repository list for user or organization. The Guide to generate in here.

- name: Get Repo List
  id: repo
  uses: yi-Xu-0100/repo-list-generator@v1.1.1
  with:
    my_token: ${{ secrets.REPO_TOKEN }}
    # (default)user: ${{ github.repository }}
    # (default)max_page: 10
    # (default)block_list:
    # (default)allow_empty: false
    # (default)allow_archived: true

- name: Echo Output
  run: |
    echo repo: ${{steps.repo.outputs.repo}}
    echo repoList: ${{steps.repo.outputs.repoList}}
    echo repoList_ALL: ${{steps.repo.outputs.repoList_ALL}}
    echo repoList_PRIVATE: ${{steps.repo.outputs.repoList_PRIVATE}}
    echo repoList_FORK: ${{steps.repo.outputs.repoList_FORK}}
    echo privateList: ${{steps.repo.outputs.privateList}}
    echo forkList: ${{steps.repo.outputs.forkList}}
    echo emptyList: ${{steps.repo.outputs.emptyList}}
    echo archivedList: ${{steps.repo.outputs.emptyList}}

πŸš€ More Related Usage

This action result can be used in the follow actions static_list generating.

πŸ“ Use dependabot to keep action up-to-date

This file is build in ./github/dependabot.yml to keep action up-to-date.

version: 2
updates:
  # Maintain dependencies for GitHub Actions
  - package-ecosystem: 'github-actions'
    directory: '/'
    schedule:
      interval: 'daily'

πŸ™ˆ Generate my_token

This part is obtained from yi-Xu-0100/traffic-to-badge.

You'll first need to create a personal access token (PAT) which make the action having the access to the GitHub API of the authenticated user.

You can generate a PAT by going to Settings(GitHub) -> Developer Settings -> Personal Access Tokens -> Generate new token, and will need to grant repo permission. For more information, see the GitHub documentation.

After you generated the PAT, go to Settings(repository) -> Secrets -> New secret, name the secret REPO_TOKEN, and copy the PAT into the box. Then, you can use the ${{ secrets.REPO_TOKEN }} to fill with the input my_token.

πŸ”Š CHANGELOG

πŸ“„ LICENSE