-
Notifications
You must be signed in to change notification settings - Fork 3.7k
/
spec.json
123 lines (123 loc) · 4.69 KB
/
spec.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
{
"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,
"group": "auth",
"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 <a href=\"https://github.com/settings/tokens\">personal access token</a>. 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 <a href=\"https://docs.airbyte.com/integrations/sources/github\">docs</a> 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,
"format": "date-time"
},
"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,
"pattern": "^([\\w.-]+/(\\*|[\\w.-]+(?<!\\.git))\\s+)*[\\w.-]+/(\\*|[\\w.-]+(?<!\\.git))$",
"pattern_descriptor": "org/repo org/another-repo org/*"
},
"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,
"pattern_descriptor": "org/repo/branch1 org/repo/branch2"
},
"requests_per_hour": {
"type": "integer",
"title": "Max requests per hour",
"description": "The GitHub API allows for a maximum of 5000 requests per hour (15000 for Github Enterprise). You can specify a lower value to limit your use of the API quota.",
"minimum": 1,
"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"
}
}
}
}
}
}