{"id":44734442,"url":"https://github.com/kybaloo/issuesync","last_synced_at":"2026-02-15T19:30:05.831Z","repository":{"id":295971265,"uuid":"991864587","full_name":"kybaloo/issuesync","owner":"kybaloo","description":"A simple Node.js tool for listing and synchronizing issues between GitHub repositories.","archived":false,"fork":false,"pushed_at":"2025-06-16T08:27:26.000Z","size":101,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-19T12:57:06.847Z","etag":null,"topics":["github","githubapi","issues","nodejs"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/kybaloo.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-28T09:05:48.000Z","updated_at":"2025-06-16T08:27:29.000Z","dependencies_parsed_at":"2025-05-28T10:31:59.124Z","dependency_job_id":"98be740e-31ea-46c7-b837-b5a6f74dd2a5","html_url":"https://github.com/kybaloo/issuesync","commit_stats":null,"previous_names":["kybaloo/issuesync"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kybaloo/issuesync","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kybaloo%2Fissuesync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kybaloo%2Fissuesync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kybaloo%2Fissuesync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kybaloo%2Fissuesync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kybaloo","download_url":"https://codeload.github.com/kybaloo/issuesync/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kybaloo%2Fissuesync/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29487446,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T19:29:10.908Z","status":"ssl_error","status_checked_at":"2026-02-15T19:29:10.419Z","response_time":118,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["github","githubapi","issues","nodejs"],"created_at":"2026-02-15T19:30:05.338Z","updated_at":"2026-02-15T19:30:05.808Z","avatar_url":"https://github.com/kybaloo.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# IssueSync\n\nA Node.js library and CLI tool for listing and synchronizing GitHub issues between repositories. Perfect for repository migrations, issue management dashboards, and automation workflows.\n\n## Features\n\n- 📋 **List and filter** GitHub issues with advanced options\n- 🔄 **Sync issues** between repositories with metadata preservation\n- 🏷️ **Smart duplicate detection** and automatic label creation\n- 🛠️ **Dual interface**: Use as CLI tool or integrate as a library\n- 🔧 **Extensible**: Easy to integrate into web apps, CI/CD, or VS Code extensions\n\n## Quick Start\n\n### Installation\n\n```bash\n# CLI tool\nnpm install -g issuesync\n\n# Library\nnpm install issuesync\n```\n\n### Setup\n\nGet a [GitHub Personal Access Token](https://github.com/settings/tokens) with `repo` scope:\n\n```bash\n# Set environment variable\nexport GITHUB_TOKEN=your_token_here\n\n# Or create .env file\necho \"GITHUB_TOKEN=your_token_here\" \u003e .env\n```\n\n## Usage\n\n### CLI Commands\n\n**List issues:**\n```bash\nissuesync list --owner microsoft --repo vscode --state open --labels bug,enhancement\n```\n\n**Sync issues:**\n```bash\nissuesync sync --source-owner facebook --source-repo react --target-owner myorg --target-repo react-fork\n```\n\n### Library Usage\n\n```javascript\nconst issueSync = require('issuesync');\n\n// Initialize (token optional if env var set)\nissueSync.init({ token: 'your_token' });\n\n// List issues\nconst issues = await issueSync.listIssues({\n  owner: 'microsoft',\n  repo: 'vscode',\n  state: 'open',\n  labels: 'bug,enhancement'\n});\n\n// Sync issues\nconst result = await issueSync.syncIssues({\n  sourceOwner: 'sourceOwner',\n  sourceRepo: 'sourceRepo',\n  targetOwner: 'targetOwner',\n  targetRepo: 'targetRepo',\n  syncComments: true\n});\n\nconsole.log(`Created: ${result.created.length}, Skipped: ${result.skipped.length}`);\n```\n\n## Integration Examples\n\n### 🌐 Web Dashboard\n```javascript\napp.get('/issues', async (req, res) =\u003e {\n  const issues = await issueSync.listIssues({ owner: 'myorg', repo: 'project' });\n  res.json(issues);\n});\n```\n\n### 🔄 CI/CD Automation\n```javascript\n// Sync issues after deployment\nawait issueSync.syncIssues({\n  sourceOwner: 'internal', sourceRepo: 'app',\n  targetOwner: 'client', targetRepo: 'app',\n  labels: 'client-visible'\n});\n```\n\n### 🧩 VS Code Extension\n```javascript\nconst issues = await issueSync.listIssues({ owner, repo });\nconst selected = await vscode.window.showQuickPick(\n  issues.map(i =\u003e ({ label: i.title, description: `#${i.number}` }))\n);\n```\n\n**More examples:** [`./examples/`](./examples/) | **Integration guide:** [`./docs/integration-guide.md`](./docs/integration-guide.md)\n\n## API Reference\n\n### `init(options)`\nInitialize with GitHub token.\n- `options.token` - GitHub token (optional if `GITHUB_TOKEN` env var set)\n\n### `listIssues(options)`\nList repository issues.\n- `owner`, `repo` - Repository details (required)\n- `state` - `'open'`, `'closed'`, `'all'` (default: `'open'`)\n- `labels` - Comma-separated labels filter\n- `verbose` - Show detailed info\n\n### `syncIssues(options)`\nSync issues between repositories.\n- `sourceOwner`, `sourceRepo` - Source repository (required)\n- `targetOwner`, `targetRepo` - Target repository (required)\n- `state`, `labels` - Filter options\n- `syncComments` - Include comments (default: `true`)\n\nReturns: `{ created: [], skipped: [], total: number }`\n\n## Requirements \u0026 Limitations\n\n**Requirements:**\n- Node.js v14+\n- GitHub Personal Access Token with `repo` scope\n\n**Limitations:**\n- Rate limits may require multiple runs for large repos\n- Duplicate detection uses issue title matching\n- Original authors not preserved (issues created by token owner)\n\n## Contributing\n\nContributions welcome! Please submit a Pull Request.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkybaloo%2Fissuesync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkybaloo%2Fissuesync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkybaloo%2Fissuesync/lists"}