Skip to content

Add community and automation infrastructure#2

Merged
Mahmoudz merged 3 commits intomainfrom
copilot/add-community-automation-files
Nov 24, 2025
Merged

Add community and automation infrastructure#2
Mahmoudz merged 3 commits intomainfrom
copilot/add-community-automation-files

Conversation

Copy link
Contributor

Copilot AI commented Nov 23, 2025

Type of change

  • Add a resource
  • Update a resource
  • Fix a broken link
  • Reorganize categories

Description

  • Category: Repository Infrastructure
  • Resource name: Community Templates & CI Workflows
  • URL: N/A (repository files)
  • One-line description (20–120 chars): Community docs and automated link/lint checking
  • Tags (format: category, language, difficulty, license): category:infrastructure, automation:github-actions

Files Added

Root-level documentation:

  • CONTRIBUTING.md - Resource-focused contribution guidelines with tag-based metadata format
  • CODE_OF_CONDUCT.md - Community standards and reporting process

Issue/PR templates:

  • .github/ISSUE_TEMPLATE/report-broken-link.md - Structured broken link reports
  • .github/PULL_REQUEST_TEMPLATE.md (updated) - Resource submission format with category/tag fields

Automation workflows:

  • .github/workflows/link-check.yml - Validates markdown links on PRs, pushes, and weekly schedule
  • .github/workflows/awesome-lint.yml - Enforces awesome-list standards on PRs

Security

Both workflows use explicit permissions: contents: read following least-privilege principle.

Checklist

  • I checked for duplicates.
  • Description and tags included.
  • Links tested and working (or note provided).
  • I followed the project contribution format.
Original prompt

Add community and automation files to improve contributor experience and maintainability for the awesome-topics repo. Files to add (paths and full contents below):

  1. CONTRIBUTING.md at repository root
# Contributing to awesome-topics

Thanks for helping improve this curated map for developers — contributions from anyone are welcome.

What to add
- Ensure the resource is high-quality, relevant to software engineering or developer learning, and not already listed.
- Proposed entry format (in a single list line):
  - [Name](URL) — Short neutral description. (tags)
  - Example: `- [Free Coding Course](https://example.com) — A beginner-friendly course on web fundamentals. (category:learning, language:js, difficulty:beginner)`

Tags
- Use simple tags in parentheses after the description. Common tags: category, language, difficulty, license.
- Tags help readers filter the list and let scripts export machine-readable data.

How to contribute
1. Open a pull request that adds or updates entries in the README under the appropriate section.
2. Keep changes focused and small (one logical change per PR is ideal).
3. If your change is large (reorganizing many items or adding whole learning paths), open an issue first to discuss structure.

Pull request checklist (for contributors)
- [ ] I checked for duplicates.
- [ ] The entry has a short description and tags.
- [ ] Links work (or a note explains a known issue).
- [ ] Changes are limited to the intended section.

Review & maintenance
- This project is community-maintained. Anyone can review and suggest improvements.
- There is no fixed review deadline — maintainers and community members will triage and review PRs as available.
- If you want to take responsibility for a category, mention it in an issue or comment and the community can coordinate.

Automation & formatting
- Try to keep list formatting consistent (Markdown list items).
- Consider running markdown linters locally before opening large PRs.

Thanks — your contribution helps other developers find better resources.
  1. CODE_OF_CONDUCT.md at repository root
# Code of Conduct (summary)

This project aims to be welcoming and inclusive. All contributors and visitors are expected to follow these basic guidelines.

Be respectful
- Be professional and courteous. Assume good intent.
- Do not engage in harassment, hate speech, or personal attacks.

Be constructive
- Focus feedback on the content and the facts.
- When possible, suggest improvements rather than only pointing out problems.

Reporting
- If you encounter unacceptable behavior, please open an issue with the title "CODE OF CONDUCT report" or contact a repository maintainer via GitHub.
- Reports will be handled respectfully and promptly by project maintainers or community moderators.

Enforcement
- Responses may include a request to stop, moderation of content, or removal from the project for serious violations.

This is a short, community-friendly code of conduct. You can replace or expand it with the full Contributor Covenant text if you prefer.
  1. .github/ISSUE_TEMPLATE/report-broken-link.md
---
name: Report broken link
about: Report a broken or outdated resource link
title: "[broken link] "
labels: broken-link
---

Please provide:

- Resource name / URL:
- Location in repo (e.g., README → Databases):
- Short note about the problem:
- Suggested replacement (if any):
  1. .github/PULL_REQUEST_TEMPLATE.md
<!-- Use this template for adding or updating resources -->

## Type of change
- [ ] Add a resource
- [ ] Update a resource
- [ ] Fix a broken link
- [ ] Reorganize categories

## Description
- Category:
- Resource name:
- URL:
- One-line description (20–120 chars):
- Tags (format: category, language, difficulty, license):

## Checklist
- [ ] I checked for duplicates.
- [ ] Description and tags included.
- [ ] Links tested and working (or note provided).
- [ ] I followed the project contribution format.
  1. .github/workflows/link-check.yml
name: Link check

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]
  schedule:
    - cron: '0 2 * * 1' # weekly on Monday UTC

jobs:
  markdown-link-check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'
      - name: Install markdown-link-check
        run: |
          npm install -g markdown-link-check
      - name: Run link checks on markdown files
        run: |
          find . -name '*.md' -not -path './node_modules/*' -print0 | xargs -0 -n1 markdown-link-check -q
  1. .github/workflows/awesome-lint.yml
name: Awesome lint

on:
  pull_request:
    branches: [ main ]

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'
      - name: Inst...

</details>

*This pull request was created as a result of the following prompt from Copilot chat.*
> Add community and automation files to improve contributor experience and maintainability for the awesome-topics repo. Files to add (paths and full contents below):
> 
> 1) CONTRIBUTING.md at repository root
> 
> ````markdown
> # Contributing to awesome-topics
> 
> Thanks for helping improve this curated map for developers — contributions from anyone are welcome.
> 
> What to add
> - Ensure the resource is high-quality, relevant to software engineering or developer learning, and not already listed.
> - Proposed entry format (in a single list line):
>   - [Name](URL) — Short neutral description. (tags)
>   - Example: `- [Free Coding Course](https://example.com) — A beginner-friendly course on web fundamentals. (category:learning, language:js, difficulty:beginner)`
> 
> Tags
> - Use simple tags in parentheses after the description. Common tags: category, language, difficulty, license.
> - Tags help readers filter the list and let scripts export machine-readable data.
> 
> How to contribute
> 1. Open a pull request that adds or updates entries in the README under the appropriate section.
> 2. Keep changes focused and small (one logical change per PR is ideal).
> 3. If your change is large (reorganizing many items or adding whole learning paths), open an issue first to discuss structure.
> 
> Pull request checklist (for contributors)
> - [ ] I checked for duplicates.
> - [ ] The entry has a short description and tags.
> - [ ] Links work (or a note explains a known issue).
> - [ ] Changes are limited to the intended section.
> 
> Review & maintenance
> - This project is community-maintained. Anyone can review and suggest improvements.
> - There is no fixed review deadline — maintainers and community members will triage and review PRs as available.
> - If you want to take responsibility for a category, mention it in an issue or comment and the community can coordinate.
> 
> Automation & formatting
> - Try to keep list formatting consistent (Markdown list items).
> - Consider running markdown linters locally before opening large PRs.
> 
> Thanks — your contribution helps other developers find better resources.
> ````
> 
> 2) CODE_OF_CONDUCT.md at repository root
> 
> ````markdown
> # Code of Conduct (summary)
> 
> This project aims to be welcoming and inclusive. All contributors and visitors are expected to follow these basic guidelines.
> 
> Be respectful
> - Be professional and courteous. Assume good intent.
> - Do not engage in harassment, hate speech, or personal attacks.
> 
> Be constructive
> - Focus feedback on the content and the facts.
> - When possible, suggest improvements rather than only pointing out problems.
> 
> Reporting
> - If you encounter unacceptable behavior, please open an issue with the title "CODE OF CONDUCT report" or contact a repository maintainer via GitHub.
> - Reports will be handled respectfully and promptly by project maintainers or community moderators.
> 
> Enforcement
> - Responses may include a request to stop, moderation of content, or removal from the project for serious violations.
> 
> This is a short, community-friendly code of conduct. You can replace or expand it with the full Contributor Covenant text if you prefer.
> ````
> 
> 3) .github/ISSUE_TEMPLATE/report-broken-link.md
> 
> ````markdown
> ---
> name: Report broken link
> about: Report a broken or outdated resource link
> title: "[broken link] "
> labels: broken-link
> ---
> 
> Please provide:
> 
> - Resource name / URL:
> - Location in repo (e.g., README → Databases):
> - Short note about the problem:
> - Suggested replacement (if any):
> ````
> 
> 4) .github/PULL_REQUEST_TEMPLATE.md
> 
> ````markdown
> <!-- Use this template for adding or updating resources -->
> 
> ## Type of change
> - [ ] Add a resource
> - [ ] Update a resource
> - [ ] Fix a broken link
> - [ ] Reorganize categories
> 
> ## Description
> - Category:
> - Resource name:
> - URL:
> - One-line description (20–120 chars):
> - Tags (format: category, language, difficulty, license):
> 
> ## Checklist
> - [ ] I checked for duplicates.
> - [ ] Description and tags included.
> - [ ] Links tested and working (or note provided).
> - [ ] I followed the project contribution format.
> ````
> 
> 5) .github/workflows/link-check.yml
> 
> ```
> name: Link check
> 
> on:
>   push:
>     branches: [ main ]
>   pull_request:
>     branches: [ main ]
>   schedule:
>     - cron: '0 2 * * 1' # weekly on Monday UTC
> 
> jobs:
>   markdown-link-check:
>     runs-on: ubuntu-latest
>     steps:
>       - uses: actions/checkout@v4
>       - name: Setup Node.js
>         uses: actions/setup-node@v4
>         with:
>           node-version: '20'
>       - name: Install markdown-link-check
>         run: |
>           npm install -g markdown-link-check
>       - name: Run link checks on markdown files
>         run: |
>           find . -name '*.md' -not -path './node_modules/*' -print0 | xargs -0 -n1 markdown-link-check -q
> ```
> 
> 6) .github/workflows/awesome-lint.yml
> 
> ```
> name: Awesome lint
> 
> on:
>   pull_request:
>     branches: [ main ]
> 
> jobs:
>   lint:
>     runs-on: ubuntu-latest
>     steps:
>       - uses: actions/checkout@v4
>       - name: Setup Node.js
>         uses: actions/setup-node@v4
>         with:
>           node-version: '20'
>       - name: Install awesome-lint
>         run: |
>           npm install -g awesome-lint
>       - name: Run awesome-lint
>         run: |
>           awesome-lint README.md
> ```
> 
> Additional notes for reviewers
> - These files add contributor documentation (CONTRIBUTING.md, CODE_OF_CONDUCT.md), templates for issues/PRs, and two GitHub Actions: a markdown link checker (runs on PRs and weekly) and an awesome-lint job that runs on PRs.
> - The workflow steps use globally-installed tools via npm; maintainers may prefer to pin specific action versions or add a package.json if you want repeatable installs.
> 
> No files are removed or modified in this change; only new community and CI files are added.
> 
> Please create a new branch named: add/community-templates and open a pull request targeting main with these additions.

<!-- START COPILOT CODING AGENT TIPS -->
---

💬 We'd love your input! Share your thoughts on Copilot coding agent in our [2 minute survey](https://gh.io/copilot-coding-agent-survey).

Copilot AI and others added 2 commits November 23, 2025 23:44
Co-authored-by: Mahmoudz <1983984+Mahmoudz@users.noreply.github.com>
Co-authored-by: Mahmoudz <1983984+Mahmoudz@users.noreply.github.com>
Copilot AI changed the title [WIP] Add community and automation files for contributor experience Add community and automation infrastructure Nov 23, 2025
Copilot AI requested a review from Mahmoudz November 23, 2025 23:48
@Mahmoudz Mahmoudz marked this pull request as ready for review November 24, 2025 00:03
@Mahmoudz Mahmoudz merged commit 3f6c8df into main Nov 24, 2025
0 of 2 checks passed
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