{ "documentationUrl": "https://docs.airbyte.com/integrations/sources/gitlab", "connectionSpecification": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "Source Gitlab Spec", "type": "object", "required": ["start_date", "credentials"], "additionalProperties": true, "properties": { "credentials": { "title": "Authorization Method", "type": "object", "order": 0, "oneOf": [ { "type": "object", "title": "OAuth2.0", "required": [ "client_id", "client_secret", "refresh_token", "access_token", "token_expiry_date" ], "properties": { "auth_type": { "type": "string", "const": "oauth2.0" }, "client_id": { "type": "string", "description": "The API ID of the Gitlab developer application.", "airbyte_secret": true }, "client_secret": { "type": "string", "description": "The API Secret the Gitlab developer application.", "airbyte_secret": true }, "access_token": { "type": "string", "description": "Access Token for making authenticated requests.", "airbyte_secret": true }, "token_expiry_date": { "type": "string", "description": "The date-time when the access token should be refreshed.", "format": "date-time" }, "refresh_token": { "type": "string", "description": "The key to refresh the expired access_token.", "airbyte_secret": true } } }, { "title": "Private Token", "type": "object", "required": ["access_token"], "properties": { "auth_type": { "type": "string", "const": "access_token" }, "access_token": { "type": "string", "title": "Private Token", "description": "Log into your Gitlab account and then generate a personal Access Token.", "airbyte_secret": true } } } ] }, "start_date": { "type": "string", "title": "Start Date", "description": "The date from which you'd like to replicate data for GitLab API, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.", "examples": ["2021-03-01T00:00:00Z"], "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$", "order": 1, "format": "date-time" }, "api_url": { "type": "string", "examples": ["gitlab.com", "https://gitlab.com", "https://gitlab.company.org"], "title": "API URL", "default": "gitlab.com", "description": "Please enter your basic URL from GitLab instance.", "order": 2 }, "groups": { "type": "string", "examples": ["airbyte.io"], "title": "Groups", "description": "Space-delimited list of groups. e.g. airbyte.io.", "order": 3 }, "projects": { "type": "string", "title": "Projects", "examples": ["airbyte.io/documentation"], "description": "Space-delimited list of projects. e.g. airbyte.io/documentation meltano/tap-gitlab.", "order": 4 } } }, "advanced_auth": { "auth_flow_type": "oauth2.0", "predicate_key": ["credentials", "auth_type"], "predicate_value": "oauth2.0", "oauth_config_specification": { "oauth_user_input_from_connector_config_specification": { "type": "object", "properties": { "domain": { "type": "string", "path_in_connector_config": ["api_url"] } } }, "complete_oauth_output_specification": { "type": "object", "properties": { "access_token": { "type": "string", "path_in_connector_config": ["credentials", "access_token"] }, "refresh_token": { "type": "string", "path_in_connector_config": ["credentials", "refresh_token"] }, "token_expiry_date": { "type": "string", "format": "date-time", "path_in_connector_config": ["credentials", "token_expiry_date"] } } }, "complete_oauth_server_input_specification": { "type": "object", "properties": { "client_id": { "type": "string" }, "client_secret": { "type": "string" } } }, "complete_oauth_server_output_specification": { "type": "object", "properties": { "client_id": { "type": "string", "path_in_connector_config": ["credentials", "client_id"] }, "client_secret": { "type": "string", "path_in_connector_config": ["credentials", "client_secret"] } } } } } }