vs-codespaces-authorization
TypeScript icon, indicating that this package has built-in type declarations

0.2.1 • Public • Published

GitHub Codespaces Authorization library

The npm module that makes life easier when dealing with the GitHub Codespaces platform authorization calls. Includes:

  • Typescript types for the authorization info payload.
  • Javascript utilities for performing cross-domain top-level HTTP POST request to the platform.
  • JSON schemas to validate the JSON authorization payloads.

Installation

npm install vs-codespaces-authorization

Using Javascript util

import { authorizePlatform } from 'vs-codespaces-authorization';

await authorizePlatform(
    'https://online.visualstudio.com/platform-authentication',
    {
      "partnerName": "github",
      "managementPortalUrl": "https://github.com/codespaces",
      "codespaceToken": "<codespace JWT>",
      "credentials": [],
      "codespaceId": "<codespace guid>",
      "vscodeSettings": {}
    }
);
Example for authorization payload data
{
    "partnerName": "github",
    "managementPortalUrl": "https://github.com/codespaces",
    "codespaceToken": "<codespaces JWT>",
    "credentials": [{
        "expiration": 10000000000000,
        "token": "<github token>",
        "host": "github.com",
        "path": "/"
    }],
    "codespaceId": "<codespace guid>",
    "gitHubApiUrl": "https://api.github.com",
    "featureFlags": {
        "example-pfs-name": "not real feature flag",
        "example-enable-pfs": true,
        "example-multithreading": 5
    },
    "vscodeSettings": {
        "vscodeChannel": "insider",
        "loadingScreenThemeColor": "dark",
        "defaultSettings": {
           "workbench.colorTheme": "GitHub Light",
           "workbench.startupEditor": "welcomePageInEmptyWorkbench"
        },
        "defaultExtensions": [{
            "id": "GitHub.vscode-pull-request-github"
        }, {
            "id": "ms-vsliveshare.vsliveshare"
        }],
        "defaultAuthSessions": [{
            "type": "github",
            "id": "github-session-github-pr",
            "accessToken": "<github token>",
            "scopes": ["read:user", "user:email", "repo"]
        }]
    }
}

Using Schemas

Online playground: https://www.jsonschemavalidator.net/s/kGYLyowr

The lastest JSON schema defined in src/schemas/ and published at https://aka.ms/vscs-platform-json-schema. (The extended schema https://aka.ms/vscs-platform-json-schema-extended can be used internally).

License

See LICENSE.md

Readme

Keywords

none

Package Sidebar

Install

npm i vs-codespaces-authorization

Weekly Downloads

4

Version

0.2.1

License

LICENSE.md

Unpacked Size

371 kB

Total Files

41

Last publish

Collaborators

  • legomushroom