{"id":16185485,"url":"https://github.com/patrickhulce/erised","last_synced_at":"2025-04-07T13:15:35.539Z","repository":{"id":62974225,"uuid":"557930696","full_name":"patrickhulce/erised","owner":"patrickhulce","description":"Mirror a branch to many branches for GitHub PR isolation.","archived":false,"fork":false,"pushed_at":"2023-08-23T21:11:41.000Z","size":211,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-10-19T00:50:42.388Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/patrickhulce.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}},"created_at":"2022-10-26T15:13:47.000Z","updated_at":"2022-11-11T18:15:36.000Z","dependencies_parsed_at":"2024-11-03T00:01:54.506Z","dependency_job_id":"fc2a3af5-1dfd-4063-b14e-acd53f0a76e7","html_url":"https://github.com/patrickhulce/erised","commit_stats":{"total_commits":36,"total_committers":1,"mean_commits":36.0,"dds":0.0,"last_synced_commit":"34ea5cc3b7472a2d86b2cf1fd17bda1b46d8f076"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickhulce%2Ferised","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickhulce%2Ferised/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickhulce%2Ferised/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickhulce%2Ferised/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/patrickhulce","download_url":"https://codeload.github.com/patrickhulce/erised/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247657267,"owners_count":20974345,"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":"2024-10-10T07:14:25.752Z","updated_at":"2025-04-07T13:15:35.505Z","avatar_url":"https://github.com/patrickhulce.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# erised\n\nCommand-line utility to mirror a single, local branch containing changes to many different projects into many separate commits / branches that can be landed independently. Useful for large monorepos with strict CI isolation requirements.\n\n## Usage\n\n```bash\n# Setup Erised.\nnpm install -g @patrickhulce/erised\nexport ERISED_GITHUB_TOKEN=\u003cget a personal token from GitHub\u003e\n\n# Start a commit affecting multiple subprojects in a monorepo.\ntouch apps/app-a/server.js\ntouch apps/app-b/server.js\ngit checkout -b my_feature_branch\ngit add apps/app-a apps/app-b\ngit commit -m 'fix: eliminates a critical memory leak'\n\n# Use erised to split the branch into many isolated branches automatically.\nerised mirror\n\n# Upload those branches as PRs to GitHub.\nerised upload\n\n# Need to make a change? Just edit your original branch and run mirror again.\ntouch apps/app-b/server.js\ngit add apps/app-b/server.js\ngit commit -m 'oops a bug!'\nerised mirror\n\n# Check in on the status of PRs and update.\nerised status\nerised upload\n```\n\n## Development\n\n```bash\nnpm i # Install deps.\nnpm test # Run test scripts.\n\nnpm run build:watch # Continuously build the source files into the binary.\nnpm start -- mirror # Run erised with your commands.\n```\n\n## TODO\n\n- cleanup command\n  - delete/cleanup branches\n- merge command\n  - automatically merge the PRs that can be merged\n- idempotent mirror (create a staging branch and only rename if there's a diff)\n- `--all` flag to handle all erised-managed branches at once\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatrickhulce%2Ferised","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpatrickhulce%2Ferised","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatrickhulce%2Ferised/lists"}