English
Data Connections
GitHub

GitHub

Import repositories, Issues, and Pull Requests from GitHub into PuppyOne.


Supported content

TypeSupportedNotes
Repository filesCode, README, config files, and more
IssuesIncludes labels and comments
Pull RequestsIncludes status and reviews
Wiki⚠️Partial support
ActionsNot supported yet

Setup steps

Step 1: Start the import

  1. Open your Project
  2. Click ImportGitHub

Step 2: Authorize GitHub

The first time you use it, you need to complete OAuth authorization:

  1. Click Connect GitHub
  2. On the GitHub page, choose the authorization scope
  3. Select the repositories you want to authorize, either all or only specific ones
  4. 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/123

Option 2: Browse and select

  1. Navigate to the target location in the file browser
  2. Check the files or folders you want to import
  3. Click Import

Step 4: Configure import options

OptionNotesDefault
Include subdirectoriesWhether to recursively import nested folders
File type filterImport only specific extensions such as .md or .pyAll
BranchSelect which branch to import fromDefault 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.


Next steps