{"id":49399245,"url":"https://github.com/atithi4dev/veren","last_synced_at":"2026-04-28T17:05:56.275Z","repository":{"id":330192762,"uuid":"1046582843","full_name":"atithi4dev/veren","owner":"atithi4dev","description":"Veren is a backend driven deployment system that automates building and deploying application from source repositories using a service-oriented architecture.","archived":false,"fork":false,"pushed_at":"2026-02-16T14:58:42.000Z","size":8812,"stargazers_count":4,"open_issues_count":12,"forks_count":8,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-16T22:33:45.411Z","etag":null,"topics":["aws","clickhouse","docker-compose","express","kafka","mongodb","redis","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/atithi4dev.png","metadata":{"files":{"readme":".github/README_INTERNAL.md","changelog":null,"contributing":"Docs/CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-28T22:51:14.000Z","updated_at":"2026-02-16T15:01:15.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/atithi4dev/veren","commit_stats":null,"previous_names":["atithi4dev/veren"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/atithi4dev/veren","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atithi4dev%2Fveren","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atithi4dev%2Fveren/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atithi4dev%2Fveren/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atithi4dev%2Fveren/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/atithi4dev","download_url":"https://codeload.github.com/atithi4dev/veren/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atithi4dev%2Fveren/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32390139,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T14:34:11.604Z","status":"ssl_error","status_checked_at":"2026-04-28T14:32:37.009Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["aws","clickhouse","docker-compose","express","kafka","mongodb","redis","typescript"],"created_at":"2026-04-28T17:05:56.207Z","updated_at":"2026-04-28T17:05:56.269Z","avatar_url":"https://github.com/atithi4dev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GitHub Governance \u0026 Automation\n\nThis directory contains GitHub Actions workflows and configurations that enforce development standards and project governance for the Veren backend repository.\n\n## Overview\n\nThe GitHub automation system provides:\n\n- ✅ **Branch Protection** - Prevent direct pushes to `main`\n- ✅ **PR Validation** - Enforce PR templates and commit formats\n- ✅ **Issue Management** - Automated assignment workflow (`/assign` command)\n- ✅ **Code Quality** - TypeScript checks, linting, security audits\n- ✅ **Label Management** - Auto-creation and guidance for issue labels\n\n## Workflows\n\n### 1. `protect-main.yml`\n**Purpose:** Enforce branch protection rules and PR validation\n\n**Triggers:** `pull_request` (opened, reopened, synchronize)\n\n**Jobs:**\n- `protect-main` - Rejects PRs targeting `main` branch\n- `validate-pr-content` - Ensures PR follows template with required sections:\n  - Issue reference (e.g., \"Closes #123\")\n  - Description\n  - Type of Change\n  - Checklist\n- `assign-check` - Warns about manual issue assignment in PRs\n\n**Branch Naming Validation:**\n- ✅ `feature/issue-123-description`\n- ✅ `fix/issue-456-description`\n- ✅ `docs/issue-789-update`\n- ✅ `refactor/issue-101-cleanup`\n- ✅ `perf/issue-202-optimization`\n\n### 2. `issue-assignment.yml`\n**Purpose:** Manage issue assignment via `/assign` command (maintainers only)\n\n**Triggers:** `issue_comment` (created, edited)\n\n**Jobs:**\n- `assign-issue` - Processes `/assign @username` commands in issue comments\n  - **Validates authorization** (only maintainers can assign)\n  - Assigns issue to mentioned user\n  - Adds 'assigned' label\n  - Posts confirmation comment\n- `prevent-auto-assignment` - Removes any auto-assignments when issue is created\n  - Prevents accidental assignments\n  - Directs contributors to request assignment\n\n**Usage (Maintainers Only):**\n```\n/assign @github-username\n```\n\n**For Contributors:**\nComment expressing interest on an issue, then wait for a maintainer to use the `/assign` command.\n\n### 3. `auto-manage-labels.yml`\n**Purpose:** Automatically create and manage repository labels\n\n**Triggers:** `issues` (opened, labeled, unlabeled), manual (`workflow_dispatch`)\n\n**Jobs:**\n- `setup-labels` - Creates all standard labels on first run or update\n- `validate-new-issue-labels` - Suggests labels for newly opened issues without labels\n\n**Label Categories:**\n\n**Difficulty Levels:**\n- `easy` - Good for beginners\n- `medium` - Moderate complexity\n- `hard` - High complexity\n\n**Priority Levels:**\n- `priority-critical` - Must fix immediately\n- `priority-high` - High priority\n- `priority-medium` - Medium priority\n- `priority-low` - Can wait\n\n**Issue Types:**\n- `bug` - Bug report\n- `feature` - Feature request\n- `enhancement` - Improvement\n- `documentation` - Docs update\n- `performance` - Performance improvement\n- `refactor` - Code refactoring\n- `security` - Security issue\n- `testing` - Test-related\n\n**Status:**\n- `good-first-issue` - Great for new contributors\n- `help-wanted` - Help needed\n- `assigned` - Issue is assigned\n- `in-progress` - Being worked on\n- `on-hold` - Blocked/waiting\n- `needs-review` - Awaiting review\n- `blocked` - Blocked by another issue\n- `duplicate` - Duplicate issue\n- `wontfix` - Will not fix\n- `question` - Question/discussion\n\n**Areas:**\n- `area-api-gateway` - API Gateway service\n- `area-workers` - Worker services\n- `area-database` - Database layer\n- `area-auth` - Authentication\n- `area-deployment` - Deployment system\n- `area-infrastructure` - Infrastructure\n\n### 4. `code-quality.yml`\n**Purpose:** Verify code quality, run tests, and security audits\n\n**Triggers:** `pull_request` (all branches), `push` (test branch)\n\n**Jobs:**\n- `lint-and-type-check` - Checks TypeScript compilation for all services\n- `security-audit` - Runs `npm audit` on all packages\n- `build-check` - Verifies builds succeed for all services\n\n**Services Checked:**\n- API Gateway\n- Build Worker\n- Clone Worker\n- Routing Service\n- Orchestrate Service\n- Notification Service\n\n**Requirements:**\n- Node.js 18.x\n\n### 5. `pr-review.yml`\n**Purpose:** Validate PRs and ensure contributor guidelines compliance\n\n**Triggers:** `pull_request` (all branches)\n\n**Jobs:**\n- `commit-validation` - Validates all commit messages follow format:\n  ```\n  type(issue-123): description\n  ```\n  Valid types: feat, fix, docs, style, refactor, perf, test, chore\n\n- `pr-metadata-check` - Ensures PR contains:\n  - Issue link (Closes/Fixes/Resolves #123)\n  - Description (50+ characters)\n  - Type of Change section\n  - Checklist\n\n- `prevent-direct-pushes` - Enforces PRs target `test` branch, not `main`\n\n- `require-issue-assignment` - Verifies referenced issue is assigned to someone\n\n- `commit-validation` - Checks all commits follow naming convention\n\n## Configuration Files\n\n### `pull_request_template.md`\nTemplate shown when creating a pull request. Includes:\n- Issue reference section\n- Description area\n- Type of Change checkboxes\n- Testing information\n- Checklist for contributors\n\n### `ISSUE_TEMPLATE/`\nTemplates for different issue types:\n- `bug_report.md` - For reporting bugs\n- `feature_request.md` - For requesting features\n- `documentation.md` - For documentation improvements\n\n## Getting Started as a Contributor\n\n### Step 1: Request Assignment\nFind an issue you want to work on and comment expressing interest:\n```\nI'd like to work on this issue\n```\n\n**Wait for maintainer to assign it to you.**\n\n### Step 2: Official Assignment\nThe maintainer will review your request and use:\n```\n/assign @your-github-username\n```\n\n**Once assigned (you'll see the 'assigned' label), you're ready to start!**\n\n### Step 3: Branch Creation\nCreate a branch following the naming convention:\n```bash\ngit checkout -b feature/issue-123-brief-description\n# or\ngit checkout -b fix/issue-456-bug-fix-description\n```\n\n### Step 4: Development\nMake your changes and commit with proper message format:\n```bash\ngit commit -m \"feat(issue-123): add new feature\"\ngit commit -m \"fix(issue-456): fix the bug\"\n```\n\n### Step 5: Push \u0026 Create PR\n```bash\ngit push origin feature/issue-123-brief-description\n```\n\nGitHub Actions will automatically:\n- ✅ Validate your commit messages\n- ✅ Check code quality\n- ✅ Run security audits\n- ✅ Verify metadata and formatting\n\n### Step 6: Review\nRespond to feedback and update your PR as needed. The workflows will re-run automatically.\n\n## Viewing Workflow Status\n\n1. Go to **Pull Requests** tab\n2. Click on your PR\n3. Scroll down to see workflow results\n4. Check the \"Checks\" section for detailed information\n\n## Troubleshooting Common Issues\n\n### \"PR targets main branch\"\n❌ **Problem:** You opened a PR to `main` instead of `test`\n\n✅ **Solution:**\n1. Close this PR\n2. Create a new PR to the `test` branch\n3. Follow the workflow for releases from `test` → `main`\n\n### \"Commit message doesn't match format\"\n❌ **Problem:** Commit message like `\"fixed bug\"` or `\"Update stuff\"`\n\n✅ **Solution:**\n```bash\n# You need to amend commits to match: type(issue-#): message\ngit commit --amend -m \"fix(issue-456): resolve authentication error\"\ngit push origin --force-with-lease\n```\n\n### \"Issue not assigned\"\n❌ **Problem:** PR references an unassigned issue\n\n✅ **Solution:**\n1. Go to the referenced issue\n2. Add a comment: `/assign @your-username`\n3. Wait for automation to confirm\n4. PR workflow will verify on next check\n\n### \"Missing PR template sections\"\n❌ **Problem:** PR missing required sections\n\n✅ **Solution:**\n1. Edit your PR description\n2. Include all template sections from [pull_request_template.md](pull_request_template.md)\n3. Fill each section with relevant information\n\n### \"Branch naming is wrong\"\n❌ **Problem:** Branch like `main-bug-fix` or `new-feature`\n\n✅ **Solution:**\n```bash\n# Create correctly named branch\ngit checkout -b fix/issue-789-describe-the-fix\n# Copy your changes if needed\ngit push origin fix/issue-789-describe-the-fix\n```\n\n## Manual Workflow Execution\n\nTo manually trigger label setup without waiting for issue event:\n\n1. Go to **Actions** tab\n2. Select **Auto-Manage Labels** workflow\n3. Click **Run workflow**\n4. Select branch (usually `test`)\n5. Click **Run workflow**\n\n## Security Considerations\n\nAll workflows:\n- ✅ Use `actions/checkout@v4` and `actions/github-script@v7` (GitHub-verified actions)\n- ✅ Have minimal required permissions\n- ✅ Validate user input to prevent injection\n- ✅ Never expose secrets in logs or comments\n- ✅ Validate GitHub users before operations\n\nFor security policy, see [SECURITY.md](SECURITY.md)\n\n## Monitoring \u0026 Logs\n\n### View Workflow Logs\n1. Go to **Actions** tab\n2. Click on the workflow run\n3. Click on the job name\n4. Expand any step to see logs\n\n### Common Log Locations\n- **TypeScript errors** - `lint-and-type-check` job → `TypeScript Check` steps\n- **Security issues** - `security-audit` job → Audit steps\n- **PR validation** - `protect-main` job → GitHub Script output\n\n## Disabling Workflows (if needed)\n\n⚠️ **Not recommended**, but to disable a workflow:\n\n1. In the `.github/workflows/` directory\n2. Either:\n   - Delete the workflow file, OR\n   - Rename it to add `.disabled` extension, OR\n   - Add `if: false` condition to all jobs\n\n## Adding New Workflows\n\nFollow these steps to add a new workflow:\n\n1. Create `.github/workflows/your-workflow.yml`\n2. Use `actions/checkout@v4` and `actions/github-script@v7`\n3. Follow GitHub's YAML syntax\n4. Test locally with [Act](https://github.com/nektos/act) if possible\n5. Create PR to add workflow\n6. Workflow will validate itself once added\n\nExample minimal workflow:\n```yaml\nname: Your Workflow Name\n\non:\n  pull_request:\n    branches: [test, main]\n\njobs:\n  example-job:\n    runs-on: ubuntu-latest\n    permissions:\n      contents: read\n      pull-requests: write\n    \n    steps:\n      - name: Checkout\n        uses: actions/checkout@v4\n      \n      - name: Do Something\n        uses: actions/github-script@v7\n        with:\n          github-token: ${{ secrets.GITHUB_TOKEN }}\n          script: |\n            console.log('Hello from workflow!');\n```\n\n## Contributing to Governance\n\nTo improve workflows or governance:\n\n1. Create an issue describing the improvement\n2. Get assigned via `/assign`\n3. Make changes to `.github/` (including workflows, templates, or SECURITY.md)\n4. Create PR to `test` branch\n5. Reference the issue\n6. Get review and merge\n\n## Documentation References\n\n- [CONTRIBUTING.md](../Docs/CONTRIBUTING.md) - Main contribution guide\n- [SECURITY.md](SECURITY.md) - Security policy and best practices\n- [API_DOCUMENTATION.md](../Docs/API_DOCUMENTATION.md) - API reference\n- [GITHUB_SETUP.md](../Docs/GITHUB_SETUP.md) - GitHub governance setup guide\n- [GitHub Actions Docs](https://docs.github.com/en/actions)\n\n---\n\n**Last Updated:** 2024\n**Maintained By:** Veren Team\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatithi4dev%2Fveren","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatithi4dev%2Fveren","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatithi4dev%2Fveren/lists"}