Perfect for platform migrations - create GitHub Issues from your CSV exports, then use Linear's native GitHub import to sync._
# One command - that's it!
npx upload-git-issues your-file.csv
# With options
npx upload-git-issues issues.csv --dry-run --verboseWhat happens:
- Interactive prompts guide you through GitHub authentication and repo selection
- Intelligent CSV parsing (works with Linear exports, Jira exports, any CSV format)
- Beautiful progress indicators show real-time status
- Issues created in GitHub - ready for Linear's native GitHub import
Create a file called issues.csv with this content:
Title,Description,Labels,Priority,Assignee
"Fix login authentication bug","Users are unable to log in with valid credentials","bug,urgent","High","johndoe"
"Add dark mode toggle","Implement dark/light theme switcher in user settings","enhancement,ui","Medium","janedoe"
"Update API documentation","Refresh the API docs with latest endpoint changes","documentation","Low","techwriter"
"Optimize database queries","Improve performance of user dashboard queries","performance,backend","High","dbadmin"
Then run:
npx upload-git-issues issues.csv --dry-runNote: This tool is currently in pre-release. For local testing and development:
git clone https://github.com/rhyanvargas/upload-git-issues.git
cd upload-git-issues
npm install
npm run dev -- --help
npm run dev -- example.csv --dry-runnpm run build
npm start -- --help
npm start -- example.csv --dry-run# Link for global testing (does NOT publish live)
npm link
# Test as if installed globally
upload-git-issues --help
upload-git-issues example.csv --dry-run
# Unlink when done testing
npm unlink -g upload-git-issuesnpm link is safe and local-only. It does NOT publish to npm registry.
💡 Tip: Use the included
example.csvfile for testing, or create your own following the CSV format shown in the Quick Start section above.
| Your Situation | Use This Tool? | Why |
|---|---|---|
| 🔄 Migrating to Linear via GitHub | ✅ Perfect Choice | Create GitHub Issues, then use Linear's GitHub import |
| 📊 Have CSV data to upload | ✅ Perfect Choice | Intelligent parsing handles any CSV format |
| ⚡ Need it done quickly | ✅ Perfect Choice | One command, 2 minutes to complete |
| 🏢 Enterprise/Security requirements | ✅ Perfect Choice | Built-in security audits and compliance |
| 👥 Non-technical team member | ✅ Perfect Choice | Interactive prompts guide you through |
| 🔒 Single repository upload | ✅ Perfect Choice | Optimized for this common use case |
| 🎯 Creating 5-1000+ issues | ✅ Perfect Choice | Handles any volume with progress tracking |
| 🏗️ Multi-repository bulk operations | Our tool focuses on single repositories | |
| 📝 Complex issue templating needs | Use tools with Mustache/Liquid support | |
| 🤖 GitHub Actions workflow integration | Look for native CI/CD solutions | |
| 💬 Adding comments to existing issues | Our tool creates new issues only | |
| ⚙️ Highly customized automation | Use scriptable solutions |
| Option | Description | Example |
|---|---|---|
[csv-file] |
Path to CSV file | ./issues.csv |
--dry-run |
Preview without creating | --dry-run |
--verbose |
Detailed logging | --verbose |
--token <token> |
GitHub token (skip prompt) | --token ghp_abc123 |
--repo <repo> |
Target repository | --repo owner/repo |
Required: Title column
Optional: Description, Labels, Assignee, Priority, Status, etc.
Title,Description,Labels,Assignee,Priority
"Fix login bug","Users cannot log in","bug,urgent","johndoe","High"
"Add dark mode","Implement dark theme","enhancement,ui","janedoe","Medium"
The tool intelligently maps column names (Title/title/TITLE all work) and converts Priority/Status to labels.
💡 Linear Migration Tip: After creating GitHub Issues, use Linear's native GitHub import feature to sync them into your Linear workspace.
Create a Personal Access Token with repo scope. The tool will prompt you for it.
IMPORTANT: By using this tool, you acknowledge that:
- YOU are solely responsible for ensuring the security and safety of your files
- YOU must verify that any CSV files do not contain sensitive or confidential information
- YOU are responsible for verifying the security of any tools you use
- YOU should review the source code and run security audits before use
- YOU must ensure proper authorization for GitHub API usage and repository access
This software is provided "AS IS" without warranties. See DISCLAIMER.md for complete legal terms.
🔒 Security Recommendation: Always review your CSV data and test with non-sensitive information first.
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ for developers who love automation