Import from GitHub
The GitHub importer brings issues, labels, and comments from a GitHub repository into a SetGet project. This is a one-time migration tool -- for ongoing bidirectional sync, use the GitHub integration instead.
What gets imported
| GitHub field | SetGet field | Notes |
|---|---|---|
| Issue title | Work item title | Direct mapping |
| Issue body | Work item description | Markdown preserved |
| Issue state (open/closed) | Work item state | Mapped via state table |
| Labels | Labels | Created if they do not exist |
| Assignees | Assignees | Matched by email |
| Comments | Comments | Imported with author attribution |
| Milestones | Cycle (optional) | Configurable during mapping |
TIP
GitHub issues do not have a native priority field. After importing, use bulk edit to assign priorities in SetGet.
Prerequisites
- A GitHub account with read access to the repository.
- Admin or Owner role in your SetGet workspace.
Setup steps
Step 1 -- Connect to GitHub
- Go to Settings > Import.
- Select GitHub.
- Click Authorize with GitHub.
- Select the organization and repositories to grant access to.
- Click Authorize.
Step 2 -- Select the repository
- Choose the organization from the dropdown.
- Select the repository you want to import from.
- SetGet displays a summary: open issues, closed issues, label count.
Step 3 -- Choose the target project
- Create new project -- a new project is created using the repository name.
- Import into existing project -- select an existing project.
Step 4 -- Map issue states
| GitHub state | Default SetGet state | Changeable |
|---|---|---|
open | Backlog | Yes |
closed | Done | Yes |
closed as not planned | Cancelled | Yes |
Step 5 -- Configure options
| Option | Description | Default |
|---|---|---|
| Import comments | Import all issue comments | On |
| Import milestones as cycles | Map milestones to cycles | Off |
| Import closed issues | Include closed issues in the import | On |
| Filter by label | Only import issues with specific labels | Off |
Step 6 -- Start import
Click Start Import. The progress screen shows:
- Total issues to import
- Issues imported so far
- Current item
- Errors (if any)
Post-import validation
After the import completes, verify the data:
Check counts
| Metric | Where to check |
|---|---|
| Total work items | Project > All Work Items view |
| Open vs. closed | Compare with GitHub's issue counts |
| Labels | Project > Settings > Labels |
| Milestones/Cycles | Project > Cycles (if milestone import was enabled) |
Spot-check items
- Open 5-10 work items and verify title, description, and state.
- Check that markdown formatting (code blocks, links, images) rendered correctly.
- Confirm labels were created with the correct names.
- Verify assignees mapped to the right workspace members.
Common formatting issues
| GitHub element | Expected rendering |
|---|---|
| Markdown headings | SetGet headings |
| Code blocks (fenced) | Code blocks with syntax highlighting |
Task lists (- [ ]) | Checklists |
| @mentions | Plain text (GitHub usernames do not map to SetGet) |
| Issue references (#123) | Plain text (cross-references are not linked) |
| Inline images | Embedded images (if publicly accessible) |
Handling unmatched assignees
When a GitHub user's email does not match any SetGet member:
- The assignee field is left empty on the imported work item.
- A note is added to the activity log identifying the original GitHub assignee.
- After import, invite the missing members to SetGet and manually reassign.
Alternatively, invite all team members before running the import to maximize automatic matching.
Filtering issues before import
You can narrow the import scope:
| Filter | Description |
|---|---|
| By label | Only import issues with specific labels (e.g., "bug", "enhancement") |
| By state | Import only open issues, only closed issues, or both |
| By milestone | Import issues belonging to a specific milestone |
Filtering is useful when you want to import a subset of a large repository or when different SetGet projects should receive different issue categories.
TIP
If your repository has thousands of issues, filter by label or milestone to import in manageable batches. This also lets you direct different categories to different SetGet projects.
Import vs. integration
| Feature | Import | Integration |
|---|---|---|
| Direction | One-time, GitHub to SetGet | Ongoing, bidirectional |
| New issues after setup | Not synced | Automatically synced |
| PR linking | No | Yes |
| Comment sync | Import only | Bidirectional |
| Use case | Migration | Ongoing workflow |
Choose import when you want to move off GitHub Issues entirely. Choose the integration when your team continues to use both GitHub Issues and SetGet.
Troubleshooting
| Problem | Cause | Solution |
|---|---|---|
| No repositories listed | Insufficient OAuth scope | Reconnect with broader access |
| Comments missing | Comment import disabled | Enable the option and re-import |
| Assignees unmatched | Email mismatch | Invite members with matching emails |
| Markdown rendering issues | Unsupported GitHub-specific syntax | Edit descriptions manually after import |
WARNING
Running the import twice for the same repository creates duplicate work items. Delete the first batch before re-importing.