airbyte-faros-destination 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +178 -0
- package/lib/common/graphql-client.d.ts +134 -0
- package/lib/common/graphql-client.js +712 -0
- package/lib/common/graphql-client.js.map +1 -0
- package/lib/common/graphql-writer.d.ts +19 -0
- package/lib/common/graphql-writer.js +46 -0
- package/lib/common/graphql-writer.js.map +1 -0
- package/lib/common/types.d.ts +50 -0
- package/lib/common/types.js +20 -0
- package/lib/common/types.js.map +1 -0
- package/lib/common/write-stats.d.ts +16 -0
- package/lib/common/write-stats.js +49 -0
- package/lib/common/write-stats.js.map +1 -0
- package/lib/community/hasura-backend.d.ts +8 -0
- package/lib/community/hasura-backend.js +31 -0
- package/lib/community/hasura-backend.js.map +1 -0
- package/lib/converters/agileaccelerator/agileaccelerator_types.d.ts +315 -0
- package/lib/converters/agileaccelerator/agileaccelerator_types.js +82 -0
- package/lib/converters/agileaccelerator/agileaccelerator_types.js.map +1 -0
- package/lib/converters/agileaccelerator/common.d.ts +64 -0
- package/lib/converters/agileaccelerator/common.js +168 -0
- package/lib/converters/agileaccelerator/common.js.map +1 -0
- package/lib/converters/agileaccelerator/works.d.ts +7 -0
- package/lib/converters/agileaccelerator/works.js +106 -0
- package/lib/converters/agileaccelerator/works.js.map +1 -0
- package/lib/converters/asana/common.d.ts +40 -0
- package/lib/converters/asana/common.js +70 -0
- package/lib/converters/asana/common.js.map +1 -0
- package/lib/converters/asana/projects.d.ts +7 -0
- package/lib/converters/asana/projects.js +30 -0
- package/lib/converters/asana/projects.js.map +1 -0
- package/lib/converters/asana/sections.d.ts +7 -0
- package/lib/converters/asana/sections.js +31 -0
- package/lib/converters/asana/sections.js.map +1 -0
- package/lib/converters/asana/tags.d.ts +7 -0
- package/lib/converters/asana/tags.js +23 -0
- package/lib/converters/asana/tags.js.map +1 -0
- package/lib/converters/asana/tasks.d.ts +13 -0
- package/lib/converters/asana/tasks.js +157 -0
- package/lib/converters/asana/tasks.js.map +1 -0
- package/lib/converters/asana/users.d.ts +7 -0
- package/lib/converters/asana/users.js +17 -0
- package/lib/converters/asana/users.js.map +1 -0
- package/lib/converters/azure-repos/commits.d.ts +7 -0
- package/lib/converters/azure-repos/commits.js +60 -0
- package/lib/converters/azure-repos/commits.js.map +1 -0
- package/lib/converters/azure-repos/common.d.ts +27 -0
- package/lib/converters/azure-repos/common.js +86 -0
- package/lib/converters/azure-repos/common.js.map +1 -0
- package/lib/converters/azure-repos/models.d.ts +224 -0
- package/lib/converters/azure-repos/models.js +33 -0
- package/lib/converters/azure-repos/models.js.map +1 -0
- package/lib/converters/azure-repos/pull_requests.d.ts +7 -0
- package/lib/converters/azure-repos/pull_requests.js +92 -0
- package/lib/converters/azure-repos/pull_requests.js.map +1 -0
- package/lib/converters/azure-repos/repositories.d.ts +8 -0
- package/lib/converters/azure-repos/repositories.js +84 -0
- package/lib/converters/azure-repos/repositories.js.map +1 -0
- package/lib/converters/azure-repos/users.d.ts +7 -0
- package/lib/converters/azure-repos/users.js +45 -0
- package/lib/converters/azure-repos/users.js.map +1 -0
- package/lib/converters/azure-workitems/boards.d.ts +7 -0
- package/lib/converters/azure-workitems/boards.js +26 -0
- package/lib/converters/azure-workitems/boards.js.map +1 -0
- package/lib/converters/azure-workitems/common.d.ts +8 -0
- package/lib/converters/azure-workitems/common.js +18 -0
- package/lib/converters/azure-workitems/common.js.map +1 -0
- package/lib/converters/azure-workitems/iterations.d.ts +7 -0
- package/lib/converters/azure-workitems/iterations.js +27 -0
- package/lib/converters/azure-workitems/iterations.js.map +1 -0
- package/lib/converters/azure-workitems/models.d.ts +103 -0
- package/lib/converters/azure-workitems/models.js +11 -0
- package/lib/converters/azure-workitems/models.js.map +1 -0
- package/lib/converters/azure-workitems/users.d.ts +7 -0
- package/lib/converters/azure-workitems/users.js +27 -0
- package/lib/converters/azure-workitems/users.js.map +1 -0
- package/lib/converters/azure-workitems/workitems.d.ts +7 -0
- package/lib/converters/azure-workitems/workitems.js +55 -0
- package/lib/converters/azure-workitems/workitems.js.map +1 -0
- package/lib/converters/azureactivedirectory/common.d.ts +8 -0
- package/lib/converters/azureactivedirectory/common.js +18 -0
- package/lib/converters/azureactivedirectory/common.js.map +1 -0
- package/lib/converters/azureactivedirectory/groups.d.ts +7 -0
- package/lib/converters/azureactivedirectory/groups.js +50 -0
- package/lib/converters/azureactivedirectory/groups.js.map +1 -0
- package/lib/converters/azureactivedirectory/models.d.ts +61 -0
- package/lib/converters/azureactivedirectory/models.js +3 -0
- package/lib/converters/azureactivedirectory/models.js.map +1 -0
- package/lib/converters/azureactivedirectory/users.d.ts +8 -0
- package/lib/converters/azureactivedirectory/users.js +84 -0
- package/lib/converters/azureactivedirectory/users.js.map +1 -0
- package/lib/converters/azurepipeline/builds.d.ts +7 -0
- package/lib/converters/azurepipeline/builds.js +91 -0
- package/lib/converters/azurepipeline/builds.js.map +1 -0
- package/lib/converters/azurepipeline/common.d.ts +33 -0
- package/lib/converters/azurepipeline/common.js +150 -0
- package/lib/converters/azurepipeline/common.js.map +1 -0
- package/lib/converters/azurepipeline/models.d.ts +294 -0
- package/lib/converters/azurepipeline/models.js +44 -0
- package/lib/converters/azurepipeline/models.js.map +1 -0
- package/lib/converters/azurepipeline/pipelines.d.ts +8 -0
- package/lib/converters/azurepipeline/pipelines.js +47 -0
- package/lib/converters/azurepipeline/pipelines.js.map +1 -0
- package/lib/converters/azurepipeline/releases.d.ts +7 -0
- package/lib/converters/azurepipeline/releases.js +35 -0
- package/lib/converters/azurepipeline/releases.js.map +1 -0
- package/lib/converters/backlog/common.d.ts +20 -0
- package/lib/converters/backlog/common.js +60 -0
- package/lib/converters/backlog/common.js.map +1 -0
- package/lib/converters/backlog/issues.d.ts +7 -0
- package/lib/converters/backlog/issues.js +120 -0
- package/lib/converters/backlog/issues.js.map +1 -0
- package/lib/converters/backlog/models.d.ts +156 -0
- package/lib/converters/backlog/models.js +24 -0
- package/lib/converters/backlog/models.js.map +1 -0
- package/lib/converters/backlog/projects.d.ts +7 -0
- package/lib/converters/backlog/projects.js +79 -0
- package/lib/converters/backlog/projects.js.map +1 -0
- package/lib/converters/backlog/users.d.ts +7 -0
- package/lib/converters/backlog/users.js +27 -0
- package/lib/converters/backlog/users.js.map +1 -0
- package/lib/converters/bamboohr/common.d.ts +15 -0
- package/lib/converters/bamboohr/common.js +30 -0
- package/lib/converters/bamboohr/common.js.map +1 -0
- package/lib/converters/bamboohr/models.d.ts +34 -0
- package/lib/converters/bamboohr/models.js +3 -0
- package/lib/converters/bamboohr/models.js.map +1 -0
- package/lib/converters/bamboohr/users.d.ts +11 -0
- package/lib/converters/bamboohr/users.js +165 -0
- package/lib/converters/bamboohr/users.js.map +1 -0
- package/lib/converters/bitbucket/branches.d.ts +7 -0
- package/lib/converters/bitbucket/branches.js +33 -0
- package/lib/converters/bitbucket/branches.js.map +1 -0
- package/lib/converters/bitbucket/commits.d.ts +8 -0
- package/lib/converters/bitbucket/commits.js +56 -0
- package/lib/converters/bitbucket/commits.js.map +1 -0
- package/lib/converters/bitbucket/common.d.ts +39 -0
- package/lib/converters/bitbucket/common.js +87 -0
- package/lib/converters/bitbucket/common.js.map +1 -0
- package/lib/converters/bitbucket/deployments.d.ts +12 -0
- package/lib/converters/bitbucket/deployments.js +113 -0
- package/lib/converters/bitbucket/deployments.js.map +1 -0
- package/lib/converters/bitbucket/issues.d.ts +12 -0
- package/lib/converters/bitbucket/issues.js +129 -0
- package/lib/converters/bitbucket/issues.js.map +1 -0
- package/lib/converters/bitbucket/pipeline_steps.d.ts +10 -0
- package/lib/converters/bitbucket/pipeline_steps.js +84 -0
- package/lib/converters/bitbucket/pipeline_steps.js.map +1 -0
- package/lib/converters/bitbucket/pipelines.d.ts +8 -0
- package/lib/converters/bitbucket/pipelines.js +96 -0
- package/lib/converters/bitbucket/pipelines.js.map +1 -0
- package/lib/converters/bitbucket/pull_request_activities.d.ts +12 -0
- package/lib/converters/bitbucket/pull_request_activities.js +113 -0
- package/lib/converters/bitbucket/pull_request_activities.js.map +1 -0
- package/lib/converters/bitbucket/pull_requests.d.ts +10 -0
- package/lib/converters/bitbucket/pull_requests.js +98 -0
- package/lib/converters/bitbucket/pull_requests.js.map +1 -0
- package/lib/converters/bitbucket/repositories.d.ts +7 -0
- package/lib/converters/bitbucket/repositories.js +57 -0
- package/lib/converters/bitbucket/repositories.js.map +1 -0
- package/lib/converters/bitbucket/types.d.ts +662 -0
- package/lib/converters/bitbucket/types.js +3 -0
- package/lib/converters/bitbucket/types.js.map +1 -0
- package/lib/converters/bitbucket/workspace_users.d.ts +7 -0
- package/lib/converters/bitbucket/workspace_users.js +32 -0
- package/lib/converters/bitbucket/workspace_users.js.map +1 -0
- package/lib/converters/bitbucket/workspaces.d.ts +8 -0
- package/lib/converters/bitbucket/workspaces.js +62 -0
- package/lib/converters/bitbucket/workspaces.js.map +1 -0
- package/lib/converters/bitbucket-server/commits.d.ts +7 -0
- package/lib/converters/bitbucket-server/commits.js +34 -0
- package/lib/converters/bitbucket-server/commits.js.map +1 -0
- package/lib/converters/bitbucket-server/common.d.ts +14 -0
- package/lib/converters/bitbucket-server/common.js +47 -0
- package/lib/converters/bitbucket-server/common.js.map +1 -0
- package/lib/converters/bitbucket-server/project_users.d.ts +8 -0
- package/lib/converters/bitbucket-server/project_users.js +36 -0
- package/lib/converters/bitbucket-server/project_users.js.map +1 -0
- package/lib/converters/bitbucket-server/projects.d.ts +7 -0
- package/lib/converters/bitbucket-server/projects.js +29 -0
- package/lib/converters/bitbucket-server/projects.js.map +1 -0
- package/lib/converters/bitbucket-server/pull_request_activities.d.ts +7 -0
- package/lib/converters/bitbucket-server/pull_request_activities.js +89 -0
- package/lib/converters/bitbucket-server/pull_request_activities.js.map +1 -0
- package/lib/converters/bitbucket-server/pull_request_diffs.d.ts +8 -0
- package/lib/converters/bitbucket-server/pull_request_diffs.js +41 -0
- package/lib/converters/bitbucket-server/pull_request_diffs.js.map +1 -0
- package/lib/converters/bitbucket-server/pull_requests.d.ts +9 -0
- package/lib/converters/bitbucket-server/pull_requests.js +88 -0
- package/lib/converters/bitbucket-server/pull_requests.js.map +1 -0
- package/lib/converters/bitbucket-server/repositories.d.ts +7 -0
- package/lib/converters/bitbucket-server/repositories.js +35 -0
- package/lib/converters/bitbucket-server/repositories.js.map +1 -0
- package/lib/converters/bitbucket-server/tags.d.ts +7 -0
- package/lib/converters/bitbucket-server/tags.js +30 -0
- package/lib/converters/bitbucket-server/tags.js.map +1 -0
- package/lib/converters/buildkite/builds.d.ts +7 -0
- package/lib/converters/buildkite/builds.js +89 -0
- package/lib/converters/buildkite/builds.js.map +1 -0
- package/lib/converters/buildkite/common.d.ts +129 -0
- package/lib/converters/buildkite/common.js +162 -0
- package/lib/converters/buildkite/common.js.map +1 -0
- package/lib/converters/buildkite/organizations.d.ts +7 -0
- package/lib/converters/buildkite/organizations.js +30 -0
- package/lib/converters/buildkite/organizations.js.map +1 -0
- package/lib/converters/buildkite/pipelines.d.ts +7 -0
- package/lib/converters/buildkite/pipelines.js +33 -0
- package/lib/converters/buildkite/pipelines.js.map +1 -0
- package/lib/converters/circleci/common.d.ts +27 -0
- package/lib/converters/circleci/common.js +96 -0
- package/lib/converters/circleci/common.js.map +1 -0
- package/lib/converters/circleci/models.d.ts +128 -0
- package/lib/converters/circleci/models.js +10 -0
- package/lib/converters/circleci/models.js.map +1 -0
- package/lib/converters/circleci/pipelines.d.ts +7 -0
- package/lib/converters/circleci/pipelines.js +61 -0
- package/lib/converters/circleci/pipelines.js.map +1 -0
- package/lib/converters/circleci/projects.d.ts +7 -0
- package/lib/converters/circleci/projects.js +39 -0
- package/lib/converters/circleci/projects.js.map +1 -0
- package/lib/converters/circleci/tests.d.ts +18 -0
- package/lib/converters/circleci/tests.js +183 -0
- package/lib/converters/circleci/tests.js.map +1 -0
- package/lib/converters/clickup/common.d.ts +21 -0
- package/lib/converters/clickup/common.js +58 -0
- package/lib/converters/clickup/common.js.map +1 -0
- package/lib/converters/clickup/folders.d.ts +7 -0
- package/lib/converters/clickup/folders.js +34 -0
- package/lib/converters/clickup/folders.js.map +1 -0
- package/lib/converters/clickup/goals.d.ts +6 -0
- package/lib/converters/clickup/goals.js +15 -0
- package/lib/converters/clickup/goals.js.map +1 -0
- package/lib/converters/clickup/lists.d.ts +7 -0
- package/lib/converters/clickup/lists.js +34 -0
- package/lib/converters/clickup/lists.js.map +1 -0
- package/lib/converters/clickup/spaces.d.ts +7 -0
- package/lib/converters/clickup/spaces.js +34 -0
- package/lib/converters/clickup/spaces.js.map +1 -0
- package/lib/converters/clickup/status_histories.d.ts +7 -0
- package/lib/converters/clickup/status_histories.js +42 -0
- package/lib/converters/clickup/status_histories.js.map +1 -0
- package/lib/converters/clickup/tasks.d.ts +11 -0
- package/lib/converters/clickup/tasks.js +141 -0
- package/lib/converters/clickup/tasks.js.map +1 -0
- package/lib/converters/clickup/workspaces.d.ts +7 -0
- package/lib/converters/clickup/workspaces.js +40 -0
- package/lib/converters/clickup/workspaces.js.map +1 -0
- package/lib/converters/common/common.d.ts +10 -0
- package/lib/converters/common/common.js +20 -0
- package/lib/converters/common/common.js.map +1 -0
- package/lib/converters/common/vcs.d.ts +21 -0
- package/lib/converters/common/vcs.js +68 -0
- package/lib/converters/common/vcs.js.map +1 -0
- package/lib/converters/converter-registry.d.ts +25 -0
- package/lib/converters/converter-registry.js +66 -0
- package/lib/converters/converter-registry.js.map +1 -0
- package/lib/converters/converter.d.ts +80 -0
- package/lib/converters/converter.js +153 -0
- package/lib/converters/converter.js.map +1 -0
- package/lib/converters/datadog/common.d.ts +27 -0
- package/lib/converters/datadog/common.js +35 -0
- package/lib/converters/datadog/common.js.map +1 -0
- package/lib/converters/datadog/incidents.d.ts +10 -0
- package/lib/converters/datadog/incidents.js +129 -0
- package/lib/converters/datadog/incidents.js.map +1 -0
- package/lib/converters/datadog/metrics.d.ts +13 -0
- package/lib/converters/datadog/metrics.js +63 -0
- package/lib/converters/datadog/metrics.js.map +1 -0
- package/lib/converters/datadog/users.d.ts +7 -0
- package/lib/converters/datadog/users.js +28 -0
- package/lib/converters/datadog/users.js.map +1 -0
- package/lib/converters/docker/common.d.ts +88 -0
- package/lib/converters/docker/common.js +78 -0
- package/lib/converters/docker/common.js.map +1 -0
- package/lib/converters/docker/tags.d.ts +7 -0
- package/lib/converters/docker/tags.js +97 -0
- package/lib/converters/docker/tags.js.map +1 -0
- package/lib/converters/faros-feed/faros_feed.d.ts +13 -0
- package/lib/converters/faros-feed/faros_feed.js +25 -0
- package/lib/converters/faros-feed/faros_feed.js.map +1 -0
- package/lib/converters/faros-feeds/faros_feed.d.ts +9 -0
- package/lib/converters/faros-feeds/faros_feed.js +69 -0
- package/lib/converters/faros-feeds/faros_feed.js.map +1 -0
- package/lib/converters/faros-feeds/model_names.d.ts +1 -0
- package/lib/converters/faros-feeds/model_names.js +136 -0
- package/lib/converters/faros-feeds/model_names.js.map +1 -0
- package/lib/converters/faros-graphql/faros_graph.d.ts +13 -0
- package/lib/converters/faros-graphql/faros_graph.js +25 -0
- package/lib/converters/faros-graphql/faros_graph.js.map +1 -0
- package/lib/converters/firehydrant/common.d.ts +20 -0
- package/lib/converters/firehydrant/common.js +31 -0
- package/lib/converters/firehydrant/common.js.map +1 -0
- package/lib/converters/firehydrant/incidents.d.ts +14 -0
- package/lib/converters/firehydrant/incidents.js +237 -0
- package/lib/converters/firehydrant/incidents.js.map +1 -0
- package/lib/converters/firehydrant/models.d.ts +212 -0
- package/lib/converters/firehydrant/models.js +77 -0
- package/lib/converters/firehydrant/models.js.map +1 -0
- package/lib/converters/firehydrant/teams.d.ts +7 -0
- package/lib/converters/firehydrant/teams.js +27 -0
- package/lib/converters/firehydrant/teams.js.map +1 -0
- package/lib/converters/firehydrant/users.d.ts +7 -0
- package/lib/converters/firehydrant/users.js +39 -0
- package/lib/converters/firehydrant/users.js.map +1 -0
- package/lib/converters/github/assignees.d.ts +7 -0
- package/lib/converters/github/assignees.js +20 -0
- package/lib/converters/github/assignees.js.map +1 -0
- package/lib/converters/github/branches.d.ts +7 -0
- package/lib/converters/github/branches.js +29 -0
- package/lib/converters/github/branches.js.map +1 -0
- package/lib/converters/github/collaborators.d.ts +7 -0
- package/lib/converters/github/collaborators.js +20 -0
- package/lib/converters/github/collaborators.js.map +1 -0
- package/lib/converters/github/commits.d.ts +7 -0
- package/lib/converters/github/commits.js +49 -0
- package/lib/converters/github/commits.js.map +1 -0
- package/lib/converters/github/common.d.ts +34 -0
- package/lib/converters/github/common.js +165 -0
- package/lib/converters/github/common.js.map +1 -0
- package/lib/converters/github/issue_labels.d.ts +7 -0
- package/lib/converters/github/issue_labels.js +21 -0
- package/lib/converters/github/issue_labels.js.map +1 -0
- package/lib/converters/github/issue_milestones.d.ts +8 -0
- package/lib/converters/github/issue_milestones.js +43 -0
- package/lib/converters/github/issue_milestones.js.map +1 -0
- package/lib/converters/github/issues.d.ts +9 -0
- package/lib/converters/github/issues.js +91 -0
- package/lib/converters/github/issues.js.map +1 -0
- package/lib/converters/github/organizations.d.ts +7 -0
- package/lib/converters/github/organizations.js +39 -0
- package/lib/converters/github/organizations.js.map +1 -0
- package/lib/converters/github/projects.d.ts +7 -0
- package/lib/converters/github/projects.js +22 -0
- package/lib/converters/github/projects.js.map +1 -0
- package/lib/converters/github/pull_request_commits.d.ts +7 -0
- package/lib/converters/github/pull_request_commits.js +46 -0
- package/lib/converters/github/pull_request_commits.js.map +1 -0
- package/lib/converters/github/pull_request_stats.d.ts +7 -0
- package/lib/converters/github/pull_request_stats.js +44 -0
- package/lib/converters/github/pull_request_stats.js.map +1 -0
- package/lib/converters/github/pull_requests.d.ts +7 -0
- package/lib/converters/github/pull_requests.js +63 -0
- package/lib/converters/github/pull_requests.js.map +1 -0
- package/lib/converters/github/releases.d.ts +7 -0
- package/lib/converters/github/releases.js +52 -0
- package/lib/converters/github/releases.js.map +1 -0
- package/lib/converters/github/repositories.d.ts +7 -0
- package/lib/converters/github/repositories.js +45 -0
- package/lib/converters/github/repositories.js.map +1 -0
- package/lib/converters/github/review_comments.d.ts +7 -0
- package/lib/converters/github/review_comments.js +41 -0
- package/lib/converters/github/review_comments.js.map +1 -0
- package/lib/converters/github/reviews.d.ts +7 -0
- package/lib/converters/github/reviews.js +61 -0
- package/lib/converters/github/reviews.js.map +1 -0
- package/lib/converters/github/tags.d.ts +7 -0
- package/lib/converters/github/tags.js +32 -0
- package/lib/converters/github/tags.js.map +1 -0
- package/lib/converters/github/team_memberships.d.ts +7 -0
- package/lib/converters/github/team_memberships.js +41 -0
- package/lib/converters/github/team_memberships.js.map +1 -0
- package/lib/converters/github/teams.d.ts +7 -0
- package/lib/converters/github/teams.js +28 -0
- package/lib/converters/github/teams.js.map +1 -0
- package/lib/converters/github/users.d.ts +7 -0
- package/lib/converters/github/users.js +20 -0
- package/lib/converters/github/users.js.map +1 -0
- package/lib/converters/github/workflow_runs.d.ts +7 -0
- package/lib/converters/github/workflow_runs.js +56 -0
- package/lib/converters/github/workflow_runs.js.map +1 -0
- package/lib/converters/github/workflows.d.ts +8 -0
- package/lib/converters/github/workflows.js +45 -0
- package/lib/converters/github/workflows.js.map +1 -0
- package/lib/converters/gitlab/branches.d.ts +8 -0
- package/lib/converters/gitlab/branches.js +45 -0
- package/lib/converters/gitlab/branches.js.map +1 -0
- package/lib/converters/gitlab/commits.d.ts +7 -0
- package/lib/converters/gitlab/commits.js +34 -0
- package/lib/converters/gitlab/commits.js.map +1 -0
- package/lib/converters/gitlab/common.d.ts +45 -0
- package/lib/converters/gitlab/common.js +143 -0
- package/lib/converters/gitlab/common.js.map +1 -0
- package/lib/converters/gitlab/group_labels.d.ts +7 -0
- package/lib/converters/gitlab/group_labels.js +16 -0
- package/lib/converters/gitlab/group_labels.js.map +1 -0
- package/lib/converters/gitlab/group_milestones.d.ts +8 -0
- package/lib/converters/gitlab/group_milestones.js +42 -0
- package/lib/converters/gitlab/group_milestones.js.map +1 -0
- package/lib/converters/gitlab/groups.d.ts +7 -0
- package/lib/converters/gitlab/groups.js +52 -0
- package/lib/converters/gitlab/groups.js.map +1 -0
- package/lib/converters/gitlab/issues.d.ts +9 -0
- package/lib/converters/gitlab/issues.js +100 -0
- package/lib/converters/gitlab/issues.js.map +1 -0
- package/lib/converters/gitlab/jobs.d.ts +10 -0
- package/lib/converters/gitlab/jobs.js +73 -0
- package/lib/converters/gitlab/jobs.js.map +1 -0
- package/lib/converters/gitlab/merge_request_commits.d.ts +7 -0
- package/lib/converters/gitlab/merge_request_commits.js +35 -0
- package/lib/converters/gitlab/merge_request_commits.js.map +1 -0
- package/lib/converters/gitlab/merge_requests.d.ts +10 -0
- package/lib/converters/gitlab/merge_requests.js +66 -0
- package/lib/converters/gitlab/merge_requests.js.map +1 -0
- package/lib/converters/gitlab/pipelines.d.ts +7 -0
- package/lib/converters/gitlab/pipelines.js +59 -0
- package/lib/converters/gitlab/pipelines.js.map +1 -0
- package/lib/converters/gitlab/project_labels.d.ts +7 -0
- package/lib/converters/gitlab/project_labels.js +16 -0
- package/lib/converters/gitlab/project_labels.js.map +1 -0
- package/lib/converters/gitlab/project_milestones.d.ts +8 -0
- package/lib/converters/gitlab/project_milestones.js +42 -0
- package/lib/converters/gitlab/project_milestones.js.map +1 -0
- package/lib/converters/gitlab/projects.d.ts +7 -0
- package/lib/converters/gitlab/projects.js +57 -0
- package/lib/converters/gitlab/projects.js.map +1 -0
- package/lib/converters/gitlab/releases.d.ts +9 -0
- package/lib/converters/gitlab/releases.js +60 -0
- package/lib/converters/gitlab/releases.js.map +1 -0
- package/lib/converters/gitlab/tags.d.ts +10 -0
- package/lib/converters/gitlab/tags.js +42 -0
- package/lib/converters/gitlab/tags.js.map +1 -0
- package/lib/converters/gitlab/users.d.ts +7 -0
- package/lib/converters/gitlab/users.js +34 -0
- package/lib/converters/gitlab/users.js.map +1 -0
- package/lib/converters/gitlab-ci/groups.d.ts +8 -0
- package/lib/converters/gitlab-ci/groups.js +32 -0
- package/lib/converters/gitlab-ci/groups.js.map +1 -0
- package/lib/converters/gitlab-ci/jobs.d.ts +11 -0
- package/lib/converters/gitlab-ci/jobs.js +69 -0
- package/lib/converters/gitlab-ci/jobs.js.map +1 -0
- package/lib/converters/gitlab-ci/pipelines.d.ts +8 -0
- package/lib/converters/gitlab-ci/pipelines.js +49 -0
- package/lib/converters/gitlab-ci/pipelines.js.map +1 -0
- package/lib/converters/gitlab-ci/projects.d.ts +8 -0
- package/lib/converters/gitlab-ci/projects.js +35 -0
- package/lib/converters/gitlab-ci/projects.js.map +1 -0
- package/lib/converters/googlecalendar/calendar_models.d.ts +554 -0
- package/lib/converters/googlecalendar/calendar_models.js +3 -0
- package/lib/converters/googlecalendar/calendar_models.js.map +1 -0
- package/lib/converters/googlecalendar/calendars.d.ts +7 -0
- package/lib/converters/googlecalendar/calendars.js +30 -0
- package/lib/converters/googlecalendar/calendars.js.map +1 -0
- package/lib/converters/googlecalendar/common.d.ts +52 -0
- package/lib/converters/googlecalendar/common.js +138 -0
- package/lib/converters/googlecalendar/common.js.map +1 -0
- package/lib/converters/googlecalendar/events.d.ts +10 -0
- package/lib/converters/googlecalendar/events.js +150 -0
- package/lib/converters/googlecalendar/events.js.map +1 -0
- package/lib/converters/harness/common.d.ts +102 -0
- package/lib/converters/harness/common.js +17 -0
- package/lib/converters/harness/common.js.map +1 -0
- package/lib/converters/harness/executions.d.ts +15 -0
- package/lib/converters/harness/executions.js +240 -0
- package/lib/converters/harness/executions.js.map +1 -0
- package/lib/converters/hygieia/collector_items.d.ts +8 -0
- package/lib/converters/hygieia/collector_items.js +51 -0
- package/lib/converters/hygieia/collector_items.js.map +1 -0
- package/lib/converters/jenkins/builds.d.ts +11 -0
- package/lib/converters/jenkins/builds.js +144 -0
- package/lib/converters/jenkins/builds.js.map +1 -0
- package/lib/converters/jenkins/common.d.ts +36 -0
- package/lib/converters/jenkins/common.js +70 -0
- package/lib/converters/jenkins/common.js.map +1 -0
- package/lib/converters/jenkins/jobs.d.ts +8 -0
- package/lib/converters/jenkins/jobs.js +30 -0
- package/lib/converters/jenkins/jobs.js.map +1 -0
- package/lib/converters/jira/board_issues.d.ts +7 -0
- package/lib/converters/jira/board_issues.js +29 -0
- package/lib/converters/jira/board_issues.js.map +1 -0
- package/lib/converters/jira/boards.d.ts +7 -0
- package/lib/converters/jira/boards.js +35 -0
- package/lib/converters/jira/boards.js.map +1 -0
- package/lib/converters/jira/common.d.ts +61 -0
- package/lib/converters/jira/common.js +65 -0
- package/lib/converters/jira/common.js.map +1 -0
- package/lib/converters/jira/epics.d.ts +8 -0
- package/lib/converters/jira/epics.js +46 -0
- package/lib/converters/jira/epics.js.map +1 -0
- package/lib/converters/jira/issue_fields.d.ts +6 -0
- package/lib/converters/jira/issue_fields.js +16 -0
- package/lib/converters/jira/issue_fields.js.map +1 -0
- package/lib/converters/jira/issues.d.ts +51 -0
- package/lib/converters/jira/issues.js +544 -0
- package/lib/converters/jira/issues.js.map +1 -0
- package/lib/converters/jira/project_versions.d.ts +9 -0
- package/lib/converters/jira/project_versions.js +49 -0
- package/lib/converters/jira/project_versions.js.map +1 -0
- package/lib/converters/jira/projects.d.ts +7 -0
- package/lib/converters/jira/projects.js +41 -0
- package/lib/converters/jira/projects.js.map +1 -0
- package/lib/converters/jira/pull_requests.d.ts +6 -0
- package/lib/converters/jira/pull_requests.js +16 -0
- package/lib/converters/jira/pull_requests.js.map +1 -0
- package/lib/converters/jira/sprint_issues.d.ts +6 -0
- package/lib/converters/jira/sprint_issues.js +16 -0
- package/lib/converters/jira/sprint_issues.js.map +1 -0
- package/lib/converters/jira/sprints.d.ts +15 -0
- package/lib/converters/jira/sprints.js +79 -0
- package/lib/converters/jira/sprints.js.map +1 -0
- package/lib/converters/jira/users.d.ts +7 -0
- package/lib/converters/jira/users.js +33 -0
- package/lib/converters/jira/users.js.map +1 -0
- package/lib/converters/jira/workflow_statuses.d.ts +6 -0
- package/lib/converters/jira/workflow_statuses.js +16 -0
- package/lib/converters/jira/workflow_statuses.js.map +1 -0
- package/lib/converters/jsonata.d.ts +18 -0
- package/lib/converters/jsonata.js +72 -0
- package/lib/converters/jsonata.js.map +1 -0
- package/lib/converters/notion/common.d.ts +975 -0
- package/lib/converters/notion/common.js +185 -0
- package/lib/converters/notion/common.js.map +1 -0
- package/lib/converters/notion/pages.d.ts +14 -0
- package/lib/converters/notion/pages.js +462 -0
- package/lib/converters/notion/pages.js.map +1 -0
- package/lib/converters/notion/users.d.ts +7 -0
- package/lib/converters/notion/users.js +27 -0
- package/lib/converters/notion/users.js.map +1 -0
- package/lib/converters/octopus/common.d.ts +8 -0
- package/lib/converters/octopus/common.js +18 -0
- package/lib/converters/octopus/common.js.map +1 -0
- package/lib/converters/octopus/deployments.d.ts +13 -0
- package/lib/converters/octopus/deployments.js +89 -0
- package/lib/converters/octopus/deployments.js.map +1 -0
- package/lib/converters/octopus/releases.d.ts +7 -0
- package/lib/converters/octopus/releases.js +30 -0
- package/lib/converters/octopus/releases.js.map +1 -0
- package/lib/converters/okta/common.d.ts +8 -0
- package/lib/converters/okta/common.js +18 -0
- package/lib/converters/okta/common.js.map +1 -0
- package/lib/converters/okta/groups.d.ts +7 -0
- package/lib/converters/okta/groups.js +48 -0
- package/lib/converters/okta/groups.js.map +1 -0
- package/lib/converters/okta/models.d.ts +102 -0
- package/lib/converters/okta/models.js +3 -0
- package/lib/converters/okta/models.js.map +1 -0
- package/lib/converters/okta/users.d.ts +8 -0
- package/lib/converters/okta/users.js +74 -0
- package/lib/converters/okta/users.js.map +1 -0
- package/lib/converters/okta-faros/common.d.ts +4 -0
- package/lib/converters/okta-faros/common.js +12 -0
- package/lib/converters/okta-faros/common.js.map +1 -0
- package/lib/converters/okta-faros/groups.d.ts +13 -0
- package/lib/converters/okta-faros/groups.js +24 -0
- package/lib/converters/okta-faros/groups.js.map +1 -0
- package/lib/converters/okta-faros/users.d.ts +13 -0
- package/lib/converters/okta-faros/users.js +24 -0
- package/lib/converters/okta-faros/users.js.map +1 -0
- package/lib/converters/opsgenie/common.d.ts +20 -0
- package/lib/converters/opsgenie/common.js +31 -0
- package/lib/converters/opsgenie/common.js.map +1 -0
- package/lib/converters/opsgenie/incidents.d.ts +11 -0
- package/lib/converters/opsgenie/incidents.js +163 -0
- package/lib/converters/opsgenie/incidents.js.map +1 -0
- package/lib/converters/opsgenie/models.d.ts +122 -0
- package/lib/converters/opsgenie/models.js +40 -0
- package/lib/converters/opsgenie/models.js.map +1 -0
- package/lib/converters/opsgenie/teams.d.ts +7 -0
- package/lib/converters/opsgenie/teams.js +27 -0
- package/lib/converters/opsgenie/teams.js.map +1 -0
- package/lib/converters/opsgenie/users.d.ts +7 -0
- package/lib/converters/opsgenie/users.js +39 -0
- package/lib/converters/opsgenie/users.js.map +1 -0
- package/lib/converters/pagerduty/common.d.ts +39 -0
- package/lib/converters/pagerduty/common.js +45 -0
- package/lib/converters/pagerduty/common.js.map +1 -0
- package/lib/converters/pagerduty/incident_log_entries.d.ts +8 -0
- package/lib/converters/pagerduty/incident_log_entries.js +57 -0
- package/lib/converters/pagerduty/incident_log_entries.js.map +1 -0
- package/lib/converters/pagerduty/incidents.d.ts +10 -0
- package/lib/converters/pagerduty/incidents.js +114 -0
- package/lib/converters/pagerduty/incidents.js.map +1 -0
- package/lib/converters/pagerduty/priorities_resource.d.ts +10 -0
- package/lib/converters/pagerduty/priorities_resource.js +63 -0
- package/lib/converters/pagerduty/priorities_resource.js.map +1 -0
- package/lib/converters/pagerduty/services.d.ts +9 -0
- package/lib/converters/pagerduty/services.js +87 -0
- package/lib/converters/pagerduty/services.js.map +1 -0
- package/lib/converters/pagerduty/users.d.ts +7 -0
- package/lib/converters/pagerduty/users.js +27 -0
- package/lib/converters/pagerduty/users.js.map +1 -0
- package/lib/converters/phabricator/commits.d.ts +8 -0
- package/lib/converters/phabricator/commits.js +81 -0
- package/lib/converters/phabricator/commits.js.map +1 -0
- package/lib/converters/phabricator/common.d.ts +39 -0
- package/lib/converters/phabricator/common.js +137 -0
- package/lib/converters/phabricator/common.js.map +1 -0
- package/lib/converters/phabricator/projects.d.ts +7 -0
- package/lib/converters/phabricator/projects.js +51 -0
- package/lib/converters/phabricator/projects.js.map +1 -0
- package/lib/converters/phabricator/repositories.d.ts +7 -0
- package/lib/converters/phabricator/repositories.js +68 -0
- package/lib/converters/phabricator/repositories.js.map +1 -0
- package/lib/converters/phabricator/revision_diffs.d.ts +8 -0
- package/lib/converters/phabricator/revision_diffs.js +48 -0
- package/lib/converters/phabricator/revision_diffs.js.map +1 -0
- package/lib/converters/phabricator/revisions.d.ts +7 -0
- package/lib/converters/phabricator/revisions.js +51 -0
- package/lib/converters/phabricator/revisions.js.map +1 -0
- package/lib/converters/phabricator/transactions.d.ts +10 -0
- package/lib/converters/phabricator/transactions.js +101 -0
- package/lib/converters/phabricator/transactions.js.map +1 -0
- package/lib/converters/phabricator/users.d.ts +7 -0
- package/lib/converters/phabricator/users.js +40 -0
- package/lib/converters/phabricator/users.js.map +1 -0
- package/lib/converters/semaphoreci/common.d.ts +27 -0
- package/lib/converters/semaphoreci/common.js +98 -0
- package/lib/converters/semaphoreci/common.js.map +1 -0
- package/lib/converters/semaphoreci/models.d.ts +128 -0
- package/lib/converters/semaphoreci/models.js +35 -0
- package/lib/converters/semaphoreci/models.js.map +1 -0
- package/lib/converters/semaphoreci/pipelines.d.ts +8 -0
- package/lib/converters/semaphoreci/pipelines.js +112 -0
- package/lib/converters/semaphoreci/pipelines.js.map +1 -0
- package/lib/converters/semaphoreci/projects.d.ts +8 -0
- package/lib/converters/semaphoreci/projects.js +46 -0
- package/lib/converters/semaphoreci/projects.js.map +1 -0
- package/lib/converters/servicenow/common.d.ts +39 -0
- package/lib/converters/servicenow/common.js +52 -0
- package/lib/converters/servicenow/common.js.map +1 -0
- package/lib/converters/servicenow/incidents.d.ts +18 -0
- package/lib/converters/servicenow/incidents.js +278 -0
- package/lib/converters/servicenow/incidents.js.map +1 -0
- package/lib/converters/servicenow/users.d.ts +7 -0
- package/lib/converters/servicenow/users.js +27 -0
- package/lib/converters/servicenow/users.js.map +1 -0
- package/lib/converters/shortcut/common.d.ts +16 -0
- package/lib/converters/shortcut/common.js +69 -0
- package/lib/converters/shortcut/common.js.map +1 -0
- package/lib/converters/shortcut/epics.d.ts +7 -0
- package/lib/converters/shortcut/epics.js +30 -0
- package/lib/converters/shortcut/epics.js.map +1 -0
- package/lib/converters/shortcut/iterations.d.ts +7 -0
- package/lib/converters/shortcut/iterations.js +30 -0
- package/lib/converters/shortcut/iterations.js.map +1 -0
- package/lib/converters/shortcut/members.d.ts +7 -0
- package/lib/converters/shortcut/members.js +27 -0
- package/lib/converters/shortcut/members.js.map +1 -0
- package/lib/converters/shortcut/models.d.ts +392 -0
- package/lib/converters/shortcut/models.js +31 -0
- package/lib/converters/shortcut/models.js.map +1 -0
- package/lib/converters/shortcut/projects.d.ts +7 -0
- package/lib/converters/shortcut/projects.js +47 -0
- package/lib/converters/shortcut/projects.js.map +1 -0
- package/lib/converters/shortcut/stories.d.ts +7 -0
- package/lib/converters/shortcut/stories.js +128 -0
- package/lib/converters/shortcut/stories.js.map +1 -0
- package/lib/converters/squadcast/common.d.ts +169 -0
- package/lib/converters/squadcast/common.js +63 -0
- package/lib/converters/squadcast/common.js.map +1 -0
- package/lib/converters/squadcast/events.d.ts +9 -0
- package/lib/converters/squadcast/events.js +54 -0
- package/lib/converters/squadcast/events.js.map +1 -0
- package/lib/converters/squadcast/incidents.d.ts +10 -0
- package/lib/converters/squadcast/incidents.js +132 -0
- package/lib/converters/squadcast/incidents.js.map +1 -0
- package/lib/converters/squadcast/services.d.ts +8 -0
- package/lib/converters/squadcast/services.js +30 -0
- package/lib/converters/squadcast/services.js.map +1 -0
- package/lib/converters/squadcast/users.d.ts +7 -0
- package/lib/converters/squadcast/users.js +28 -0
- package/lib/converters/squadcast/users.js.map +1 -0
- package/lib/converters/statuspage/common.d.ts +125 -0
- package/lib/converters/statuspage/common.js +118 -0
- package/lib/converters/statuspage/common.js.map +1 -0
- package/lib/converters/statuspage/component_groups.d.ts +6 -0
- package/lib/converters/statuspage/component_groups.js +15 -0
- package/lib/converters/statuspage/component_groups.js.map +1 -0
- package/lib/converters/statuspage/component_uptimes.d.ts +8 -0
- package/lib/converters/statuspage/component_uptimes.js +44 -0
- package/lib/converters/statuspage/component_uptimes.js.map +1 -0
- package/lib/converters/statuspage/components.d.ts +8 -0
- package/lib/converters/statuspage/components.js +29 -0
- package/lib/converters/statuspage/components.js.map +1 -0
- package/lib/converters/statuspage/incidents.d.ts +13 -0
- package/lib/converters/statuspage/incidents.js +221 -0
- package/lib/converters/statuspage/incidents.js.map +1 -0
- package/lib/converters/statuspage/pages.d.ts +6 -0
- package/lib/converters/statuspage/pages.js +15 -0
- package/lib/converters/statuspage/pages.js.map +1 -0
- package/lib/converters/statuspage/users.d.ts +7 -0
- package/lib/converters/statuspage/users.js +27 -0
- package/lib/converters/statuspage/users.js.map +1 -0
- package/lib/converters/testrails/cases.d.ts +7 -0
- package/lib/converters/testrails/cases.js +43 -0
- package/lib/converters/testrails/cases.js.map +1 -0
- package/lib/converters/testrails/common.d.ts +20 -0
- package/lib/converters/testrails/common.js +66 -0
- package/lib/converters/testrails/common.js.map +1 -0
- package/lib/converters/testrails/results.d.ts +7 -0
- package/lib/converters/testrails/results.js +41 -0
- package/lib/converters/testrails/results.js.map +1 -0
- package/lib/converters/testrails/runs.d.ts +7 -0
- package/lib/converters/testrails/runs.js +56 -0
- package/lib/converters/testrails/runs.js.map +1 -0
- package/lib/converters/testrails/suites.d.ts +7 -0
- package/lib/converters/testrails/suites.js +33 -0
- package/lib/converters/testrails/suites.js.map +1 -0
- package/lib/converters/victorops/common.d.ts +16 -0
- package/lib/converters/victorops/common.js +25 -0
- package/lib/converters/victorops/common.js.map +1 -0
- package/lib/converters/victorops/incidents.d.ts +12 -0
- package/lib/converters/victorops/incidents.js +204 -0
- package/lib/converters/victorops/incidents.js.map +1 -0
- package/lib/converters/victorops/teams.d.ts +8 -0
- package/lib/converters/victorops/teams.js +31 -0
- package/lib/converters/victorops/teams.js.map +1 -0
- package/lib/converters/victorops/users.d.ts +8 -0
- package/lib/converters/victorops/users.js +34 -0
- package/lib/converters/victorops/users.js.map +1 -0
- package/lib/destination-runner.d.ts +22 -0
- package/lib/destination-runner.js +34 -0
- package/lib/destination-runner.js.map +1 -0
- package/lib/destination.d.ts +57 -0
- package/lib/destination.js +665 -0
- package/lib/destination.js.map +1 -0
- package/lib/index.d.ts +16 -0
- package/lib/index.js +40 -0
- package/lib/index.js.map +1 -0
- package/lib/tsconfig.tsbuildinfo +1 -0
- package/package.json +78 -0
- package/resources/cloud.json +73 -0
- package/resources/community.json +39 -0
- package/resources/source-specific-configs/agileaccelerator.json +33 -0
- package/resources/source-specific-configs/azurepipeline.json +27 -0
- package/resources/source-specific-configs/backlog.json +24 -0
- package/resources/source-specific-configs/bamboohr.json +36 -0
- package/resources/source-specific-configs/bitbucket.json +28 -0
- package/resources/source-specific-configs/circleci.json +24 -0
- package/resources/source-specific-configs/clickup.json +35 -0
- package/resources/source-specific-configs/datadog.json +42 -0
- package/resources/source-specific-configs/docker.json +40 -0
- package/resources/source-specific-configs/firehydrant.json +34 -0
- package/resources/source-specific-configs/jenkins.json +24 -0
- package/resources/source-specific-configs/jira.json +45 -0
- package/resources/source-specific-configs/notion.json +313 -0
- package/resources/source-specific-configs/opsgenie.json +34 -0
- package/resources/source-specific-configs/pagerduty.json +48 -0
- package/resources/source-specific-configs/phabricator.json +24 -0
- package/resources/source-specific-configs/servicenow.json +72 -0
- package/resources/source-specific-configs/spec.json +78 -0
- package/resources/source-specific-configs/squadcast.json +28 -0
- package/resources/source-specific-configs/statuspage.json +28 -0
- package/resources/source-specific-configs/victorops.json +37 -0
- package/resources/spec.json +116 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.SemaphoreCICommon = exports.SemaphoreCIConverter = void 0;
|
|
7
|
+
const git_url_parse_1 = __importDefault(require("git-url-parse"));
|
|
8
|
+
const converter_1 = require("../converter");
|
|
9
|
+
const models_1 = require("./models");
|
|
10
|
+
/** Buildkite converter base */
|
|
11
|
+
class SemaphoreCIConverter extends converter_1.Converter {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.source = 'SemaphoreCI';
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.SemaphoreCIConverter = SemaphoreCIConverter;
|
|
18
|
+
class SemaphoreCICommon {
|
|
19
|
+
static getVCSSourceFromUrl(repoUrl) {
|
|
20
|
+
switch ((0, git_url_parse_1.default)(repoUrl).source) {
|
|
21
|
+
case models_1.RepoGitSource.GITHUB:
|
|
22
|
+
return models_1.RepoSource.GITHUB;
|
|
23
|
+
case models_1.RepoGitSource.BITBUCKET:
|
|
24
|
+
return models_1.RepoSource.BITBUCKET;
|
|
25
|
+
default:
|
|
26
|
+
'undefined';
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
static buildVCSUrls(repository, source) {
|
|
30
|
+
const urls = {
|
|
31
|
+
organization: '',
|
|
32
|
+
repository: '',
|
|
33
|
+
};
|
|
34
|
+
switch (source) {
|
|
35
|
+
case models_1.RepoSource.GITHUB:
|
|
36
|
+
urls.organization = `https://github.com/${repository.owner}`;
|
|
37
|
+
urls.repository = `https://github.com/${repository.owner}/${repository.name}`;
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
return urls;
|
|
41
|
+
}
|
|
42
|
+
static buildOrganizationUrl(organizationName) {
|
|
43
|
+
return `https://${organizationName}.semaphoreci.com`;
|
|
44
|
+
}
|
|
45
|
+
static buildArtifactRepoUrl(organizationName, projectName) {
|
|
46
|
+
return `https://${organizationName}.semaphoreci.com/projects/${projectName}`;
|
|
47
|
+
}
|
|
48
|
+
static buildPipelineUrl(pipeline, repository) {
|
|
49
|
+
const baseUrl = this.buildOrganizationUrl(repository.owner);
|
|
50
|
+
return `${baseUrl}/workflows/${pipeline.wf_id}?pipeline_id=${pipeline.ppl_id}`;
|
|
51
|
+
}
|
|
52
|
+
static buildJobUrl(job, repository) {
|
|
53
|
+
const baseUrl = this.buildOrganizationUrl(repository.owner);
|
|
54
|
+
return `${baseUrl}/jobs/${job.metadata.id}`;
|
|
55
|
+
}
|
|
56
|
+
static buildCICDUrls(repository) {
|
|
57
|
+
return {
|
|
58
|
+
organization: `https://${repository.owner}.semaphoreci.com`,
|
|
59
|
+
repository: `https://${repository.owner}.semaphoreci.com/projects/${repository.name}`,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
static convertBuildState(state) {
|
|
63
|
+
if (!state) {
|
|
64
|
+
return { category: models_1.BuildStateCategory.Unknown, detail: 'undefined' };
|
|
65
|
+
}
|
|
66
|
+
const detail = state.toLowerCase();
|
|
67
|
+
switch (detail) {
|
|
68
|
+
case models_1.PipelineResult.Canceled:
|
|
69
|
+
case models_1.PipelineResult.Stopped:
|
|
70
|
+
return { category: models_1.BuildStateCategory.Canceled, detail };
|
|
71
|
+
case models_1.PipelineResult.Failed:
|
|
72
|
+
return { category: models_1.BuildStateCategory.Failed, detail };
|
|
73
|
+
case models_1.PipelineResult.Passed:
|
|
74
|
+
return { category: models_1.BuildStateCategory.Success, detail };
|
|
75
|
+
default:
|
|
76
|
+
return { category: models_1.BuildStateCategory.Custom, detail };
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/*
|
|
80
|
+
* SemaphoreCI API publishes date fields based on unix epoch times. For fields that
|
|
81
|
+
* are not initialized (null/empty) it returns 0, which converted, represents the
|
|
82
|
+
* beginning of epoch (January 1st, 1970 at 00:00:00 UTC). This date skews all existing
|
|
83
|
+
* metabase SQL queries that calculates duration as endedAt - startedAt. This helper function
|
|
84
|
+
* identifies those uninitialized dates and nullify then so the built in dashboards work
|
|
85
|
+
* as expected.
|
|
86
|
+
*
|
|
87
|
+
* https://docs.semaphoreci.com/reference/api-v1alpha/#overview
|
|
88
|
+
*/
|
|
89
|
+
static nullifyDate(isoDate) {
|
|
90
|
+
if (new Date(0).toISOString() === isoDate) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
return isoDate;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
exports.SemaphoreCICommon = SemaphoreCICommon;
|
|
97
|
+
SemaphoreCICommon.MAX_DESCRIPTION_LENGTH = 1000;
|
|
98
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/converters/semaphoreci/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
export interface Repository {
|
|
2
|
+
readonly integration_type: string;
|
|
3
|
+
readonly name: string;
|
|
4
|
+
readonly owner: string;
|
|
5
|
+
readonly url: string;
|
|
6
|
+
}
|
|
7
|
+
export interface ProjectSpec {
|
|
8
|
+
readonly repository: Repository;
|
|
9
|
+
readonly visibility: string;
|
|
10
|
+
}
|
|
11
|
+
export interface ProjectMeta {
|
|
12
|
+
readonly description: string;
|
|
13
|
+
readonly id: string;
|
|
14
|
+
readonly name: string;
|
|
15
|
+
readonly org_id: string;
|
|
16
|
+
readonly owner_id: string;
|
|
17
|
+
}
|
|
18
|
+
export interface Project {
|
|
19
|
+
readonly metadata: ProjectMeta;
|
|
20
|
+
readonly spec: ProjectSpec;
|
|
21
|
+
}
|
|
22
|
+
export interface JobMetadata {
|
|
23
|
+
readonly name: string;
|
|
24
|
+
readonly id: string;
|
|
25
|
+
readonly create_time: string;
|
|
26
|
+
readonly update_time: string;
|
|
27
|
+
readonly start_time: string;
|
|
28
|
+
readonly finish_time: string;
|
|
29
|
+
}
|
|
30
|
+
export interface JobSpec {
|
|
31
|
+
readonly project_id: string;
|
|
32
|
+
readonly agent: {
|
|
33
|
+
machine: {
|
|
34
|
+
type: string;
|
|
35
|
+
os_image: string;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
readonly env_vars: {
|
|
39
|
+
name: string;
|
|
40
|
+
value: string;
|
|
41
|
+
}[];
|
|
42
|
+
readonly commands: string[];
|
|
43
|
+
}
|
|
44
|
+
export interface JobStatus {
|
|
45
|
+
readonly result: string;
|
|
46
|
+
readonly state: string;
|
|
47
|
+
}
|
|
48
|
+
export interface Job {
|
|
49
|
+
readonly metadata: JobMetadata;
|
|
50
|
+
readonly spec: JobSpec;
|
|
51
|
+
readonly status: JobStatus;
|
|
52
|
+
}
|
|
53
|
+
export interface BlockJob {
|
|
54
|
+
readonly status: string;
|
|
55
|
+
readonly result: string;
|
|
56
|
+
readonly name: string;
|
|
57
|
+
readonly job_id: string;
|
|
58
|
+
readonly index: number;
|
|
59
|
+
}
|
|
60
|
+
export interface Block {
|
|
61
|
+
readonly state: string;
|
|
62
|
+
readonly result_reason: string;
|
|
63
|
+
readonly result: string;
|
|
64
|
+
readonly name: string;
|
|
65
|
+
readonly jobs: BlockJob[];
|
|
66
|
+
}
|
|
67
|
+
export interface PipelineDetailed {
|
|
68
|
+
readonly pipeline: Pipeline;
|
|
69
|
+
readonly blocks: Block[];
|
|
70
|
+
}
|
|
71
|
+
export interface Pipeline {
|
|
72
|
+
readonly after_task_id: string;
|
|
73
|
+
readonly branch_id: string;
|
|
74
|
+
readonly branch_name: string;
|
|
75
|
+
readonly commit_message: string;
|
|
76
|
+
readonly commit_sha: string;
|
|
77
|
+
readonly compile_task_id: string;
|
|
78
|
+
readonly created_at: string;
|
|
79
|
+
readonly done_at: string;
|
|
80
|
+
readonly error_description: string;
|
|
81
|
+
readonly hook_id: string;
|
|
82
|
+
readonly name: string;
|
|
83
|
+
readonly partial_rerun_of: string;
|
|
84
|
+
readonly partially_rerun_by: string;
|
|
85
|
+
readonly pending_at: string;
|
|
86
|
+
readonly ppl_id: string;
|
|
87
|
+
readonly promotion_of: string;
|
|
88
|
+
readonly queuing_at: string;
|
|
89
|
+
readonly repository_id: string;
|
|
90
|
+
readonly result: string;
|
|
91
|
+
readonly result_reason: string;
|
|
92
|
+
readonly running_at: string;
|
|
93
|
+
readonly snapshot_id: string;
|
|
94
|
+
readonly state: string;
|
|
95
|
+
readonly stopping_at: string;
|
|
96
|
+
readonly switch_id: string;
|
|
97
|
+
readonly terminate_request: string;
|
|
98
|
+
readonly terminated_by: string;
|
|
99
|
+
readonly wf_id: string;
|
|
100
|
+
readonly with_after_task: string;
|
|
101
|
+
readonly working_directory: string;
|
|
102
|
+
readonly yaml_file_name: string;
|
|
103
|
+
readonly project: Project;
|
|
104
|
+
readonly jobs: Job[];
|
|
105
|
+
}
|
|
106
|
+
export declare enum PipelineResult {
|
|
107
|
+
Canceled = "canceled",
|
|
108
|
+
Failed = "failed",
|
|
109
|
+
Passed = "passed",
|
|
110
|
+
Stopped = "stopped"
|
|
111
|
+
}
|
|
112
|
+
export declare enum RepoGitSource {
|
|
113
|
+
GITHUB = "github.com",
|
|
114
|
+
BITBUCKET = "bitbucket.com"
|
|
115
|
+
}
|
|
116
|
+
export declare enum BuildStateCategory {
|
|
117
|
+
Canceled = "Canceled",
|
|
118
|
+
Failed = "Failed",
|
|
119
|
+
Success = "Success",
|
|
120
|
+
Running = "Running",
|
|
121
|
+
Queued = "Queued",
|
|
122
|
+
Custom = "Custom",
|
|
123
|
+
Unknown = "unknown"
|
|
124
|
+
}
|
|
125
|
+
export declare enum RepoSource {
|
|
126
|
+
GITHUB = "GitHub",
|
|
127
|
+
BITBUCKET = "Bitbucket"
|
|
128
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RepoSource = exports.BuildStateCategory = exports.RepoGitSource = exports.PipelineResult = void 0;
|
|
4
|
+
/*
|
|
5
|
+
* SemaphoreCI Pipeline Status
|
|
6
|
+
* https://docs.semaphoreci.com/reference/pipeline-yaml-reference/#result
|
|
7
|
+
*/
|
|
8
|
+
var PipelineResult;
|
|
9
|
+
(function (PipelineResult) {
|
|
10
|
+
PipelineResult["Canceled"] = "canceled";
|
|
11
|
+
PipelineResult["Failed"] = "failed";
|
|
12
|
+
PipelineResult["Passed"] = "passed";
|
|
13
|
+
PipelineResult["Stopped"] = "stopped";
|
|
14
|
+
})(PipelineResult = exports.PipelineResult || (exports.PipelineResult = {}));
|
|
15
|
+
var RepoGitSource;
|
|
16
|
+
(function (RepoGitSource) {
|
|
17
|
+
RepoGitSource["GITHUB"] = "github.com";
|
|
18
|
+
RepoGitSource["BITBUCKET"] = "bitbucket.com";
|
|
19
|
+
})(RepoGitSource = exports.RepoGitSource || (exports.RepoGitSource = {}));
|
|
20
|
+
var BuildStateCategory;
|
|
21
|
+
(function (BuildStateCategory) {
|
|
22
|
+
BuildStateCategory["Canceled"] = "Canceled";
|
|
23
|
+
BuildStateCategory["Failed"] = "Failed";
|
|
24
|
+
BuildStateCategory["Success"] = "Success";
|
|
25
|
+
BuildStateCategory["Running"] = "Running";
|
|
26
|
+
BuildStateCategory["Queued"] = "Queued";
|
|
27
|
+
BuildStateCategory["Custom"] = "Custom";
|
|
28
|
+
BuildStateCategory["Unknown"] = "unknown";
|
|
29
|
+
})(BuildStateCategory = exports.BuildStateCategory || (exports.BuildStateCategory = {}));
|
|
30
|
+
var RepoSource;
|
|
31
|
+
(function (RepoSource) {
|
|
32
|
+
RepoSource["GITHUB"] = "GitHub";
|
|
33
|
+
RepoSource["BITBUCKET"] = "Bitbucket";
|
|
34
|
+
})(RepoSource = exports.RepoSource || (exports.RepoSource = {}));
|
|
35
|
+
//# sourceMappingURL=models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/converters/semaphoreci/models.ts"],"names":[],"mappings":";;;AAsHA;;;GAGG;AACH,IAAY,cAKX;AALD,WAAY,cAAc;IACxB,uCAAqB,CAAA;IACrB,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;IACjB,qCAAmB,CAAA;AACrB,CAAC,EALW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAKzB;AAED,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,sCAAqB,CAAA;IACrB,4CAA2B,CAAA;AAC7B,CAAC,EAHW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAGxB;AAED,IAAY,kBAQX;AARD,WAAY,kBAAkB;IAC5B,2CAAqB,CAAA;IACrB,uCAAiB,CAAA;IACjB,yCAAmB,CAAA;IACnB,yCAAmB,CAAA;IACnB,uCAAiB,CAAA;IACjB,uCAAiB,CAAA;IACjB,yCAAmB,CAAA;AACrB,CAAC,EARW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAQ7B;AAED,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,+BAAiB,CAAA;IACjB,qCAAuB,CAAA;AACzB,CAAC,EAHW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAGrB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AirbyteRecord } from 'faros-airbyte-cdk';
|
|
2
|
+
import { DestinationModel, DestinationRecord, StreamContext } from '../converter';
|
|
3
|
+
import { SemaphoreCIConverter } from './common';
|
|
4
|
+
export declare class Pipelines extends SemaphoreCIConverter {
|
|
5
|
+
readonly destinationModels: ReadonlyArray<DestinationModel>;
|
|
6
|
+
id(record: AirbyteRecord): any;
|
|
7
|
+
convert(record: AirbyteRecord, ctx: StreamContext): Promise<ReadonlyArray<DestinationRecord>>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Pipelines = void 0;
|
|
4
|
+
const common_1 = require("./common");
|
|
5
|
+
class Pipelines extends common_1.SemaphoreCIConverter {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.destinationModels = [
|
|
9
|
+
'cicd_Pipeline',
|
|
10
|
+
'cicd_Build',
|
|
11
|
+
'cicd_BuildCommitAssociation',
|
|
12
|
+
'cicd_BuildSteps',
|
|
13
|
+
];
|
|
14
|
+
}
|
|
15
|
+
id(record) {
|
|
16
|
+
var _a, _b;
|
|
17
|
+
return (_b = (_a = record === null || record === void 0 ? void 0 : record.record) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.ppl_id;
|
|
18
|
+
}
|
|
19
|
+
async convert(record, ctx) {
|
|
20
|
+
const pipelineRecord = record.record.data;
|
|
21
|
+
const source = this.streamName.source;
|
|
22
|
+
const project = pipelineRecord.project;
|
|
23
|
+
const repository = project.spec.repository;
|
|
24
|
+
const VCSSource = common_1.SemaphoreCICommon.getVCSSourceFromUrl(repository.url);
|
|
25
|
+
/*
|
|
26
|
+
* Pipeline
|
|
27
|
+
*/
|
|
28
|
+
const organizationKey = {
|
|
29
|
+
uid: repository.owner,
|
|
30
|
+
name: repository.owner,
|
|
31
|
+
source,
|
|
32
|
+
};
|
|
33
|
+
const pipeline = {
|
|
34
|
+
model: 'cicd_Pipeline',
|
|
35
|
+
record: {
|
|
36
|
+
uid: `${project.metadata.name}-${pipelineRecord.name}`,
|
|
37
|
+
name: pipelineRecord.name,
|
|
38
|
+
organization: organizationKey,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
/*
|
|
42
|
+
* Build
|
|
43
|
+
*/
|
|
44
|
+
const pipelineKey = {
|
|
45
|
+
uid: pipeline.record.uid,
|
|
46
|
+
organization: organizationKey,
|
|
47
|
+
};
|
|
48
|
+
const build = {
|
|
49
|
+
model: 'cicd_Build',
|
|
50
|
+
record: {
|
|
51
|
+
uid: pipelineRecord.ppl_id,
|
|
52
|
+
name: pipelineRecord.name,
|
|
53
|
+
createdAt: pipelineRecord.created_at,
|
|
54
|
+
startedAt: common_1.SemaphoreCICommon.nullifyDate(pipelineRecord.running_at),
|
|
55
|
+
endedAt: common_1.SemaphoreCICommon.nullifyDate(pipelineRecord.done_at),
|
|
56
|
+
url: common_1.SemaphoreCICommon.buildPipelineUrl(pipelineRecord, repository),
|
|
57
|
+
status: common_1.SemaphoreCICommon.convertBuildState(pipelineRecord.result),
|
|
58
|
+
pipeline: pipelineKey,
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
/*
|
|
62
|
+
* BuildCommitAssociation
|
|
63
|
+
*/
|
|
64
|
+
const repositoryKey = {
|
|
65
|
+
uid: repository.name,
|
|
66
|
+
name: repository.name,
|
|
67
|
+
fullName: `${repository.owner}/${repository.name}`,
|
|
68
|
+
url: common_1.SemaphoreCICommon.buildVCSUrls(repository, VCSSource).repository,
|
|
69
|
+
organization: {
|
|
70
|
+
uid: repository.owner,
|
|
71
|
+
source: VCSSource,
|
|
72
|
+
url: common_1.SemaphoreCICommon.buildVCSUrls(repository, VCSSource).organization,
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
const buildCommitAssociation = {
|
|
76
|
+
model: 'cicd_BuildCommitAssociation',
|
|
77
|
+
record: {
|
|
78
|
+
build: build.record,
|
|
79
|
+
commit: {
|
|
80
|
+
sha: pipelineRecord.commit_sha,
|
|
81
|
+
uid: pipelineRecord.commit_sha,
|
|
82
|
+
repository: repositoryKey,
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
const buildSteps = [];
|
|
87
|
+
for (const job of pipelineRecord.jobs) {
|
|
88
|
+
buildSteps.push({
|
|
89
|
+
model: 'cicd_BuildStep',
|
|
90
|
+
record: {
|
|
91
|
+
uid: job.metadata.id,
|
|
92
|
+
name: job.metadata.name,
|
|
93
|
+
command: job.spec.commands
|
|
94
|
+
.join('\n')
|
|
95
|
+
.substring(0, common_1.SemaphoreCICommon.MAX_DESCRIPTION_LENGTH),
|
|
96
|
+
createdAt: common_1.SemaphoreCICommon.nullifyDate(job.metadata.create_time),
|
|
97
|
+
startedAt: common_1.SemaphoreCICommon.nullifyDate(job.metadata.start_time),
|
|
98
|
+
endedAt: common_1.SemaphoreCICommon.nullifyDate(job.metadata.finish_time),
|
|
99
|
+
status: common_1.SemaphoreCICommon.convertBuildState(job.status.result),
|
|
100
|
+
url: common_1.SemaphoreCICommon.buildJobUrl(job, repository),
|
|
101
|
+
build: build.record,
|
|
102
|
+
},
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
/*
|
|
106
|
+
* BuildSteps
|
|
107
|
+
*/
|
|
108
|
+
return [pipeline, build, buildCommitAssociation, ...buildSteps];
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
exports.Pipelines = Pipelines;
|
|
112
|
+
//# sourceMappingURL=pipelines.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipelines.js","sourceRoot":"","sources":["../../../src/converters/semaphoreci/pipelines.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AirbyteRecord } from 'faros-airbyte-cdk';
|
|
2
|
+
import { DestinationModel, DestinationRecord } from '../converter';
|
|
3
|
+
import { SemaphoreCIConverter } from './common';
|
|
4
|
+
export declare class Projects extends SemaphoreCIConverter {
|
|
5
|
+
readonly destinationModels: ReadonlyArray<DestinationModel>;
|
|
6
|
+
id(record: AirbyteRecord): any;
|
|
7
|
+
convert(record: AirbyteRecord): Promise<ReadonlyArray<DestinationRecord>>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Projects = void 0;
|
|
4
|
+
const common_1 = require("./common");
|
|
5
|
+
class Projects extends common_1.SemaphoreCIConverter {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.destinationModels = [
|
|
9
|
+
'cicd_Organization',
|
|
10
|
+
'cicd_Repository',
|
|
11
|
+
];
|
|
12
|
+
}
|
|
13
|
+
id(record) {
|
|
14
|
+
var _a, _b;
|
|
15
|
+
return (_b = (_a = record === null || record === void 0 ? void 0 : record.record) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.metadata.id;
|
|
16
|
+
}
|
|
17
|
+
async convert(record) {
|
|
18
|
+
const source = this.streamName.source;
|
|
19
|
+
const project = record.record.data;
|
|
20
|
+
const organization = {
|
|
21
|
+
model: 'cicd_Organization',
|
|
22
|
+
record: {
|
|
23
|
+
uid: project.spec.repository.owner,
|
|
24
|
+
name: project.spec.repository.owner,
|
|
25
|
+
url: common_1.SemaphoreCICommon.buildOrganizationUrl(project.spec.repository.owner),
|
|
26
|
+
source: source,
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
const repository = {
|
|
30
|
+
model: 'cicd_Repository',
|
|
31
|
+
record: {
|
|
32
|
+
uid: project.spec.repository.name,
|
|
33
|
+
name: project.spec.repository.name,
|
|
34
|
+
description: project.metadata.description,
|
|
35
|
+
url: common_1.SemaphoreCICommon.buildArtifactRepoUrl(project.spec.repository.owner, project.metadata.id),
|
|
36
|
+
organization: {
|
|
37
|
+
uid: organization.record.uid,
|
|
38
|
+
source,
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
return [organization, repository];
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.Projects = Projects;
|
|
46
|
+
//# sourceMappingURL=projects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../../src/converters/semaphoreci/projects.ts"],"names":[],"mappings":";;;AAGA,qCAAiE;AAGjE,MAAa,QAAS,SAAQ,6BAAoB;IAAlD;;QACW,sBAAiB,GAAoC;YAC5D,mBAAmB;YACnB,iBAAiB;SAClB,CAAC;IA2CJ,CAAC;IAzCC,EAAE,CAAC,MAAqB;;QACtB,OAAO,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,0CAAE,IAAI,0CAAE,QAAQ,CAAC,EAAE,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,OAAO,CACX,MAAqB;QAErB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QACtC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAe,CAAC;QAE9C,MAAM,YAAY,GAAG;YACnB,KAAK,EAAE,mBAAmB;YAC1B,MAAM,EAAE;gBACN,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK;gBAClC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK;gBACnC,GAAG,EAAE,0BAAiB,CAAC,oBAAoB,CACzC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAC9B;gBACD,MAAM,EAAE,MAAM;aACf;SACF,CAAC;QAEF,MAAM,UAAU,GAAG;YACjB,KAAK,EAAE,iBAAiB;YACxB,MAAM,EAAE;gBACN,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI;gBACjC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI;gBAClC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW;gBACzC,GAAG,EAAE,0BAAiB,CAAC,oBAAoB,CACzC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAC7B,OAAO,CAAC,QAAQ,CAAC,EAAE,CACpB;gBACD,YAAY,EAAE;oBACZ,GAAG,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG;oBAC5B,MAAM;iBACP;aACF;SACF,CAAC;QAEF,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IACpC,CAAC;CACF;AA/CD,4BA+CC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { AirbyteRecord } from 'faros-airbyte-cdk';
|
|
2
|
+
import { Converter, StreamContext } from '../converter';
|
|
3
|
+
export declare enum IncidentSeverityCategory {
|
|
4
|
+
Sev1 = "Sev1",
|
|
5
|
+
Sev2 = "Sev2",
|
|
6
|
+
Sev3 = "Sev3",
|
|
7
|
+
Sev4 = "Sev4",
|
|
8
|
+
Sev5 = "Sev5",
|
|
9
|
+
Custom = "Custom"
|
|
10
|
+
}
|
|
11
|
+
export declare enum IncidentPriorityCategory {
|
|
12
|
+
P1 = "Critical",
|
|
13
|
+
P2 = "High",
|
|
14
|
+
P3 = "Medium",
|
|
15
|
+
P4 = "Low",
|
|
16
|
+
Custom = "Custom"
|
|
17
|
+
}
|
|
18
|
+
declare type ApplicationMapping = Record<string, {
|
|
19
|
+
name: string;
|
|
20
|
+
platform?: string;
|
|
21
|
+
}>;
|
|
22
|
+
interface ServiceNowConfig {
|
|
23
|
+
application_mapping?: ApplicationMapping;
|
|
24
|
+
application_field?: string;
|
|
25
|
+
default_severity?: IncidentSeverityCategory;
|
|
26
|
+
default_priority?: IncidentPriorityCategory;
|
|
27
|
+
store_current_incidents_associations?: boolean;
|
|
28
|
+
}
|
|
29
|
+
/** ServiceNow converter base */
|
|
30
|
+
export declare abstract class ServiceNowConverter extends Converter {
|
|
31
|
+
source: string;
|
|
32
|
+
/** Almost every ServiceNow record has an id property */
|
|
33
|
+
id(record: AirbyteRecord): any;
|
|
34
|
+
protected config(ctx: StreamContext): ServiceNowConfig;
|
|
35
|
+
protected applicationMapping(ctx: StreamContext): ApplicationMapping;
|
|
36
|
+
protected applicationField(ctx: StreamContext): string;
|
|
37
|
+
protected onlyStoreCurrentIncidentsAssociations(ctx: StreamContext): boolean;
|
|
38
|
+
}
|
|
39
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ServiceNowConverter = exports.IncidentPriorityCategory = exports.IncidentSeverityCategory = void 0;
|
|
4
|
+
const converter_1 = require("../converter");
|
|
5
|
+
const DEFAULT_APPLICATION_FIELD = 'business_service';
|
|
6
|
+
var IncidentSeverityCategory;
|
|
7
|
+
(function (IncidentSeverityCategory) {
|
|
8
|
+
IncidentSeverityCategory["Sev1"] = "Sev1";
|
|
9
|
+
IncidentSeverityCategory["Sev2"] = "Sev2";
|
|
10
|
+
IncidentSeverityCategory["Sev3"] = "Sev3";
|
|
11
|
+
IncidentSeverityCategory["Sev4"] = "Sev4";
|
|
12
|
+
IncidentSeverityCategory["Sev5"] = "Sev5";
|
|
13
|
+
IncidentSeverityCategory["Custom"] = "Custom";
|
|
14
|
+
})(IncidentSeverityCategory = exports.IncidentSeverityCategory || (exports.IncidentSeverityCategory = {}));
|
|
15
|
+
var IncidentPriorityCategory;
|
|
16
|
+
(function (IncidentPriorityCategory) {
|
|
17
|
+
IncidentPriorityCategory["P1"] = "Critical";
|
|
18
|
+
IncidentPriorityCategory["P2"] = "High";
|
|
19
|
+
IncidentPriorityCategory["P3"] = "Medium";
|
|
20
|
+
IncidentPriorityCategory["P4"] = "Low";
|
|
21
|
+
IncidentPriorityCategory["Custom"] = "Custom";
|
|
22
|
+
})(IncidentPriorityCategory = exports.IncidentPriorityCategory || (exports.IncidentPriorityCategory = {}));
|
|
23
|
+
/** ServiceNow converter base */
|
|
24
|
+
class ServiceNowConverter extends converter_1.Converter {
|
|
25
|
+
constructor() {
|
|
26
|
+
super(...arguments);
|
|
27
|
+
this.source = 'ServiceNow';
|
|
28
|
+
}
|
|
29
|
+
/** Almost every ServiceNow record has an id property */
|
|
30
|
+
id(record) {
|
|
31
|
+
var _a, _b;
|
|
32
|
+
return (_b = (_a = record === null || record === void 0 ? void 0 : record.record) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.sys_id;
|
|
33
|
+
}
|
|
34
|
+
config(ctx) {
|
|
35
|
+
var _a, _b;
|
|
36
|
+
return (_b = (_a = ctx.config.source_specific_configs) === null || _a === void 0 ? void 0 : _a.servicenow) !== null && _b !== void 0 ? _b : {};
|
|
37
|
+
}
|
|
38
|
+
applicationMapping(ctx) {
|
|
39
|
+
var _a, _b;
|
|
40
|
+
return ((_b = (0, converter_1.parseObjectConfig)((_a = this.config(ctx)) === null || _a === void 0 ? void 0 : _a.application_mapping, 'Application Mapping')) !== null && _b !== void 0 ? _b : {});
|
|
41
|
+
}
|
|
42
|
+
applicationField(ctx) {
|
|
43
|
+
var _a;
|
|
44
|
+
return (_a = this.config(ctx).application_field) !== null && _a !== void 0 ? _a : DEFAULT_APPLICATION_FIELD;
|
|
45
|
+
}
|
|
46
|
+
onlyStoreCurrentIncidentsAssociations(ctx) {
|
|
47
|
+
var _a;
|
|
48
|
+
return ((_a = this.config(ctx).store_current_incidents_associations) !== null && _a !== void 0 ? _a : false);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.ServiceNowConverter = ServiceNowConverter;
|
|
52
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/converters/servicenow/common.ts"],"names":[],"mappings":";;;AAEA,4CAAyE;AAEzE,MAAM,yBAAyB,GAAG,kBAAkB,CAAC;AAErD,IAAY,wBAOX;AAPD,WAAY,wBAAwB;IAClC,yCAAa,CAAA;IACb,yCAAa,CAAA;IACb,yCAAa,CAAA;IACb,yCAAa,CAAA;IACb,yCAAa,CAAA;IACb,6CAAiB,CAAA;AACnB,CAAC,EAPW,wBAAwB,GAAxB,gCAAwB,KAAxB,gCAAwB,QAOnC;AAED,IAAY,wBAMX;AAND,WAAY,wBAAwB;IAClC,2CAAe,CAAA;IACf,uCAAW,CAAA;IACX,yCAAa,CAAA;IACb,sCAAU,CAAA;IACV,6CAAiB,CAAA;AACnB,CAAC,EANW,wBAAwB,GAAxB,gCAAwB,KAAxB,gCAAwB,QAMnC;AAYD,gCAAgC;AAChC,MAAsB,mBAAoB,SAAQ,qBAAS;IAA3D;;QACE,WAAM,GAAG,YAAY,CAAC;IA8BxB,CAAC;IA5BC,wDAAwD;IACxD,EAAE,CAAC,MAAqB;;QACtB,OAAO,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,0CAAE,IAAI,0CAAE,MAAM,CAAC;IACtC,CAAC;IAES,MAAM,CAAC,GAAkB;;QACjC,OAAO,MAAA,MAAA,GAAG,CAAC,MAAM,CAAC,uBAAuB,0CAAE,UAAU,mCAAI,EAAE,CAAC;IAC9D,CAAC;IAES,kBAAkB,CAAC,GAAkB;;QAC7C,OAAO,CACL,MAAA,IAAA,6BAAiB,EACf,MAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,0CAAE,mBAAmB,EACrC,qBAAqB,CACtB,mCAAI,EAAE,CACR,CAAC;IACJ,CAAC;IACS,gBAAgB,CAAC,GAAkB;;QAC3C,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,iBAAiB,mCAAI,yBAAyB,CAAC;IACzE,CAAC;IAES,qCAAqC,CAC7C,GAAkB;;QAElB,OAAO,CACL,MAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,oCAAoC,mCAAI,KAAK,CAC/D,CAAC;IACJ,CAAC;CACF;AA/BD,kDA+BC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { AirbyteRecord } from 'faros-airbyte-cdk';
|
|
2
|
+
import { Dictionary } from 'ts-essentials';
|
|
3
|
+
import { DestinationModel, DestinationRecord, StreamContext } from '../converter';
|
|
4
|
+
import { ServiceNowConverter } from './common';
|
|
5
|
+
export declare class Incidents extends ServiceNowConverter {
|
|
6
|
+
readonly destinationModels: ReadonlyArray<DestinationModel>;
|
|
7
|
+
private seenApplications;
|
|
8
|
+
private incAppImpacts;
|
|
9
|
+
convert(record: AirbyteRecord, ctx: StreamContext): Promise<ReadonlyArray<DestinationRecord>>;
|
|
10
|
+
private shouldPostProcessIncidentApplicationImpacts;
|
|
11
|
+
static shouldDeleteRecord(incAppImpact: any, source: string, incAppImpacts: Dictionary<Set<string>>): boolean;
|
|
12
|
+
onProcessingComplete(ctx: StreamContext): Promise<ReadonlyArray<DestinationRecord>>;
|
|
13
|
+
private cloudV1DeletionRecords;
|
|
14
|
+
private cloudV2DeletionRecords;
|
|
15
|
+
private getSeverity;
|
|
16
|
+
private getPriority;
|
|
17
|
+
private getStatus;
|
|
18
|
+
}
|