Skip to content

ci: add repository quality checks - #12

Merged
RamonRDR merged 27 commits into
mainfrom
ci/repository-quality-checks
Aug 3, 2026
Merged

ci: add repository quality checks#12
RamonRDR merged 27 commits into
mainfrom
ci/repository-quality-checks

Conversation

@RamonRDR

@RamonRDR RamonRDR commented Aug 3, 2026

Copy link
Copy Markdown
Owner

Summary

Adds the first automated quality gate for Python Study Guide using GitHub Actions and dependency-free Python scripts that can also be run locally.

Included

  • compiles every Python file with Python 3.13
  • runs regression tests for the repository quality tools
  • runs only examples explicitly approved in scripts/example_manifest.txt
  • checks repository-local Markdown paths while ignoring external URLs and fenced code examples
  • validates required repository paths, canonical English root documents, localized document navigation, issue templates, workflow files, tests, and the example manifest
  • runs on pull requests, pushes to main, and manual workflow dispatch
  • uses read-only repository permissions and a 10-minute job timeout
  • updates the multilingual READMEs, contribution guides, roadmaps, and project-structure documents

Local commands

python -m compileall -q -x '(^|/)\.git/' .
python -m unittest discover -s tests -p 'test_*.py'
python scripts/run_examples.py
python scripts/check_internal_links.py
python scripts/validate_repository_structure.py

Safety decisions

  • no third-party Python packages are required
  • examples are not discovered and executed blindly
  • the manifest accepts only unique repository-relative .py paths
  • each example runs in a separate subprocess with a 10-second timeout
  • external links are not contacted by CI
  • the workflow receives only read access to repository contents

Review feedback addressed

The Codex review identified three Markdown parsing edge cases. They were corrected and protected with regression tests:

  • balanced and escaped parentheses in link destinations
  • external URIs using any valid scheme, including urn:
  • longer fenced-code delimiters containing shorter nested examples

All three review conversations were answered and resolved after the fixes.

Verification performed

  • Python compilation completed successfully
  • five link-checker regression tests passed
  • all three approved educational examples executed successfully
  • internal Markdown paths were checked successfully
  • repository structure and multilingual navigation validation passed
  • the complete GitHub Actions workflow passed on the final reviewed branch state

Review focus

Please review whether the checks are understandable, appropriately scoped for the current repository, and strict enough to catch real mistakes without making future educational examples unsafe to run.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3c753ec8a2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/check_internal_links.py Outdated
Comment thread scripts/check_internal_links.py Outdated
Comment thread scripts/check_internal_links.py Outdated
@RamonRDR
RamonRDR merged commit bd111cb into main Aug 3, 2026
1 check passed
@RamonRDR
RamonRDR deleted the ci/repository-quality-checks branch August 3, 2026 23:13
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.

1 participant