airbyte-source-gitlab 2.1.1__py3-none-any.whl → 2.1.2__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,111 @@
1
+ Metadata-Version: 2.1
2
+ Name: airbyte-source-gitlab
3
+ Version: 2.1.2
4
+ Summary: Source implementation for Gitlab.
5
+ Home-page: https://airbyte.com
6
+ License: MIT
7
+ Author: Airbyte
8
+ Author-email: contact@airbyte.io
9
+ Requires-Python: >=3.9,<3.12
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: Programming Language :: Python :: 3.9
13
+ Classifier: Programming Language :: Python :: 3.10
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Requires-Dist: airbyte-cdk (==0.58.8)
16
+ Requires-Dist: vcrpy (==4.1.1)
17
+ Project-URL: Documentation, https://docs.airbyte.com/integrations/sources/gitlab
18
+ Project-URL: Repository, https://github.com/airbytehq/airbyte
19
+ Description-Content-Type: text/markdown
20
+
21
+ # Gitlab source connector
22
+
23
+
24
+ This is the repository for the Gitlab source connector, written in Python.
25
+ For information about how to use this connector within Airbyte, see [the documentation](https://docs.airbyte.com/integrations/sources/gitlab).
26
+
27
+ ## Local development
28
+
29
+ ### Prerequisites
30
+ * Python (~=3.9)
31
+ * Poetry (~=1.7) - installation instructions [here](https://python-poetry.org/docs/#installation)
32
+
33
+
34
+ ### Installing the connector
35
+ From this connector directory, run:
36
+ ```bash
37
+ poetry install --with dev
38
+ ```
39
+
40
+
41
+ ### Create credentials
42
+ **If you are a community contributor**, follow the instructions in the [documentation](https://docs.airbyte.com/integrations/sources/gitlab)
43
+ to generate the necessary credentials. Then create a file `secrets/config.json` conforming to the `source_gitlab/spec.yaml` file.
44
+ Note that any directory named `secrets` is gitignored across the entire Airbyte repo, so there is no danger of accidentally checking in sensitive information.
45
+ See `sample_files/sample_config.json` for a sample config file.
46
+
47
+
48
+ ### Locally running the connector
49
+ ```
50
+ poetry run source-gitlab spec
51
+ poetry run source-gitlab check --config secrets/config.json
52
+ poetry run source-gitlab discover --config secrets/config.json
53
+ poetry run source-gitlab read --config secrets/config.json --catalog sample_files/configured_catalog.json
54
+ ```
55
+
56
+ ### Running unit tests
57
+ To run unit tests locally, from the connector directory run:
58
+ ```
59
+ poetry run pytest unit_tests
60
+ ```
61
+
62
+ ### Building the docker image
63
+ 1. Install [`airbyte-ci`](https://github.com/airbytehq/airbyte/blob/master/airbyte-ci/connectors/pipelines/README.md)
64
+ 2. Run the following command to build the docker image:
65
+ ```bash
66
+ airbyte-ci connectors --name=source-gitlab build
67
+ ```
68
+
69
+ An image will be available on your host with the tag `airbyte/source-gitlab:dev`.
70
+
71
+
72
+ ### Running as a docker container
73
+ Then run any of the connector commands as follows:
74
+ ```
75
+ docker run --rm airbyte/source-gitlab:dev spec
76
+ docker run --rm -v $(pwd)/secrets:/secrets airbyte/source-gitlab:dev check --config /secrets/config.json
77
+ docker run --rm -v $(pwd)/secrets:/secrets airbyte/source-gitlab:dev discover --config /secrets/config.json
78
+ docker run --rm -v $(pwd)/secrets:/secrets -v $(pwd)/integration_tests:/integration_tests airbyte/source-gitlab:dev read --config /secrets/config.json --catalog /integration_tests/configured_catalog.json
79
+ ```
80
+
81
+ ### Running our CI test suite
82
+ You can run our full test suite locally using [`airbyte-ci`](https://github.com/airbytehq/airbyte/blob/master/airbyte-ci/connectors/pipelines/README.md):
83
+ ```bash
84
+ airbyte-ci connectors --name=source-gitlab test
85
+ ```
86
+
87
+ ### Customizing acceptance Tests
88
+ Customize `acceptance-test-config.yml` file to configure acceptance tests. See [Connector Acceptance Tests](https://docs.airbyte.com/connector-development/testing-connectors/connector-acceptance-tests-reference) for more information.
89
+ If your connector requires to create or destroy resources for use during acceptance tests create fixtures for it and place them inside integration_tests/acceptance.py.
90
+
91
+ ### Dependency Management
92
+ All of your dependencies should be managed via Poetry.
93
+ To add a new dependency, run:
94
+ ```bash
95
+ poetry add <package-name>
96
+ ```
97
+
98
+ Please commit the changes to `pyproject.toml` and `poetry.lock` files.
99
+
100
+ ## Publishing a new version of the connector
101
+ You've checked out the repo, implemented a million dollar feature, and you're ready to share your changes with the world. Now what?
102
+ 1. Make sure your changes are passing our test suite: `airbyte-ci connectors --name=source-gitlab test`
103
+ 2. Bump the connector version (please follow [semantic versioning for connectors](https://docs.airbyte.com/contributing-to-airbyte/resources/pull-requests-handbook/#semantic-versioning-for-connectors)):
104
+ - bump the `dockerImageTag` value in in `metadata.yaml`
105
+ - bump the `version` value in `pyproject.toml`
106
+ 3. Make sure the `metadata.yaml` content is up to date.
107
+ 4. Make sure the connector documentation and its changelog is up to date (`docs/integrations/sources/gitlab.md`).
108
+ 5. Create a Pull Request: use [our PR naming conventions](https://docs.airbyte.com/contributing-to-airbyte/resources/pull-requests-handbook/#pull-request-title-convention).
109
+ 6. Pat yourself on the back for being an awesome contributor.
110
+ 7. Someone from Airbyte will take a look at your PR and iterate with you to merge it into master.
111
+ 8. Once your PR is merged, the new version of the connector will be automatically published to Docker Hub and our connector registry.
@@ -1,18 +1,6 @@
1
- integration_tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- integration_tests/abnormal_state.json,sha256=H8TlXmMxhP4DHDO_mj3WV-dKoG5HqHBDdO-j-0WBNUo,964
3
- integration_tests/acceptance.py,sha256=8eU9iSDbmHyufPvAouJGhPMgPAFTCP8IKIKHLm7u5TE,435
4
- integration_tests/configured_catalog.json,sha256=z8RTRtPh-XhQ6uQTbA0mYtl5FfjfREd3o2ZKf2OPZvA,7694
5
- integration_tests/incremental_catalog.json,sha256=dsQaoDNxejOB9jHXMfqzm-JHN8vUvybwQ3xvl85Lt68,1774
6
- integration_tests/invalid_config.json,sha256=Sl16cmcNBcExldATlJS6gNUT7tSZV_ogmfArpcL3mjw,303
7
- integration_tests/sample_config.json,sha256=UROXW83qtFIkUgi6J86gn1aHgWqwY2n4vKgCfzgZkVQ,169
8
- integration_tests/sample_state.json,sha256=YVhwyZIhGQ3o_pmnWF_Jbs1zj_sRsaTjeId04ny7IHQ,400
9
1
  source_gitlab/__init__.py,sha256=Bip0P3F1yGxbb0nNwdTE8i98KtkuTT_MzZbMeSxziBM,1134
10
2
  source_gitlab/config_migrations.py,sha256=ehidh0Cj9qwM5b7mxShnU_w6nyIOviKquNBcqXoxsNY,3818
11
3
  source_gitlab/run.py,sha256=opjAlKxINNpsekbyOYAAxh25DxI7gTKg5ohJmDwe0q0,403
12
- source_gitlab/source.py,sha256=_ovomkDxlb62M4PqNczTRk29grlNEsx9Scoy-79eebM,12072
13
- source_gitlab/spec.json,sha256=0eit0zD-6kdcaNhJ1sAf0ABgIUwnlPV87Sbu3A4JvG0,6132
14
- source_gitlab/streams.py,sha256=hvAvtdzZxyctduxhvs3EqnsKjhQ4lejRoZ3CYhfORsQ,16013
15
- source_gitlab/utils.py,sha256=idtKZiT-ILRRtpO0rxPJ1wim-mWN6ewzN_KgLCmogBs,456
16
4
  source_gitlab/schemas/branches.json,sha256=iQMHidNwdx2g4UgfkeOZPhpG67K--S2jPM-XLBPhJb8,800
17
5
  source_gitlab/schemas/commits.json,sha256=2VgI6Ih5lrzzeuIacVNqigM8RwR93u2cEwD21LmEpvU,1676
18
6
  source_gitlab/schemas/deployments.json,sha256=GDnm625zWbz4YDTBI4x8_jeuIRcUn5LZLK8tP6ZHewo,5084
@@ -36,8 +24,11 @@ source_gitlab/schemas/projects.json,sha256=hyfYxWZpl8t03eV6gmXlwiJWy9-wo1BYMUU-z
36
24
  source_gitlab/schemas/releases.json,sha256=NfDIhLN2DBZhXjhn_5Xbw8PUO2e5KRgeiU8HgjsSoXU,1781
37
25
  source_gitlab/schemas/tags.json,sha256=uyRFTJF2d9z2tbIp69NhkJmrRMmaEuHEdSagP99iqjw,771
38
26
  source_gitlab/schemas/users.json,sha256=h89E6ZHQWbwU_MhErTZTtfiIZjF6aLAbHZQJ8TCTLY8,496
39
- airbyte_source_gitlab-2.1.1.dist-info/METADATA,sha256=BbHtNFCLJRksAHqs4c4Nft72DT5K_sywAzyHb2uHP24,7487
40
- airbyte_source_gitlab-2.1.1.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
41
- airbyte_source_gitlab-2.1.1.dist-info/entry_points.txt,sha256=8E3Ff2-kirIUmA3q9Klx_7xsdjgjw9NMM8qxaRxL3_Y,56
42
- airbyte_source_gitlab-2.1.1.dist-info/top_level.txt,sha256=sjyCsT32VNXvSMgodDBbaoZfMnJrK3ZKYUxdgHec2sQ,32
43
- airbyte_source_gitlab-2.1.1.dist-info/RECORD,,
27
+ source_gitlab/source.py,sha256=_ovomkDxlb62M4PqNczTRk29grlNEsx9Scoy-79eebM,12072
28
+ source_gitlab/spec.json,sha256=0eit0zD-6kdcaNhJ1sAf0ABgIUwnlPV87Sbu3A4JvG0,6132
29
+ source_gitlab/streams.py,sha256=hvAvtdzZxyctduxhvs3EqnsKjhQ4lejRoZ3CYhfORsQ,16013
30
+ source_gitlab/utils.py,sha256=idtKZiT-ILRRtpO0rxPJ1wim-mWN6ewzN_KgLCmogBs,456
31
+ airbyte_source_gitlab-2.1.2.dist-info/METADATA,sha256=BzbanxnPm0f7TqSE8IdB_bdR_9pCSdNBSYMSi4qQ1Fc,5231
32
+ airbyte_source_gitlab-2.1.2.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
33
+ airbyte_source_gitlab-2.1.2.dist-info/entry_points.txt,sha256=sbp4881P3oluHtnFDy4ZCVHDfL5fIkVQhJ7vka_qzTc,55
34
+ airbyte_source_gitlab-2.1.2.dist-info/RECORD,,
@@ -1,5 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.42.0)
2
+ Generator: poetry-core 1.8.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
-
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ source-gitlab=source_gitlab.run:run
3
+
@@ -1,141 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: airbyte-source-gitlab
3
- Version: 2.1.1
4
- Summary: Source implementation for Gitlab.
5
- Author: Airbyte
6
- Author-email: contact@airbyte.io
7
- Description-Content-Type: text/markdown
8
- Requires-Dist: airbyte-cdk
9
- Requires-Dist: vcrpy ==4.1.1
10
- Provides-Extra: tests
11
- Requires-Dist: requests-mock ~=1.9.3 ; extra == 'tests'
12
- Requires-Dist: pytest ~=6.1 ; extra == 'tests'
13
- Requires-Dist: requests-mock ; extra == 'tests'
14
- Requires-Dist: pytest-mock ; extra == 'tests'
15
-
16
- # Gitlab Source
17
-
18
- This is the repository for the Gitlab source connector, written in Python.
19
- For information about how to use this connector within Airbyte, see [the documentation](https://docs.airbyte.io/integrations/sources/gitlab).
20
-
21
-
22
- **To iterate on this connector, make sure to complete this prerequisites section.**
23
-
24
- From this connector directory, create a virtual environment:
25
- ```
26
- python -m venv .venv
27
- ```
28
-
29
- This will generate a virtualenv for this module in `.venv/`. Make sure this venv is active in your
30
- development environment of choice. To activate it from the terminal, run:
31
- ```
32
- source .venv/bin/activate
33
- pip install -r requirements.txt
34
- ```
35
- If you are in an IDE, follow your IDE's instructions to activate the virtualenv.
36
-
37
- Note that while we are installing dependencies from `requirements.txt`, you should only edit `setup.py` for your dependencies. `requirements.txt` is
38
- used for editable installs (`pip install -e`) to pull in Python dependencies from the monorepo and will call `setup.py`.
39
- If this is mumbo jumbo to you, don't worry about it, just put your deps in `setup.py` but install using `pip install -r requirements.txt` and everything
40
- should work as you expect.
41
-
42
- **If you are a community contributor**, follow the instructions in the [documentation](https://docs.airbyte.io/integrations/sources/gitlab)
43
- to generate the necessary credentials. Then create a file `secrets/config.json` conforming to the `source_gitlab/spec.json` file.
44
- Note that any directory named `secrets` is gitignored across the entire Airbyte repo, so there is no danger of accidentally checking in sensitive information.
45
- See `integration_tests/sample_config.json` for a sample config file.
46
-
47
- **If you are an Airbyte core member**, copy the credentials in Lastpass under the secret name `source gitlab test creds`
48
- and place them into `secrets/config.json`.
49
-
50
- ```
51
- python main.py spec
52
- python main.py check --config secrets/config.json
53
- python main.py discover --config secrets/config.json
54
- python main.py read --config secrets/config.json --catalog integration_tests/configured_catalog.json
55
- ```
56
-
57
-
58
-
59
-
60
- The Airbyte way of building this connector is to use our `airbyte-ci` tool.
61
- You can follow install instructions [here](https://github.com/airbytehq/airbyte/blob/master/airbyte-ci/connectors/pipelines/README.md#L1).
62
- Then running the following command will build your connector:
63
-
64
- ```bash
65
- airbyte-ci connectors --name=source-gitlab build
66
- ```
67
- Once the command is done, you will find your connector image in your local docker registry: `airbyte/source-gitlab:dev`.
68
-
69
- When contributing on our connector you might need to customize the build process to add a system dependency or set an env var.
70
- You can customize our build process by adding a `build_customization.py` module to your connector.
71
- This module should contain a `pre_connector_install` and `post_connector_install` async function that will mutate the base image and the connector container respectively.
72
- It will be imported at runtime by our build process and the functions will be called if they exist.
73
-
74
- Here is an example of a `build_customization.py` module:
75
- ```python
76
- from __future__ import annotations
77
-
78
- from typing import TYPE_CHECKING
79
-
80
- if TYPE_CHECKING:
81
- from dagger import Container
82
-
83
-
84
- async def pre_connector_install(base_image_container: Container) -> Container:
85
- return await base_image_container.with_env_variable("MY_PRE_BUILD_ENV_VAR", "my_pre_build_env_var_value")
86
-
87
- async def post_connector_install(connector_container: Container) -> Container:
88
- return await connector_container.with_env_variable("MY_POST_BUILD_ENV_VAR", "my_post_build_env_var_value")
89
- ```
90
-
91
- This connector is built using our dynamic built process in `airbyte-ci`.
92
- The base image used to build it is defined within the metadata.yaml file under the `connectorBuildOptions`.
93
- The build logic is defined using [Dagger](https://dagger.io/) [here](https://github.com/airbytehq/airbyte/blob/master/airbyte-ci/connectors/pipelines/pipelines/builds/python_connectors.py).
94
- It does not rely on a Dockerfile.
95
-
96
- If you would like to patch our connector and build your own a simple approach would be to:
97
-
98
- 1. Create your own Dockerfile based on the latest version of the connector image.
99
- ```Dockerfile
100
- FROM airbyte/source-gitlab:latest
101
-
102
- COPY . ./airbyte/integration_code
103
- RUN pip install ./airbyte/integration_code
104
-
105
- ```
106
- Please use this as an example. This is not optimized.
107
-
108
- 2. Build your image:
109
- ```bash
110
- docker build -t airbyte/source-gitlab:dev .
111
- docker run airbyte/source-gitlab:dev spec
112
- ```
113
- Then run any of the connector commands as follows:
114
- ```
115
- docker run --rm airbyte/source-gitlab:dev spec
116
- docker run --rm -v $(pwd)/secrets:/secrets airbyte/source-gitlab:dev check --config /secrets/config.json
117
- docker run --rm -v $(pwd)/secrets:/secrets airbyte/source-gitlab:dev discover --config /secrets/config.json
118
- docker run --rm -v $(pwd)/secrets:/secrets -v $(pwd)/integration_tests:/integration_tests airbyte/source-gitlab:dev read --config /secrets/config.json --catalog /integration_tests/configured_catalog.json
119
- ```
120
-
121
- You can run our full test suite locally using [`airbyte-ci`](https://github.com/airbytehq/airbyte/blob/master/airbyte-ci/connectors/pipelines/README.md):
122
- ```bash
123
- airbyte-ci connectors --name=source-gitlab test
124
- ```
125
-
126
- Customize `acceptance-test-config.yml` file to configure tests. See [Connector Acceptance Tests](https://docs.airbyte.com/connector-development/testing-connectors/connector-acceptance-tests-reference) for more information.
127
- If your connector requires to create or destroy resources for use during acceptance tests create fixtures for it and place them inside integration_tests/acceptance.py.
128
-
129
- All of your dependencies should go in `setup.py`, NOT `requirements.txt`. The requirements file is only used to connect internal Airbyte dependencies in the monorepo for local development.
130
- We split dependencies between two groups, dependencies that are:
131
- * required for your connector to work need to go to `MAIN_REQUIREMENTS` list.
132
- * required for the testing need to go to `TEST_REQUIREMENTS` list
133
-
134
- You've checked out the repo, implemented a million dollar feature, and you're ready to share your changes with the world. Now what?
135
- 1. Make sure your changes are passing our test suite: `airbyte-ci connectors --name=source-gitlab test`
136
- 2. Bump the connector version in `metadata.yaml`: increment the `dockerImageTag` value. Please follow [semantic versioning for connectors](https://docs.airbyte.com/contributing-to-airbyte/resources/pull-requests-handbook/#semantic-versioning-for-connectors).
137
- 3. Make sure the `metadata.yaml` content is up to date.
138
- 4. Make the connector documentation and its changelog is up to date (`docs/integrations/sources/gitlab.md`).
139
- 5. Create a Pull Request: use [our PR naming conventions](https://docs.airbyte.com/contributing-to-airbyte/resources/pull-requests-handbook/#pull-request-title-convention).
140
- 6. Pat yourself on the back for being an awesome contributor.
141
- 7. Someone from Airbyte will take a look at your PR and iterate with you to merge it into master.
@@ -1,2 +0,0 @@
1
- [console_scripts]
2
- source-gitlab = source_gitlab.run:run
@@ -1,2 +0,0 @@
1
- integration_tests
2
- source_gitlab
File without changes
@@ -1,54 +0,0 @@
1
- [
2
- {
3
- "type": "STREAM",
4
- "stream": {
5
- "stream_state": {
6
- "25157276": {
7
- "created_at": "2121-03-18T12:51:05+00:00"
8
- }
9
- },
10
- "stream_descriptor": {
11
- "name": "commits"
12
- }
13
- }
14
- },
15
- {
16
- "type": "STREAM",
17
- "stream": {
18
- "stream_state": {
19
- "25157276": {
20
- "updated_at": "2121-03-15T16:08:06.041000+00:00"
21
- }
22
- },
23
- "stream_descriptor": {
24
- "name": "issues"
25
- }
26
- }
27
- },
28
- {
29
- "type": "STREAM",
30
- "stream": {
31
- "stream_state": {
32
- "25157276": {
33
- "updated_at": "2121-03-18T12:51:06.319000+00:00"
34
- }
35
- },
36
- "stream_descriptor": {
37
- "name": "merge_requests"
38
- }
39
- }
40
- },
41
- {
42
- "type": "STREAM",
43
- "stream": {
44
- "stream_state": {
45
- "25157276": {
46
- "updated_at": "2121-03-18T12:51:52.007000+00:00"
47
- }
48
- },
49
- "stream_descriptor": {
50
- "name": "pipelines"
51
- }
52
- }
53
- }
54
- ]
@@ -1,16 +0,0 @@
1
- #
2
- # Copyright (c) 2023 Airbyte, Inc., all rights reserved.
3
- #
4
-
5
-
6
- import pytest
7
-
8
- pytest_plugins = ("connector_acceptance_test.plugin",)
9
-
10
-
11
- @pytest.fixture(scope="session", autouse=True)
12
- def connector_setup():
13
- """This fixture is a placeholder for external resources that acceptance test might require."""
14
- # TODO: setup test dependencies if needed. otherwise remove the TODO comments
15
- yield
16
- # TODO: clean up test dependencies
@@ -1,271 +0,0 @@
1
- {
2
- "streams": [
3
- {
4
- "stream": {
5
- "name": "groups",
6
- "json_schema": {},
7
- "supported_sync_modes": ["full_refresh"],
8
- "source_defined_primary_key": [["id"]]
9
- },
10
- "sync_mode": "full_refresh",
11
- "destination_sync_mode": "overwrite",
12
- "primary_key": [["id"]]
13
- },
14
- {
15
- "stream": {
16
- "name": "projects",
17
- "json_schema": {},
18
- "supported_sync_modes": ["full_refresh"],
19
- "source_defined_primary_key": [["id"]]
20
- },
21
- "sync_mode": "full_refresh",
22
- "destination_sync_mode": "overwrite",
23
- "primary_key": [["id"]]
24
- },
25
- {
26
- "stream": {
27
- "name": "branches",
28
- "json_schema": {},
29
- "supported_sync_modes": ["full_refresh"],
30
- "source_defined_primary_key": [["name"]]
31
- },
32
- "sync_mode": "full_refresh",
33
- "destination_sync_mode": "overwrite",
34
- "primary_key": [["name"]]
35
- },
36
- {
37
- "stream": {
38
- "name": "commits",
39
- "json_schema": {},
40
- "supported_sync_modes": ["full_refresh", "incremental"],
41
- "source_defined_cursor": true,
42
- "default_cursor_field": ["created_at"],
43
- "source_defined_primary_key": [["id"]]
44
- },
45
- "sync_mode": "incremental",
46
- "destination_sync_mode": "append",
47
- "cursor_field": ["created_at"],
48
- "primary_key": [["id"]]
49
- },
50
- {
51
- "stream": {
52
- "name": "group_issue_boards",
53
- "json_schema": {},
54
- "supported_sync_modes": ["full_refresh"],
55
- "source_defined_primary_key": [["id"]]
56
- },
57
- "sync_mode": "full_refresh",
58
- "destination_sync_mode": "overwrite",
59
- "primary_key": [["id"]]
60
- },
61
- {
62
- "stream": {
63
- "name": "issues",
64
- "json_schema": {},
65
- "supported_sync_modes": ["full_refresh", "incremental"],
66
- "source_defined_cursor": true,
67
- "default_cursor_field": ["updated_at"],
68
- "source_defined_primary_key": [["id"]]
69
- },
70
- "sync_mode": "incremental",
71
- "destination_sync_mode": "append",
72
- "cursor_field": ["updated_at"],
73
- "primary_key": [["id"]]
74
- },
75
- {
76
- "stream": {
77
- "name": "jobs",
78
- "json_schema": {},
79
- "supported_sync_modes": ["full_refresh"],
80
- "source_defined_primary_key": [["id"]]
81
- },
82
- "sync_mode": "full_refresh",
83
- "destination_sync_mode": "overwrite",
84
- "primary_key": [["id"]]
85
- },
86
- {
87
- "stream": {
88
- "name": "project_milestones",
89
- "json_schema": {},
90
- "supported_sync_modes": ["full_refresh"],
91
- "source_defined_primary_key": [["id"]]
92
- },
93
- "sync_mode": "full_refresh",
94
- "destination_sync_mode": "overwrite",
95
- "primary_key": [["id"]]
96
- },
97
- {
98
- "stream": {
99
- "name": "group_milestones",
100
- "json_schema": {},
101
- "supported_sync_modes": ["full_refresh"],
102
- "source_defined_primary_key": [["id"]]
103
- },
104
- "sync_mode": "full_refresh",
105
- "destination_sync_mode": "overwrite",
106
- "primary_key": [["id"]]
107
- },
108
- {
109
- "stream": {
110
- "name": "project_members",
111
- "json_schema": {},
112
- "supported_sync_modes": ["full_refresh"],
113
- "source_defined_primary_key": [["id"]]
114
- },
115
- "sync_mode": "full_refresh",
116
- "destination_sync_mode": "overwrite",
117
- "primary_key": [["id"]]
118
- },
119
- {
120
- "stream": {
121
- "name": "group_members",
122
- "json_schema": {},
123
- "supported_sync_modes": ["full_refresh"],
124
- "source_defined_primary_key": [["id"]]
125
- },
126
- "sync_mode": "full_refresh",
127
- "destination_sync_mode": "overwrite",
128
- "primary_key": [["id"]]
129
- },
130
- {
131
- "stream": {
132
- "name": "project_labels",
133
- "json_schema": {},
134
- "supported_sync_modes": ["full_refresh"],
135
- "source_defined_primary_key": [["id"]]
136
- },
137
- "sync_mode": "full_refresh",
138
- "destination_sync_mode": "overwrite",
139
- "primary_key": [["id"]]
140
- },
141
- {
142
- "stream": {
143
- "name": "group_labels",
144
- "json_schema": {},
145
- "supported_sync_modes": ["full_refresh"],
146
- "source_defined_primary_key": [["id"]]
147
- },
148
- "sync_mode": "full_refresh",
149
- "destination_sync_mode": "overwrite",
150
- "primary_key": [["id"]]
151
- },
152
- {
153
- "stream": {
154
- "name": "merge_requests",
155
- "json_schema": {},
156
- "supported_sync_modes": ["full_refresh", "incremental"],
157
- "source_defined_cursor": true,
158
- "default_cursor_field": ["updated_at"],
159
- "source_defined_primary_key": [["id"]]
160
- },
161
- "sync_mode": "incremental",
162
- "destination_sync_mode": "append",
163
- "cursor_field": ["updated_at"],
164
- "primary_key": [["id"]]
165
- },
166
- {
167
- "stream": {
168
- "name": "merge_request_commits",
169
- "json_schema": {},
170
- "supported_sync_modes": ["full_refresh"],
171
- "source_defined_primary_key": [["id"]]
172
- },
173
- "sync_mode": "full_refresh",
174
- "destination_sync_mode": "overwrite",
175
- "primary_key": [["id"]]
176
- },
177
- {
178
- "stream": {
179
- "name": "releases",
180
- "json_schema": {},
181
- "supported_sync_modes": ["full_refresh"],
182
- "source_defined_primary_key": [["name"]]
183
- },
184
- "sync_mode": "full_refresh",
185
- "destination_sync_mode": "overwrite",
186
- "primary_key": [["name"]]
187
- },
188
- {
189
- "stream": {
190
- "name": "deployments",
191
- "json_schema": {},
192
- "supported_sync_modes": ["full_refresh", "incremental"],
193
- "source_defined_cursor": true,
194
- "default_cursor_field": ["updated_at"],
195
- "source_defined_primary_key": [["id"]]
196
- },
197
- "sync_mode": "full_refresh",
198
- "destination_sync_mode": "overwrite",
199
- "primary_key": [["id"]]
200
- },
201
- {
202
- "stream": {
203
- "name": "tags",
204
- "json_schema": {},
205
- "supported_sync_modes": ["full_refresh"],
206
- "source_defined_primary_key": [["name"]]
207
- },
208
- "sync_mode": "full_refresh",
209
- "destination_sync_mode": "overwrite",
210
- "primary_key": [["name"]]
211
- },
212
- {
213
- "stream": {
214
- "name": "pipelines",
215
- "json_schema": {},
216
- "supported_sync_modes": ["full_refresh", "incremental"],
217
- "source_defined_cursor": true,
218
- "default_cursor_field": ["updated_at"],
219
- "source_defined_primary_key": [["id"]]
220
- },
221
- "sync_mode": "incremental",
222
- "destination_sync_mode": "append",
223
- "cursor_field": ["updated_at"],
224
- "primary_key": [["id"]]
225
- },
226
- {
227
- "stream": {
228
- "name": "pipelines_extended",
229
- "json_schema": {},
230
- "supported_sync_modes": ["full_refresh"],
231
- "source_defined_primary_key": [["id"]]
232
- },
233
- "sync_mode": "full_refresh",
234
- "destination_sync_mode": "overwrite",
235
- "primary_key": [["id"]]
236
- },
237
- {
238
- "stream": {
239
- "name": "users",
240
- "json_schema": {},
241
- "supported_sync_modes": ["full_refresh"],
242
- "source_defined_primary_key": [["id"]]
243
- },
244
- "sync_mode": "full_refresh",
245
- "destination_sync_mode": "overwrite",
246
- "primary_key": [["id"]]
247
- },
248
- {
249
- "stream": {
250
- "name": "epics",
251
- "json_schema": {},
252
- "supported_sync_modes": ["full_refresh"],
253
- "source_defined_primary_key": [["iid"]]
254
- },
255
- "sync_mode": "full_refresh",
256
- "destination_sync_mode": "overwrite",
257
- "primary_key": [["iid"]]
258
- },
259
- {
260
- "stream": {
261
- "name": "epic_issues",
262
- "json_schema": {},
263
- "supported_sync_modes": ["full_refresh"],
264
- "source_defined_primary_key": [["epic_issue_id"]]
265
- },
266
- "sync_mode": "full_refresh",
267
- "destination_sync_mode": "overwrite",
268
- "primary_key": [["epic_issue_id"]]
269
- }
270
- ]
271
- }
@@ -1,60 +0,0 @@
1
- {
2
- "streams": [
3
- {
4
- "stream": {
5
- "name": "commits",
6
- "json_schema": {},
7
- "supported_sync_modes": ["full_refresh", "incremental"],
8
- "source_defined_cursor": true,
9
- "default_cursor_field": ["created_at"],
10
- "source_defined_primary_key": [["id"]]
11
- },
12
- "sync_mode": "incremental",
13
- "destination_sync_mode": "append",
14
- "cursor_field": ["created_at"],
15
- "primary_key": [["id"]]
16
- },
17
- {
18
- "stream": {
19
- "name": "issues",
20
- "json_schema": {},
21
- "supported_sync_modes": ["full_refresh", "incremental"],
22
- "source_defined_cursor": true,
23
- "default_cursor_field": ["updated_at"],
24
- "source_defined_primary_key": [["id"]]
25
- },
26
- "sync_mode": "incremental",
27
- "destination_sync_mode": "append",
28
- "cursor_field": ["updated_at"],
29
- "primary_key": [["id"]]
30
- },
31
- {
32
- "stream": {
33
- "name": "merge_requests",
34
- "json_schema": {},
35
- "supported_sync_modes": ["full_refresh", "incremental"],
36
- "source_defined_cursor": true,
37
- "default_cursor_field": ["updated_at"],
38
- "source_defined_primary_key": [["id"]]
39
- },
40
- "sync_mode": "incremental",
41
- "destination_sync_mode": "append",
42
- "cursor_field": ["updated_at"],
43
- "primary_key": [["id"]]
44
- },
45
- {
46
- "stream": {
47
- "name": "pipelines",
48
- "json_schema": {},
49
- "supported_sync_modes": ["full_refresh", "incremental"],
50
- "source_defined_cursor": true,
51
- "default_cursor_field": ["updated_at"],
52
- "source_defined_primary_key": [["id"]]
53
- },
54
- "sync_mode": "incremental",
55
- "destination_sync_mode": "append",
56
- "cursor_field": ["updated_at"],
57
- "primary_key": [["id"]]
58
- }
59
- ]
60
- }
@@ -1,11 +0,0 @@
1
- {
2
- "api_url": "gitlab.com",
3
- "private_token": "private_token-fake",
4
- "start_date": "2021-01-01T00:00:00Z",
5
- "groups": "new-group-airbute",
6
- "projects": "new-group-airbute/new-ci-test-project",
7
- "credentials": {
8
- "auth_type": "access_token",
9
- "access_token": "migrated_from_old_config"
10
- }
11
- }
@@ -1,7 +0,0 @@
1
- {
2
- "api_url": "gitlab.com",
3
- "private_token": "<user`s_private_token>",
4
- "groups": "new-group",
5
- "projects": "new-ci-test",
6
- "start_date": "2021-01-01T00:00:00Z"
7
- }
@@ -1,22 +0,0 @@
1
- {
2
- "commits": {
3
- "25157276": {
4
- "created_at": "2021-03-18T12:51:05+00:00"
5
- }
6
- },
7
- "issues": {
8
- "25157276": {
9
- "updated_at": "2021-03-15T16:08:06.041000+00:00"
10
- }
11
- },
12
- "merge_requests": {
13
- "25157276": {
14
- "updated_at": "2021-03-18T12:51:06.319000+00:00"
15
- }
16
- },
17
- "pipelines": {
18
- "25157276": {
19
- "updated_at": "2021-03-18T12:51:52.007000+00:00"
20
- }
21
- }
22
- }