{"id":29482145,"url":"https://github.com/gr1m0h/notion-to-github-migrator","last_synced_at":"2026-04-16T02:32:09.932Z","repository":{"id":301083145,"uuid":"1008061052","full_name":"gr1m0h/notion-to-github-migrator","owner":"gr1m0h","description":"A Go tool to migrate CSV exports from Notion databases to GitHub issues.","archived":false,"fork":false,"pushed_at":"2026-04-12T12:52:00.000Z","size":4745,"stargazers_count":2,"open_issues_count":11,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-12T14:26:10.432Z","etag":null,"topics":["cli","github","github-issues","github-projects","go","notion"],"latest_commit_sha":null,"homepage":"","language":"Go","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/gr1m0h.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-25T01:05:02.000Z","updated_at":"2025-08-02T16:48:58.000Z","dependencies_parsed_at":"2025-07-30T17:05:57.880Z","dependency_job_id":"d919c340-43fa-4dd2-ba7f-0f2e4b921f61","html_url":"https://github.com/gr1m0h/notion-to-github-migrator","commit_stats":null,"previous_names":["gr1m0h/notion-to-github-migrator"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/gr1m0h/notion-to-github-migrator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gr1m0h%2Fnotion-to-github-migrator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gr1m0h%2Fnotion-to-github-migrator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gr1m0h%2Fnotion-to-github-migrator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gr1m0h%2Fnotion-to-github-migrator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gr1m0h","download_url":"https://codeload.github.com/gr1m0h/notion-to-github-migrator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gr1m0h%2Fnotion-to-github-migrator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31868494,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"online","status_checked_at":"2026-04-16T02:00:06.042Z","response_time":69,"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","github","github-issues","github-projects","go","notion"],"created_at":"2025-07-15T01:19:59.135Z","updated_at":"2026-04-16T02:32:09.902Z","avatar_url":"https://github.com/gr1m0h.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# notion-to-github-migrator\n\nA Go tool to migrate CSV exports from Notion databases to GitHub issues.\n\n## Features\n\n- 🔧 Flexible Configuration: Customize migration mappings via JSON configuration\n- 🏷️ Auto Label Creation: Automatically creates labels that don't exist in GitHub\n- 🔄 Retry Mechanism: Automatic retry for temporary errors\n- 🎨 Auto Color Generation: Automatically generates label colors\n- ⚡ Fast Execution: High-performance processing with Go\n\n## Requirements\n\n- Go 1.23+\n- GitHub Personal Access Token (Fine-grained)\n\n## Installation\n\n```bash\n# Clone repository\ngit clone https://github.com/gr1m0h/notion-to-github-migrator.git\ncd notion-to-github-migrator\n\n# Download dependencies\ngo mod download\n\n# Build\ngo build -o notion-to-github-migrator cmd/notion-to-github-migrator/main.go\n\n```\n\n### Using go install (from local directory)\n\n```bash\n# Install from local directory\ngo install ./cmd/notion-to-github-migrator\n```\n\n## Usage\n\n### 1. Create GitHub Personal Access Token\n\n1. Go to GitHub Settings \u003e Developer settings \u003e Personal access tokens \u003e Fine-grained tokens\n2. Click \"Generate new token\"\n3. Set required permissions:\n   - Repository access: Select target repository\n   - Permissions:\n     - Issues: Read \u0026 Write\n     - Metadata: Read\n\n### 2. Export CSV from Notion\n\n1. Select Export from your Notion database menu\n2. Choose \"CSV\" as Export format\n3. Save the exported CSV file\n\n### 3. Create Configuration File (Optional)\n\nCreate `config.json` with the following content:\n\n```json\n{\n  \"github\": {\n    \"token\": \"github_pat_xxxxxxxxxxxxx\",\n    \"owner\": \"your-org-or-username\",\n    \"repo\": \"your-repository-name\"\n  },\n  \"fieldMapping\": {\n    \"Name\": {\n      \"githubField\": \"title\"\n    },\n    \"Tag\": {\n      \"githubField\": \"label\",\n      \"delimiter\": \", \"\n    },\n    \"Priority\": {\n      \"githubField\": \"label\",\n      \"delimiter\": \", \"\n    }\n  },\n  \"retry\": {\n    \"maxAttempts\": 3,\n    \"delayMs\": 1000\n  }\n}\n```\n\n### 4. Run Migration\n\n```bash\n# Using config file\n./notion-to-github-migrator -csv notion-export.csv -config config.json\n\n# Using environment variable for token (without config file)\nexport GITHUB_TOKEN=github_pat_xxxxxxxxxxxxx\n./notion-to-github-migrator -csv notion-export.csv\n\n# Show help\n./notion-to-github-migrator -h\n```\n\n## Configuration Options\n\n### github\n\n- `token`: GitHub Personal Access Token (can also be set via GITHUB_TOKEN environment variable)\n- `owner`: Repository owner (organization or username)\n- `repo`: Repository name\n\n### fieldMapping\n\nDefines mapping between Notion fields and GitHub fields.\n\n- Key: Notion CSV column name\n- Value:\n  - `githubField`: Target field (\"title\", \"label\", or \"body\")\n  - `delimiter`: Delimiter for multiple values (only for labels, default: \",\")\n\n### retry\n\n- `maxAttempts`: Maximum retry attempts (default: 3)\n- `delayMs`: Delay between retries in milliseconds (default: 1000)\n\n## Customization Examples\n\n### Additional Field Mapping\n\n```json\n{\n  \"fieldMapping\": {\n    \"Name\": { \"githubField\": \"title\" },\n    \"Description\": { \"githubField\": \"body\" },\n    \"Status\": { \"githubField\": \"label\" },\n    \"Assignee\": { \"githubField\": \"label\", \"delimiter\": \";\" }\n  }\n}\n```\n\n### Minimal Configuration\n\nSet token via environment variable and specify minimal info in config:\n\n```json\n{\n  \"github\": {\n    \"owner\": \"your-org-or-username\",\n    \"repo\": \"your-repository-name\"\n  }\n}\n```\n\n## Note\n\n- CSV file must be UTF-8 encoded\n- Be aware of GitHub API rate limits when creating many issues\n- Label colors are auto-generated but can be changed later in GitHub UI\n- The program continues on errors to create as many issues as possible\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgr1m0h%2Fnotion-to-github-migrator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgr1m0h%2Fnotion-to-github-migrator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgr1m0h%2Fnotion-to-github-migrator/lists"}