WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

feat: initial version #6

feat: initial version

feat: initial version #6

---
name: Update Repositories List in Roadmap
on:
workflow_dispatch:
inputs:
organizations:
description: 'GitHub organizations to fetch repositories from (comma-separated)'
required: true
default: 'LizardByte,LizardByte-infrastructure'
schedule:
- cron: '0 0 * * *'
pull_request:
branches:
- master
types:
- opened
- reopened
- synchronize
paths:
- '.github/ISSUE_TEMPLATE/roadmap.yml'
push:
branches:
- master
paths:
- '.github/workflows/update_issue_templates.yml'
jobs:
update-repositories:
name: Update Repository List
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: '2' # allow git diff to work
- name: Get organizations
id: get_orgs
run: |
if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
ORGS="${{ github.event.inputs.organizations }}"
else
ORGS="LizardByte,LizardByte-infrastructure" # Default organizations
fi
echo "orgs=$ORGS" >> $GITHUB_OUTPUT
echo "Organizations to process: $ORGS"
- name: Fetch repositories
id: fetch_repos
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const orgs = '${{ steps.get_orgs.outputs.orgs }}'.split(',').map(org => org.trim());
let allRepos = [];
for (const org of orgs) {
try {
console.log(`Fetching repositories for organization: ${org}`);
const opts = github.rest.repos.listForOrg.endpoint.merge({
org: org
});
const repos = await github.paginate(opts);
console.log(`Successfully fetched ${repos.length} repositories from ${org}`);
const activeRepos = repos
.filter(repo => !repo.archived)
.map(repo => `${org}/${repo.name}`);
console.log(`Found ${activeRepos.length} active repositories for ${org}`);
allRepos = [...allRepos, ...activeRepos];
} catch (error) {
console.error(`Error fetching repositories for organization ${org}:`, error);
throw new Error(`Failed to fetch repositories for organization ${org}`);
}
}
// Sort repositories alphabetically
allRepos.sort();
console.log(`Found ${allRepos.length} repositories across ${orgs.length} organization(s)`);
return allRepos;
- name: Update repositories dropdown
id: update_dropdown
uses: ShaMan123/[email protected]
with:
form: .github/ISSUE_TEMPLATE/roadmap.yml
dropdown: repositories
options: ${{ steps.fetch_repos.outputs.result }}
dry_run: no-push
- name: git diff
run: git diff --color HEAD^..HEAD
- name: Create/Update Pull Request
if: github.event_name != 'pull_request'
uses: peter-evans/create-pull-request@v7
with:
add-paths: |
.github/ISSUE_TEMPLATE/*.yml
token: ${{ secrets.GH_BOT_TOKEN }}
commit-message: "chore: Update repositories list in roadmap.yml"
branch: bot/update-repositories-list
delete-branch: true
title: "chore: Update repositories list in roadmap.yml"
body: |
This PR updates the list of repositories in the roadmap issue template.
The list was automatically generated by a GitHub Action.
labels: |
auto-approve
auto-merge