Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Dec 22, 2025

Refactors the awesome-list repository to separate data from presentation, enabling automated validation and README generation.

Changes

Data Layer

  • data/repositories.yml - Single source of truth containing 231 repositories across 20 categories in YAML format
  • Nested structure preserving category hierarchy
  • Fixed 5 data quality issues (invalid URLs, duplicates, empty fields)

Scripts

  • scripts/validate_data.py - Validates YAML schema, GitHub URLs, required fields, and detects duplicates
  • scripts/render_readme.py - Generates README.md from YAML with consistent formatting
  • scripts/extract_data.py - One-time migration helper (extracts from existing README)

Automation

  • .github/workflows/render-readme.yml - GitHub Actions workflow that:
    • Validates data on every push/PR
    • Auto-generates and commits README.md when data changes
    • Comments on PRs if manual regeneration needed

Documentation

  • CONTRIBUTING.md - Guidelines for adding repositories and categories
  • TESTING.md - Local development and testing instructions
  • requirements.txt - Python dependencies (pyyaml)

Benefits

  • Easier maintenance - Edit YAML instead of markdown with complex formatting
  • Data validation - Automated checks for URL validity, duplicates, required fields
  • Consistency - Generated README ensures uniform formatting
  • Extensibility - Can generate additional formats (JSON API, website) from same data source
  • Quality control - CI fails if data is invalid

Example Usage

Add a new repository:

categories:
  dependency-injection-ioc-container:
    repositories:
    - name: MyGenerator
      url: https://github.com/user/mygenerator
      description: Description of what it does

Run validation and render:

python scripts/validate_data.py && python scripts/render_readme.py
Original prompt

let's refactor this awesome-list-style repository.

I'd like for the actual data to be separated from the markdown presentation layer. The list of repostiories with their descriptions could be extracted into yaml file (or files). A github actions workflow would then sync and render the markdown readme. Suggest some solutions and let me choose the approaches on decision points.


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Copilot AI and others added 2 commits December 22, 2025 21:09
- Extract repository data into YAML format (data/repositories.yml)
- Create rendering script to generate README from YAML
- Add validation script for data quality
- Set up GitHub Actions workflow for automated README generation
- Add CONTRIBUTING.md with documentation

Co-authored-by: amis92 <[email protected]>
Copilot AI changed the title [WIP] Refactor awesome list style repository structure Refactor: Separate data from markdown presentation layer Dec 22, 2025
Copilot AI requested a review from amis92 December 22, 2025 21:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants