{"id":30173020,"url":"https://github.com/alecrust/branchpilot","last_synced_at":"2025-08-11T23:22:08.187Z","repository":{"id":309221956,"uuid":"1035433562","full_name":"AlecRust/branchpilot","owner":"AlecRust","description":"Automate PR creation from local branches via Markdown tickets.","archived":false,"fork":false,"pushed_at":"2025-08-10T17:21:09.000Z","size":318,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-10T17:28:34.295Z","etag":null,"topics":["cli","markdown","schedule"],"latest_commit_sha":null,"homepage":"https://npm.im/branchpilot","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AlecRust.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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-08-10T11:46:50.000Z","updated_at":"2025-08-10T17:28:24.000Z","dependencies_parsed_at":"2025-08-10T17:41:16.717Z","dependency_job_id":null,"html_url":"https://github.com/AlecRust/branchpilot","commit_stats":null,"previous_names":["alecrust/branchpilot"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/AlecRust/branchpilot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlecRust%2Fbranchpilot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlecRust%2Fbranchpilot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlecRust%2Fbranchpilot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlecRust%2Fbranchpilot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlecRust","download_url":"https://codeload.github.com/AlecRust/branchpilot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlecRust%2Fbranchpilot/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269970237,"owners_count":24505503,"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","status":"online","status_checked_at":"2025-08-11T02:00:10.019Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["cli","markdown","schedule"],"created_at":"2025-08-11T23:22:05.058Z","updated_at":"2025-08-11T23:22:08.175Z","avatar_url":"https://github.com/AlecRust.png","language":"TypeScript","readme":"# branchpilot [![CI](https://github.com/AlecRust/branchpilot/actions/workflows/ci.yml/badge.svg)](https://github.com/AlecRust/branchpilot/actions/workflows/ci.yml) [![npm version](https://img.shields.io/npm/v/branchpilot.svg)](https://www.npmjs.com/package/branchpilot)\n\nAutomate Pull Request creation from local Git branches using Markdown files.\n\n## Quick start\n\n```bash\n# Install\nnpm i -g branchpilot\n\n# (optional) Check setup\nbranchpilot doctor\n\n# (optional) Initialize current project\nbranchpilot init\n\n# Process tickets\nbranchpilot run\n```\n\n## How it works\n\n1. **Create a branch** in any local repo with changes you want to schedule\n2. **Write a ticket** a Markdown file with PR details and `when` timestamp\n3. **Run branchpilot** — PRs will be opened on run if `when` is in the past\n\n## Writing tickets\n\nCreate a Markdown file with some [front matter](https://gohugo.io/content-management/front-matter/) config at the top followed by your PR description.\n\nPlace the file anywhere e.g. within a repo at `~/projects/my-repo/tickets` or in a dedicated tickets directory `~/tickets`.\n\n```markdown\n---\ntitle: Fix typo in README\nwhen: 2025-01-15T09:00\nbranch: fix/readme-typo\nrepository: ~/projects/my-project  # Optional, defaults to current repo\n---\n\nFixed a typo in the installation instructions.\n```\n\n### Optional fields\n\n```yaml\nrepository: ~/projects/repo  # Target different repo (tickets can be placed anywhere)\nbase: develop                # Base branch (auto-detected if omitted)\nrebase: true                 # Rebase against base branch before pushing\ndraft: true                  # Create PR as draft\nlabels: [\"bug\", \"urgent\"]    # Set labels\nreviewers: [\"alice\"]         # Set reviewers\nassignees: [\"bob\"]           # Set assignees\n```\n\n## Configuration\n\nGlobal config: `~/.config/branchpilot.toml`\n\n```toml\ndirs = [\"~/tickets\"]         # Directories to scan\ndefaultBase = \"main\"         # Default base branch\n```\n\nRepository config: `.branchpilot.toml`\n\n```toml\ndefaultBase = \"develop\"      # Override global settings\n```\n\nPriority: Ticket → Repository → Global → Defaults\n\n## Commands\n\n### `branchpilot run`\n\nProcess tickets and create any due PRs.\n\n- `--dir \u003cpath\u003e` — Scan specific directories\n- `--dry-run` — Preview without changes\n\n### `branchpilot list`\n\nList all tickets with their status.\n\n- `--dir \u003cpath\u003e` — Scan specific directories\n\n### `branchpilot init`\n\nInitialize current directory project with example tickets and config.\n\n### `branchpilot doctor`\n\nRun checks like verifying Git and GitHub CLI are set up correctly.\n\n## Automation\n\nSimple example to run `branchpilot` every 10 minutes using [PM2](https://pm2.keymetrics.io/):\n\n```bash\npm2 start \"branchpilot run\" --name branchpilot --cron \"*/10 * * * *\"\n```\n\n## Prerequisites\n\n- **[git](https://git-scm.com/)** — Installed and configured\n- **[gh](https://cli.github.com/)** — GitHub CLI authenticated (`gh auth login`)\n\n## Development\n\n```bash\nnpm install\nnpm test\nnpm run check\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falecrust%2Fbranchpilot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falecrust%2Fbranchpilot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falecrust%2Fbranchpilot/lists"}