{"id":28578108,"url":"https://github.com/tiddlywiki/cerebrus","last_synced_at":"2025-06-11T01:08:47.500Z","repository":{"id":291119242,"uuid":"976486393","full_name":"TiddlyWiki/Cerebrus","owner":"TiddlyWiki","description":"Github Action to validate pull requests.","archived":false,"fork":false,"pushed_at":"2025-05-02T15:01:23.000Z","size":1356,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-02T15:01:48.147Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TiddlyWiki.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-02T07:33:24.000Z","updated_at":"2025-05-02T15:01:26.000Z","dependencies_parsed_at":"2025-05-02T15:01:53.239Z","dependency_job_id":"bb5f5e5d-a522-4561-90cf-aea116dd2c16","html_url":"https://github.com/TiddlyWiki/Cerebrus","commit_stats":null,"previous_names":["saqimtiaz/cerebrus"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TiddlyWiki%2FCerebrus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TiddlyWiki%2FCerebrus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TiddlyWiki%2FCerebrus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TiddlyWiki%2FCerebrus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TiddlyWiki","download_url":"https://codeload.github.com/TiddlyWiki/Cerebrus/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TiddlyWiki%2FCerebrus/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259178493,"owners_count":22817387,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-11T01:08:46.642Z","updated_at":"2025-06-11T01:08:47.472Z","avatar_url":"https://github.com/TiddlyWiki.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cerebrus: PR Validation Action :dog:\n\nThis GitHub Action validates pull requests to ensure they meet specific conditions for file paths based on the target branch. It works for both GitHub Actions workflows and local/standalone execution.\n\n## 🔧 Features\n\n- ✅ Path validation rules tied to target branches\n  - Enforcing that PRs targeting `tiddlywiki-com` only touch files under `/editions`\n  - Warning when PRs targeting `master` only contain documentation changes in `/editions`\n  . Warning when PRs signing the CLA contain other files or target a branch other than `tiddlywiki-com`\n  - Warning when PRs modify auto-generated files\n- 🔁 Posts informative comments directly on the PR\n- 🖥️ Usable both in GitHub Actions and as a standalone CLI tool\n- 🔐 Uses either the GitHub Actions token or a Personal Access Token\n\n## 📦 Usage in Workflows\n\nAdd this action to your workflow:\n\n```yaml\nname: Validate PR Paths\n\non:\n  pull_request:\n    types: [opened, reopened, synchronize]\n\njobs:\n  validate-pr:\n    runs-on: ubuntu-latest\n\n    steps:\n    - name: Validate PR\n      uses: TiddlyWiki/cerebrus@v1\n      with:\n        pr_number: ${{ github.event.pull_request.number }}\n        repo: ${{ github.repository }}\n        base_ref: ${{ github.base_ref }}\n        github_token: ${{ secrets.GITHUB_TOKEN }}\n```\n\n## ⚙️ Inputs\n\n| Name          | Description                                       | Required |\n|---------------|---------------------------------------------------|----------|\n| `pr_number`   | The pull request number                           | ✅ Yes   |\n| `repo`        | The repository in `owner/repo` format             | ✅ Yes   |\n| `base_ref`    | The base branch of the PR (`tiddlywiki-com`, etc) | ✅ Yes   |\n| `github_token`| secrets.GITHUB_TOKEN                              | ✅ Yes   |\n\n## 🔐 Authentication\n- When using **locally or via CLI**, use `GITHUB_PERSONAL_ACCESS_TOKEN`\n\n## 🖥️ Local CLI Usage\n\nInstall dependencies:\n\n```bash\nnpm install\nexport GITHUB_PERSONAL_ACCESS_TOKEN=ghp_yourTokenHere\nnode bin/ci-pr-validation/run-validate-branch.js --pr 123 --repo yourname/yourrepo\n```\n\n## 🔄 Release \u0026 Versioning\n\n```bash\ngit tag v1\ngit push origin v1\n```\n\n## 📄 License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftiddlywiki%2Fcerebrus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftiddlywiki%2Fcerebrus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftiddlywiki%2Fcerebrus/lists"}