{ "documentationUrl": "https://docs.airbyte.com/integrations/sources/github", "connectionSpecification": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "GitHub Source Spec", "type": "object", "required": ["start_date", "repository"], "additionalProperties": true, "properties": { "credentials": { "title": "Authentication", "description": "Choose how to authenticate to GitHub", "type": "object", "order": 0, "oneOf": [ { "type": "object", "title": "OAuth", "required": ["access_token"], "properties": { "option_title": { "type": "string", "const": "OAuth Credentials", "order": 0 }, "access_token": { "type": "string", "title": "Access Token", "description": "OAuth access token", "airbyte_secret": true } } }, { "type": "object", "title": "Personal Access Token", "required": ["personal_access_token"], "properties": { "option_title": { "type": "string", "const": "PAT Credentials", "order": 0 }, "personal_access_token": { "type": "string", "title": "Personal Access Tokens", "description": "Log into GitHub and then generate a personal access token. To load balance your API quota consumption across multiple API tokens, input multiple tokens separated with \",\"", "airbyte_secret": true } } } ] }, "start_date": { "type": "string", "title": "Start date", "description": "The date from which you'd like to replicate data from GitHub in the format YYYY-MM-DDT00:00:00Z. For the streams which support this configuration, only data generated on or after the start date will be replicated. This field doesn't apply to all streams, see the docs for more info", "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 }, "repository": { "type": "string", "examples": [ "airbytehq/airbyte airbytehq/another-repo", "airbytehq/*", "airbytehq/airbyte" ], "title": "GitHub Repositories", "description": "Space-delimited list of GitHub organizations/repositories, e.g. `airbytehq/airbyte` for single repository, `airbytehq/*` for get all repositories from organization and `airbytehq/airbyte airbytehq/another-repo` for multiple repositories.", "order": 2 }, "branch": { "type": "string", "title": "Branch", "examples": ["airbytehq/airbyte/master airbytehq/airbyte/my-branch"], "description": "Space-delimited list of GitHub repository branches to pull commits for, e.g. `airbytehq/airbyte/master`. If no branches are specified for a repository, the default branch will be pulled.", "order": 3 }, "page_size_for_large_streams": { "type": "integer", "title": "Page size for large streams", "minimum": 1, "maximum": 100, "default": 10, "description": "The Github connector contains several streams with a large amount of data. The page size of such streams depends on the size of your repository. We recommended that you specify values between 10 and 30.", "order": 4 } } }, "advanced_auth": { "auth_flow_type": "oauth2.0", "predicate_key": ["credentials", "option_title"], "predicate_value": "OAuth Credentials", "oauth_config_specification": { "complete_oauth_output_specification": { "type": "object", "additionalProperties": false, "properties": { "access_token": { "type": "string", "path_in_connector_config": ["credentials", "access_token"] } } }, "complete_oauth_server_input_specification": { "type": "object", "additionalProperties": false, "properties": { "client_id": { "type": "string" }, "client_secret": { "type": "string" } } }, "complete_oauth_server_output_specification": { "type": "object", "additionalProperties": false, "properties": { "client_id": { "type": "string", "path_in_connector_config": ["credentials", "client_id"] }, "client_secret": { "type": "string", "path_in_connector_config": ["credentials", "client_secret"] } } } } } }