{
  "apiVersion": "lns.run/v1",
  "kind": "connector",
  "name": "gitlab",
  "spec": {
    "description": "Work with projects, issues, merge requests, and pipelines on GitLab.",
    "methods": [
      {
        "auth": {
          "authorizationEndpoint": "https://gitlab.com/oauth/authorize",
          "clientId": "e303772be0aa02679727643a4437b121d61e6704738ec2d394b0e5b13eefa232",
          "help": "Sign in through your browser. lns listens on 127.0.0.1 for the callback.",
          "kind": "oauth_authorization_code",
          "redirect": {
            "kind": "loopback",
            "path": "/callback",
            "port": 53682
          },
          "scopeGroups": [
            {
              "label": "Access",
              "name": "access",
              "options": [
                {
                  "label": "Read projects, issues, and merge requests",
                  "name": "read-only",
                  "scopes": [
                    "read_api"
                  ]
                },
                {
                  "label": "Read and write projects, issues, and merge requests",
                  "name": "read-write",
                  "scopes": [
                    "api"
                  ]
                }
              ]
            }
          ],
          "tokenEndpoint": "https://gitlab.com/oauth/token"
        },
        "credentials": [
          {
            "envVar": "GITLAB_TOKEN",
            "injections": [
              {
                "domain": "gitlab.com",
                "kind": "bearer_header"
              }
            ],
            "placeholder": "glpat_LNSPLACEHOLDER0000000000"
          }
        ],
        "egress": {
          "http": [
            {
              "match": "gitlab.com",
              "verdict": "allow"
            }
          ]
        },
        "label": "GitLab account",
        "name": "browser"
      },
      {
        "auth": {
          "clientId": "e303772be0aa02679727643a4437b121d61e6704738ec2d394b0e5b13eefa232",
          "deviceAuthorizationEndpoint": "https://gitlab.com/oauth/authorize_device",
          "help": "Sign in with a code shown here and entered at gitlab.com/oauth/device. Use this when no browser can reach this machine.",
          "kind": "oauth_device",
          "scopeGroups": [
            {
              "label": "Access",
              "name": "access",
              "options": [
                {
                  "label": "Read projects, issues, and merge requests",
                  "name": "read-only",
                  "scopes": [
                    "read_api"
                  ]
                },
                {
                  "label": "Read and write projects, issues, and merge requests",
                  "name": "read-write",
                  "scopes": [
                    "api"
                  ]
                }
              ]
            }
          ],
          "tokenEndpoint": "https://gitlab.com/oauth/token",
          "verificationHosts": [
            "gitlab.com"
          ]
        },
        "credentials": [
          {
            "envVar": "GITLAB_TOKEN",
            "injections": [
              {
                "domain": "gitlab.com",
                "kind": "bearer_header"
              }
            ],
            "placeholder": "glpat_LNSPLACEHOLDER0000000000"
          }
        ],
        "egress": {
          "http": [
            {
              "match": "gitlab.com",
              "verdict": "allow"
            }
          ]
        },
        "label": "GitLab account, by code",
        "name": "device"
      },
      {
        "auth": {
          "help": "Create a token at gitlab.com/-/user_settings/personal_access_tokens with the read_api or api scope.",
          "kind": "token"
        },
        "credentials": [
          {
            "envVar": "GITLAB_TOKEN",
            "injections": [
              {
                "domain": "gitlab.com",
                "kind": "bearer_header"
              }
            ],
            "placeholder": "glpat_LNSPLACEHOLDER0000000000"
          }
        ],
        "egress": {
          "http": [
            {
              "match": "gitlab.com",
              "verdict": "allow"
            }
          ]
        },
        "label": "Personal access token",
        "name": "token"
      }
    ],
    "serves": [
      "gitlab.com"
    ]
  }
}