🐙 UNGH API

API

/repos/{owner}/{name}

GitHub repository information.

Example: https://ungh.example.com/repos/unjs/h3

{
  "repo": {
    "id": 313641207,
    "name": "h3",
    "repo": "unjs/h3",
    "description": "Minimal h(ttp) framework built for high performance and portability ⚡️",
    "createdAt": "2020-11-17T14:15:44Z",
    "updatedAt": "2022-11-05T21:38:43Z",
    "pushedAt": "2022-11-06T06:48:23Z",
    "stars": 1168,
    "watchers": 1168,
    "forks": 59,
    "defaultBranch": "main",
    "language": "TypeScript"  
  }
}

/repos/{owner}/{name}/contributors

Get repository contributors.

Example: https://ungh.example.com/repos/unjs/h3/contributors

{
  "contributors": [
    {
      "id": 5158436,
      "username": "pi0",
      "contributions": 243
    },
    {
      "id": 29139614,
      "username": "renovate[bot]",
      "contributions": 41
    }
  ]
}

/repos/{owner}/{name}/files/{branch}

Get repository files tree on specific branch.

Example: https://ungh.example.com/repos/unjs/h3/files/main

{
  "meta": {
    "sha": "501f0c6e623ea827d47691046f3c7319f5ac4651"
  },
  "files": [
    {
      "path": "README.md",
      "mode": "100644",
      "sha": "4c2b9ce4bccd6e046cd71be1a8c5e53a62778858",
      "size": 5782
    }
  ]
}

/repos/{owner}/{name}/files/{branch}/{...path}

Get file contents from a repository. If path ends with .md, an additional html field with rendered markup will be appended.

Example: https://ungh.example.com/repos/unjs/h3/files/main/README.md

{
  "meta": {
    "url": "https://raw.githubusercontent.com/unjs/h3/main/README.md"
  },
  "file": {
    "contents": "...",
    "html": "..."
  }
}

/repos/{owner}/{name}/readme

Get repository readme file on main branch (not cached)

Example: https://ungh.example.com/repos/unjs/h3/readme

{
  "html": "<p><a href="https://npmjs.com/package/h3" rel="nofollow"><img...",
  "markdown": "[![npm downloads](https://img.shields.io...."
}

/repos/{owner}/{name}/releases

Get repository releases.

Example: https://ungh.example.com/repos/nuxt/framework/releases

{
  "releases": [
    {
      "id": 82066265,
      "tag": "v3.0.0-rc.13",
      "author": "pi0",
      "name": "v3.0.0-rc.13",
      "draft": false,
      "prerelease": false,
      "createdAt": "2022-11-04T11:37:49Z",
      "publishedAt": "2022-11-04T11:41:59Z",
      "markdown": "....",
      "html": "..."
    }
  ]
}

/repos/{owner}/{name}/releases/latest

Get latest repository release.

Example: https://ungh.example.com/repos/nuxt/framework/releases/latest

{
  "release": {
    "id": 82066265,
    "tag": "v3.0.0-rc.13",
    "author": "pi0",
    "name": "v3.0.0-rc.13",
    "draft": false,
    "prerelease": false,
    "createdAt": "2022-11-04T11:37:49Z",
    "publishedAt": "2022-11-04T11:41:59Z",
    "markdown": "....",
    "html": "..."
  }
}

/repos/{owner}/{name}/branches

Get all the branches of a repository

Example: https://ungh.example.com/repos/unjs/ungh/branches

{
  "branches": [
    {
      "name": "main",
      "commit": {
        "sha": "2eb6bff64caf0d18f082adde7606c4702513870b",
        "url": "https://api.github.com/repos/unjs/ungh/commits/2eb6bff64caf0d18f082adde7606c4702513870b"
      },
      "protected": true
    },
    {
      "name": "renovate/all-minor-patch",
      "commit": {
        "sha": "61140d05f66cd6b217f2475ad84e2d251ed7de05",
        "url": "https://api.github.com/repos/unjs/ungh/commits/61140d05f66cd6b217f2475ad84e2d251ed7de05"
      },
      "protected": false
    },
    {
      "name": "renovate/typescript-5.x",
      "commit": {
        "sha": "19b23fca2088722bbb41a7238bf8bd5272799718",
        "url": "https://api.github.com/repos/unjs/ungh/commits/19b23fca2088722bbb41a7238bf8bd5272799718"
      },
      "protected": false
    }
  ]
}

/orgs/{owner}

GitHub organization information.

Example: https://ungh.example.com/orgs/unjs

{
  "org": {
    "id": 80154025,
    "name": "unjs",
    "description": "Unified JavaScript Tools"
  }
}

/orgs/{owner}/repos

GitHub organization repositories overview.

Example: https://ungh.example.com/orgs/unjs/repos

{
  "repos": [
    {
      "id": 97751746,
      "name": "redirect-ssl",
      "repo": "unjs/redirect-ssl",
      "description": "Connect/Express middleware to enforce https using is-https",
      "createdAt": "2017-07-19T19:04:11Z",
      "updatedAt": "2022-09-22T09:47:25Z",
      "pushedAt": "2022-04-08T20:29:48Z",
      "stars": 93,
      "watchers": 93,
      "forks": 14,
      "language": "TypeScript"
    }
  ]
}

/stars/{repos}

Get star information for one or more repositories or organizations.

Multiple items can be separated by either , or + or (space). Each item can be either {owner}/{org} to specify one repository or {owner}/* to specify all organization repositories.

Example: https://ungh.example.com/stars/nuxt/nuxt.js+nuxt/framework

{
  "totalStars": 51524,
  "stars": {
    "nuxt/nuxt.js": 41560,
    "nuxt/framework": 9964
  }
}

/users/{username}

Find one github user by username.

Example: https://ungh.example.com/users/pi0

{
  "user": {
    "id": 5158436,
    "name": "Pooya Parsa",
    "twitter": null,
    "username": "pi0"
  }
}

/users/{username}/repos

Get user repositories.

Example: https://ungh.example.com/users/pi0/repos

{
  "repos": [
    {
      "id": 674019467,
      "name": "h3-on-edge",
      "description": "⚡️ Edge workers with straming powered by unjs/h3",
      "repo": "pi0/h3-on-edge",
      "stars": 51,
      "pushedAt": "2024-01-07T16:54:46Z",
      "createdAt": "2023-08-03T00:53:31Z",
      "updatedAt": "2024-01-04T17:20:53Z",
      "watchers": 51,
      "forks": 0,
      "defaultBranch": "main",
      "language": "TypeScript"
    }
  ]
}

/users/find/{query}

Find one github user by email or other query.

Example: https://ungh.example.com/users/find/[email protected]

{
  "user": {
    "id": 5158436,
    "name": "Pooya Parsa",
    "twitter": null,
    "username": "pi0"
  }
}