{
  "apiVersion": "lns.run/v1",
  "kind": "connector",
  "name": "github",
  "spec": {
    "description": "Clone, push, and work with repositories, issues, pull requests, and packages on GitHub.",
    "methods": [
      {
        "auth": {
          "clientId": "Ov23li83DpXv5N3JGwzo",
          "deviceAuthorizationEndpoint": "https://github.com/login/device/code",
          "help": "Sign in with a code shown here and entered at github.com/login/device.",
          "kind": "oauth_device",
          "scopeGroups": [
            {
              "label": "Access",
              "name": "access",
              "options": [
                {
                  "label": "Read your profile, organisations, public repositories, and packages",
                  "name": "read-only",
                  "scopes": [
                    "read:org",
                    "read:user",
                    "read:packages"
                  ]
                },
                {
                  "label": "Clone and push private repositories, and read packages",
                  "name": "read-write",
                  "scopes": [
                    "repo",
                    "read:org",
                    "read:packages"
                  ]
                }
              ]
            }
          ],
          "tokenEndpoint": "https://github.com/login/oauth/access_token",
          "verificationHosts": [
            "github.com"
          ]
        },
        "credentials": [
          {
            "envVar": "GH_TOKEN",
            "injections": [
              {
                "domain": "github.com",
                "kind": "basic_x_access_token"
              },
              {
                "domain": "codeload.github.com",
                "kind": "basic_x_access_token"
              },
              {
                "domain": "api.github.com",
                "kind": "token_header"
              },
              {
                "domain": "uploads.github.com",
                "kind": "token_header"
              },
              {
                "domain": "npm.pkg.github.com",
                "kind": "bearer_header"
              },
              {
                "domain": "maven.pkg.github.com",
                "kind": "bearer_header"
              }
            ],
            "placeholder": "gho_LNSPLACEHOLDER0000000000000000000000"
          }
        ],
        "egress": {
          "http": [
            {
              "description": "git clone and push over HTTPS",
              "match": "github.com",
              "tlsTerminate": true,
              "verdict": "allow"
            },
            {
              "description": "the REST and GraphQL API, which `gh` calls",
              "match": "api.github.com",
              "tlsTerminate": true,
              "verdict": "allow"
            },
            {
              "description": "tarball and zipball downloads",
              "match": "codeload.github.com",
              "tlsTerminate": true,
              "verdict": "allow"
            },
            {
              "description": "release asset uploads",
              "match": "uploads.github.com",
              "tlsTerminate": true,
              "verdict": "allow"
            },
            {
              "description": "release assets and LFS objects",
              "match": "objects.githubusercontent.com",
              "verdict": "allow"
            },
            {
              "description": "the npm package registry",
              "match": "npm.pkg.github.com",
              "tlsTerminate": true,
              "verdict": "allow"
            },
            {
              "description": "the maven package registry",
              "match": "maven.pkg.github.com",
              "tlsTerminate": true,
              "verdict": "allow"
            }
          ]
        },
        "label": "GitHub account",
        "name": "device"
      },
      {
        "auth": {
          "help": "Create a classic token at github.com/settings/tokens with repo, read:org and read:packages scope.",
          "kind": "token"
        },
        "credentials": [
          {
            "envVar": "GH_TOKEN",
            "injections": [
              {
                "domain": "github.com",
                "kind": "basic_x_access_token"
              },
              {
                "domain": "codeload.github.com",
                "kind": "basic_x_access_token"
              },
              {
                "domain": "api.github.com",
                "kind": "token_header"
              },
              {
                "domain": "uploads.github.com",
                "kind": "token_header"
              },
              {
                "domain": "npm.pkg.github.com",
                "kind": "bearer_header"
              },
              {
                "domain": "maven.pkg.github.com",
                "kind": "bearer_header"
              }
            ],
            "placeholder": "gho_LNSPLACEHOLDER0000000000000000000000"
          }
        ],
        "egress": {
          "http": [
            {
              "description": "git clone and push over HTTPS",
              "match": "github.com",
              "tlsTerminate": true,
              "verdict": "allow"
            },
            {
              "description": "the REST and GraphQL API, which `gh` calls",
              "match": "api.github.com",
              "tlsTerminate": true,
              "verdict": "allow"
            },
            {
              "description": "tarball and zipball downloads",
              "match": "codeload.github.com",
              "tlsTerminate": true,
              "verdict": "allow"
            },
            {
              "description": "release asset uploads",
              "match": "uploads.github.com",
              "tlsTerminate": true,
              "verdict": "allow"
            },
            {
              "description": "release assets and LFS objects",
              "match": "objects.githubusercontent.com",
              "verdict": "allow"
            },
            {
              "description": "the npm package registry",
              "match": "npm.pkg.github.com",
              "tlsTerminate": true,
              "verdict": "allow"
            },
            {
              "description": "the maven package registry",
              "match": "maven.pkg.github.com",
              "tlsTerminate": true,
              "verdict": "allow"
            }
          ]
        },
        "label": "Personal access token",
        "name": "token"
      }
    ],
    "serves": [
      "github.com",
      "api.github.com",
      "codeload.github.com",
      "objects.githubusercontent.com",
      "uploads.github.com",
      "npm.pkg.github.com",
      "maven.pkg.github.com"
    ]
  }
}