DocumentationAPI ReferenceRepositories API
API Reference

Repositories API

Manage connected repos

Repositories API

Manage connected repositories through the BambooSnow API.

Endpoints

| Method | Endpoint | Description | |--------|----------|-------------| | GET | /v1/repositories | List repositories | | GET | /v1/repositories/:id | Get repository details | | POST | /v1/repositories | Connect repository | | DELETE | /v1/repositories/:id | Disconnect repository | | POST | /v1/repositories/:id/analyze | Trigger analysis |

List Repositories

GET /v1/repositories

Query Parameters

| Parameter | Type | Description | |-----------|------|-------------| | page | integer | Page number (default: 1) | | per_page | integer | Items per page (default: 20, max: 100) | | sort | string | Sort field (name, created_at, updated_at) | | order | string | Sort order (asc, desc) |

Response

{
  "data": [
    {
      "id": "repo_abc123",
      "name": "owner/repo-name",
      "full_name": "owner/repo-name",
      "private": false,
      "default_branch": "main",
      "connected_at": "2024-01-15T10:30:00Z",
      "last_analyzed_at": "2024-01-15T12:00:00Z",
      "status": "active",
      "agents_count": 3,
      "language": "TypeScript",
      "health_score": 85
    }
  ],
  "meta": {
    "total": 15,
    "page": 1,
    "per_page": 20,
    "total_pages": 1
  }
}

Get Repository

GET /v1/repositories/:id

Response

{
  "id": "repo_abc123",
  "name": "owner/repo-name",
  "full_name": "owner/repo-name",
  "description": "A sample repository",
  "private": false,
  "default_branch": "main",
  "connected_at": "2024-01-15T10:30:00Z",
  "last_analyzed_at": "2024-01-15T12:00:00Z",
  "status": "active",
  "github_id": 123456789,
  "clone_url": "https://github.com/owner/repo-name.git",
  "languages": {
    "TypeScript": 65.5,
    "JavaScript": 20.3,
    "CSS": 14.2
  },
  "stats": {
    "total_files": 234,
    "total_lines": 45678,
    "test_coverage": 78.5
  },
  "analysis": {
    "health_score": 85,
    "issues_count": 12,
    "bottlenecks": [
      {
        "type": "missing_tests",
        "severity": "medium",
        "count": 8
      }
    ]
  },
  "agents": [
    {
      "id": "agent_xyz",
      "name": "code-reviewer",
      "status": "active"
    }
  ]
}

Connect Repository

POST /v1/repositories

Request Body

{
  "github_repo": "owner/repo-name",
  "default_branch": "main",
  "auto_analyze": true,
  "settings": {
    "pr_comments": true,
    "status_checks": true
  }
}

Response

{
  "id": "repo_abc123",
  "name": "owner/repo-name",
  "status": "connecting",
  "message": "Repository connection initiated"
}

Disconnect Repository

DELETE /v1/repositories/:id

Query Parameters

| Parameter | Type | Description | |-----------|------|-------------| | keep_data | boolean | Keep historical data (default: false) |

Response

{
  "id": "repo_abc123",
  "status": "disconnected",
  "message": "Repository disconnected successfully"
}

Trigger Analysis

POST /v1/repositories/:id/analyze

Request Body

{
  "branch": "main",
  "full_analysis": true,
  "include": ["security", "quality", "dependencies"]
}

Response

{
  "analysis_id": "analysis_789",
  "status": "queued",
  "estimated_duration": 120,
  "created_at": "2024-01-15T10:30:00Z"
}

Get Analysis Results

GET /v1/repositories/:id/analysis

Query Parameters

| Parameter | Type | Description | |-----------|------|-------------| | analysis_id | string | Specific analysis ID | | latest | boolean | Get latest analysis |

Response

{
  "id": "analysis_789",
  "repository_id": "repo_abc123",
  "status": "completed",
  "started_at": "2024-01-15T10:30:00Z",
  "completed_at": "2024-01-15T10:32:00Z",
  "results": {
    "health_score": 85,
    "summary": {
      "total_files": 234,
      "total_issues": 12,
      "critical": 0,
      "high": 2,
      "medium": 5,
      "low": 5
    },
    "categories": {
      "security": {
        "score": 90,
        "issues": 2
      },
      "quality": {
        "score": 82,
        "issues": 7
      },
      "dependencies": {
        "score": 88,
        "issues": 3
      }
    }
  }
}

Repository Settings

PATCH /v1/repositories/:id/settings

Request Body

{
  "default_branch": "main",
  "auto_analyze": true,
  "notifications": {
    "slack_channel": "#dev",
    "email": true
  },
  "agent_defaults": {
    "timeout": 300,
    "retry_count": 3
  }
}
BambooSnow - AI Agent Automation Platform