Skip to content

Latest commit

 

History

History
162 lines (128 loc) · 2.81 KB

File metadata and controls

162 lines (128 loc) · 2.81 KB

REST API Reference

OpenCodeHub provides a REST API to interact with repositories, users, and pull requests programmatically.

  • Base URL: /api
  • Authentication: Bearer Token (see Authentication)
  • Response Format: JSON

👤 Users

Get Current User

Retrieve the profile of the currently authenticated user.

```http GET /users/me ```

Response: ```json { "id": "user_123abc...", "username": "johndoe", "email": "john@example.com", "avatarUrl": "/uploads/avatars/user_123.jpg", "createdAt": "2024-01-01T00:00:00Z" } ```


📦 Repositories

List My Repositories

Get a list of repositories owned by the authenticated user.

```http GET /repos ```

Parameters:

Name Type Description
`page` int Page number (default: 1)
`limit` int Items per page (default: 20)

Response: ```json [ { "id": "repo_789xyz", "owner": "johndoe", "name": "awesome-project", "visibility": "public", "description": "My standardized API docs", "updatedAt": "2024-03-15T10:00:00Z" } ] ```

Create Repository

Create a new repository.

```http POST /repos ```

Body: ```json { "name": "new-project", "visibility": "private", // "public", "private", "internal" "description": "Optional description", "init": true // Initialize with README } ```

Get Repository Details

```http GET /repos/{owner}/{repo} ```


🔀 Pull Requests

List Pull Requests

List PRs for a specific repository.

```http GET /repos/{owner}/{repo}/pulls ```

Parameters:

Name Type Description
`state` string `open`, `closed`, `merged`, `all`

Response: ```json [ { "number": 1, "title": "Add documentation", "state": "open", "author": { "username": "jane" }, "createdAt": "...", "reviewStatus": "approved" } ] ```

Create Pull Request

```http POST /repos/{owner}/{repo}/pulls ```

Body: ```json { "title": "Fix login bug", "description": "Fixes issue #42...", "head": "feature/login-fix", // source branch "base": "main" // target branch } ```


🏗 CI/CD

List Workflow Runs

Get execution history of pipelines.

```http GET /repos/{owner}/{repo}/actions/runs ```


⚠️ Errors

The API uses standard HTTP status codes.

Code Meaning
`200` Success
`201` Created
`400` Bad Request (Validation Error)
`401` Unauthorized (Missing/Invalid Token)
`403` Forbidden (Insufficient permissions)
`404` Not Found
`429` Too Many Requests (Rate Limit Exceeded)

Error Body: ```json { "error": "Resource not found", "code": "NOT_FOUND" } ```