GitHub
Import repositories, Issues, and Pull Requests from GitHub into PuppyOne.
Supported content
| Type | Supported | Notes |
|---|---|---|
| Repository files | ✅ | Code, README, config files, and more |
| Issues | ✅ | Includes labels and comments |
| Pull Requests | ✅ | Includes status and reviews |
| Wiki | ⚠️ | Partial support |
| Actions | ❌ | Not supported yet |
Setup steps
Step 1: Start the import
- Open your Project
- Click Import → GitHub
Step 2: Authorize GitHub
The first time you use it, you need to complete OAuth authorization:
- Click Connect GitHub
- On the GitHub page, choose the authorization scope
- Select the repositories you want to authorize, either all or only specific ones
- Click Authorize
💡 Tip: It is best to authorize only the repositories you actually need, following the principle of least privilege.
Step 3: Choose how to import
You can specify what to import in two ways:
Option 1: Paste a URL
Paste a GitHub URL directly and PuppyOne will recognize it automatically:
# Entire repository
https://github.com/owner/repo
# Specific directory
https://github.com/owner/repo/tree/main/docs
# Specific file
https://github.com/owner/repo/blob/main/README.md
# Issue list
https://github.com/owner/repo/issues
# Single issue
https://github.com/owner/repo/issues/123Option 2: Browse and select
- Navigate to the target location in the file browser
- Check the files or folders you want to import
- Click Import
Step 4: Configure import options
| Option | Notes | Default |
|---|---|---|
| Include subdirectories | Whether to recursively import nested folders | ✅ |
| File type filter | Import only specific extensions such as .md or .py | All |
| Branch | Select which branch to import from | Default branch |
Data structure examples
Repository files → JSON
{
"repo": "owner/repo",
"branch": "main",
"files": [
{
"path": "README.md",
"content": "# My Project\n\nThis is...",
"language": "markdown"
},
{
"path": "src/main.py",
"content": "def hello():\n print('Hello')",
"language": "python"
}
]
}Issue → JSON
{
"repo": "owner/repo",
"issues": [
{
"number": 123,
"title": "Bug: Login fails",
"state": "open",
"labels": ["bug", "high-priority"],
"body": "## Problem description\n\nUsers reported...",
"comments": [
{
"author": "developer",
"body": "Confirmed, working on a fix"
}
]
}
]
}Use cases
Use case 1: Code knowledge base
Import an entire repository so agents can:
- Answer code-related questions
- Generate code documentation
- Assist with code review
{
"path": "/src",
"content": "..."
}Use case 2: Project management
Import Issues and PRs so agents can:
- Check project progress
- Summarize unresolved issues
- Generate weekly reports
Sync settings
Manual sync
Click the Sync button to pull the latest code and Issues.
Webhook sync (coming soon)
GitHub Webhook support will be added in the future so content can sync automatically after new commits.
FAQ
Can private repositories be imported?
Yes, as long as you selected that repository during OAuth authorization.
What if a large repository fails to import?
It is better to import it in batches. Start with core directories such as src/ or docs/ instead of the whole repository.
Are binary files imported?
No. PuppyOne imports only text files, such as code, Markdown, and config files.