apimatic-semgrep-sdk 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.
- checksums.yaml +7 -0
- data/LICENSE +28 -0
- data/README.md +205 -0
- data/bin/console +15 -0
- data/lib/semgrep_web_app/api_helper.rb +10 -0
- data/lib/semgrep_web_app/apis/base_api.rb +67 -0
- data/lib/semgrep_web_app/apis/deployments_service_api.rb +29 -0
- data/lib/semgrep_web_app/apis/findings_service_api.rb +107 -0
- data/lib/semgrep_web_app/apis/misc_service_api.rb +47 -0
- data/lib/semgrep_web_app/apis/policies_service_api.rb +97 -0
- data/lib/semgrep_web_app/apis/projects_service_api.rb +238 -0
- data/lib/semgrep_web_app/apis/scans_service_api.rb +65 -0
- data/lib/semgrep_web_app/apis/secrets_service_api.rb +55 -0
- data/lib/semgrep_web_app/apis/supply_chain_service_api.rb +154 -0
- data/lib/semgrep_web_app/apis/ticketing_service_api.rb +144 -0
- data/lib/semgrep_web_app/apis/triage_service_api.rb +43 -0
- data/lib/semgrep_web_app/client.rb +136 -0
- data/lib/semgrep_web_app/configuration.rb +178 -0
- data/lib/semgrep_web_app/exceptions/api_exception.rb +21 -0
- data/lib/semgrep_web_app/http/api_response.rb +19 -0
- data/lib/semgrep_web_app/http/auth/semgrep_admin_jwt.rb +53 -0
- data/lib/semgrep_web_app/http/auth/semgrep_jwt.rb +53 -0
- data/lib/semgrep_web_app/http/auth/semgrep_web_token.rb +53 -0
- data/lib/semgrep_web_app/http/http_call_back.rb +10 -0
- data/lib/semgrep_web_app/http/http_method_enum.rb +10 -0
- data/lib/semgrep_web_app/http/http_request.rb +10 -0
- data/lib/semgrep_web_app/http/http_response.rb +10 -0
- data/lib/semgrep_web_app/http/proxy_settings.rb +22 -0
- data/lib/semgrep_web_app/logging/configuration/api_logging_configuration.rb +186 -0
- data/lib/semgrep_web_app/logging/sdk_logger.rb +17 -0
- data/lib/semgrep_web_app/models/add_project_tags_request.rb +96 -0
- data/lib/semgrep_web_app/models/add_project_tags_response.rb +73 -0
- data/lib/semgrep_web_app/models/ai_powered_scan_finding.rb +426 -0
- data/lib/semgrep_web_app/models/ai_sast_findings.rb +85 -0
- data/lib/semgrep_web_app/models/api_v1_deployments_findings_response.rb +87 -0
- data/lib/semgrep_web_app/models/assistant.rb +127 -0
- data/lib/semgrep_web_app/models/autofix.rb +98 -0
- data/lib/semgrep_web_app/models/autotriage.rb +98 -0
- data/lib/semgrep_web_app/models/autotriage_verdict.rb +36 -0
- data/lib/semgrep_web_app/models/autotriage_verdict2.rb +38 -0
- data/lib/semgrep_web_app/models/base_model.rb +110 -0
- data/lib/semgrep_web_app/models/bulk_triage_request.rb +393 -0
- data/lib/semgrep_web_app/models/bulk_triage_response.rb +83 -0
- data/lib/semgrep_web_app/models/click_to_fix_failure.rb +95 -0
- data/lib/semgrep_web_app/models/click_to_fix_pr.rb +95 -0
- data/lib/semgrep_web_app/models/click_to_fix_pr_state.rb +38 -0
- data/lib/semgrep_web_app/models/component.rb +95 -0
- data/lib/semgrep_web_app/models/confidence.rb +42 -0
- data/lib/semgrep_web_app/models/confidence1.rb +40 -0
- data/lib/semgrep_web_app/models/confidence2.rb +40 -0
- data/lib/semgrep_web_app/models/confidence3.rb +40 -0
- data/lib/semgrep_web_app/models/confidence7.rb +41 -0
- data/lib/semgrep_web_app/models/confidence8.rb +42 -0
- data/lib/semgrep_web_app/models/create_sbom_export_request.rb +176 -0
- data/lib/semgrep_web_app/models/create_sbom_export_response.rb +74 -0
- data/lib/semgrep_web_app/models/create_ticket_request.rb +393 -0
- data/lib/semgrep_web_app/models/cyclonedx_version.rb +48 -0
- data/lib/semgrep_web_app/models/delete_project_response.rb +74 -0
- data/lib/semgrep_web_app/models/delete_project_tags_response.rb +73 -0
- data/lib/semgrep_web_app/models/deployment.rb +102 -0
- data/lib/semgrep_web_app/models/ecosystem.rb +91 -0
- data/lib/semgrep_web_app/models/ecosystem1.rb +92 -0
- data/lib/semgrep_web_app/models/ecosystem2.rb +76 -0
- data/lib/semgrep_web_app/models/endpoint_reference.rb +72 -0
- data/lib/semgrep_web_app/models/epss_probability.rb +45 -0
- data/lib/semgrep_web_app/models/epss_score.rb +95 -0
- data/lib/semgrep_web_app/models/exposures.rb +50 -0
- data/lib/semgrep_web_app/models/exposures2.rb +51 -0
- data/lib/semgrep_web_app/models/external_ticket.rb +116 -0
- data/lib/semgrep_web_app/models/finding_location.rb +126 -0
- data/lib/semgrep_web_app/models/finding_repository.rb +95 -0
- data/lib/semgrep_web_app/models/finding_rule.rb +158 -0
- data/lib/semgrep_web_app/models/fix_recommendation.rb +95 -0
- data/lib/semgrep_web_app/models/float_range.rb +85 -0
- data/lib/semgrep_web_app/models/format.rb +27 -0
- data/lib/semgrep_web_app/models/found_dependency.rb +128 -0
- data/lib/semgrep_web_app/models/get_project_response.rb +73 -0
- data/lib/semgrep_web_app/models/get_sbom_export_response.rb +100 -0
- data/lib/semgrep_web_app/models/guidance.rb +98 -0
- data/lib/semgrep_web_app/models/issue_type.rb +40 -0
- data/lib/semgrep_web_app/models/issue_type1.rb +40 -0
- data/lib/semgrep_web_app/models/issue_type2.rb +42 -0
- data/lib/semgrep_web_app/models/license_policy_settings.rb +42 -0
- data/lib/semgrep_web_app/models/link_ticket_request.rb +93 -0
- data/lib/semgrep_web_app/models/list_dependencies_request.rb +108 -0
- data/lib/semgrep_web_app/models/list_dependencies_response.rb +102 -0
- data/lib/semgrep_web_app/models/list_findings_response.rb +100 -0
- data/lib/semgrep_web_app/models/list_lockfiles_for_dependencies_request.rb +118 -0
- data/lib/semgrep_web_app/models/list_lockfiles_for_dependencies_response.rb +103 -0
- data/lib/semgrep_web_app/models/list_project.rb +145 -0
- data/lib/semgrep_web_app/models/list_projects_response.rb +82 -0
- data/lib/semgrep_web_app/models/list_repositories_for_dependencies_request.rb +107 -0
- data/lib/semgrep_web_app/models/list_repositories_for_dependencies_response.rb +103 -0
- data/lib/semgrep_web_app/models/managed_scan_config.rb +85 -0
- data/lib/semgrep_web_app/models/metadata_component_type.rb +101 -0
- data/lib/semgrep_web_app/models/mode.rb +48 -0
- data/lib/semgrep_web_app/models/new_triage_reason.rb +48 -0
- data/lib/semgrep_web_app/models/new_triage_state.rb +48 -0
- data/lib/semgrep_web_app/models/policy.rb +118 -0
- data/lib/semgrep_web_app/models/policy_mode.rb +48 -0
- data/lib/semgrep_web_app/models/policy_mode1.rb +40 -0
- data/lib/semgrep_web_app/models/policy_mode3.rb +51 -0
- data/lib/semgrep_web_app/models/policy_reference.rb +105 -0
- data/lib/semgrep_web_app/models/product_type.rb +38 -0
- data/lib/semgrep_web_app/models/products.rb +46 -0
- data/lib/semgrep_web_app/models/project.rb +157 -0
- data/lib/semgrep_web_app/models/protos_ai_v1_autotriage.rb +154 -0
- data/lib/semgrep_web_app/models/protos_ai_v1_autotriage_feedback.rb +98 -0
- data/lib/semgrep_web_app/models/protos_common_v1_review_comment.rb +90 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_create_ticket_response.rb +123 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_create_ticket_response_ticket_creation_failed.rb +85 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_create_ticket_response_ticket_creation_skipped.rb +85 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_create_ticket_response_ticket_creation_success.rb +106 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_delete_ticket_response.rb +76 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_diff_scan.rb +75 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_full_scan.rb +75 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_get_bootstrap_sms_vpc_response.rb +130 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_get_scan_response.rb +168 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_get_scan_response_scan_meta.rb +256 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_link_ticket_response.rb +119 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_list_deployments_response.rb +85 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_list_policies_response.rb +84 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_list_policy_rules_response.rb +104 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_list_secrets_path_response.rb +104 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_search_scans_response.rb +94 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_unlink_ticket_response.rb +77 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_update_policy_response.rb +88 -0
- data/lib/semgrep_web_app/models/protos_sca_v1_code_location.rb +144 -0
- data/lib/semgrep_web_app/models/protos_sca_v1_dependency.rb +87 -0
- data/lib/semgrep_web_app/models/protos_sca_v1_dependency_filter.rb +199 -0
- data/lib/semgrep_web_app/models/protos_sca_v1_found_dependency.rb +174 -0
- data/lib/semgrep_web_app/models/protos_sca_v1_lockfile_dependency_summary.rb +87 -0
- data/lib/semgrep_web_app/models/protos_sca_v1_package_filter.rb +124 -0
- data/lib/semgrep_web_app/models/protos_sca_v1_repository_dependency_summary.rb +111 -0
- data/lib/semgrep_web_app/models/protos_sca_v1_sbom_format_version.rb +109 -0
- data/lib/semgrep_web_app/models/protos_sca_v1_sbom_metadata_contact.rb +95 -0
- data/lib/semgrep_web_app/models/protos_sca_v1_sbom_metadata_supplier.rb +95 -0
- data/lib/semgrep_web_app/models/protos_scan_v1_scan_findings_counts.rb +105 -0
- data/lib/semgrep_web_app/models/protos_scan_v1_scan_public.rb +228 -0
- data/lib/semgrep_web_app/models/protos_secrets_v1_historical_info.rb +116 -0
- data/lib/semgrep_web_app/models/protos_secrets_v1_secrets_finding.rb +320 -0
- data/lib/semgrep_web_app/models/protos_secrets_v1_secrets_finding_repository.rb +121 -0
- data/lib/semgrep_web_app/models/protos_ticketing_v1_external_ticket.rb +106 -0
- data/lib/semgrep_web_app/models/rating.rb +38 -0
- data/lib/semgrep_web_app/models/reachability.rb +48 -0
- data/lib/semgrep_web_app/models/repository_visibility.rb +40 -0
- data/lib/semgrep_web_app/models/review_comment.rb +100 -0
- data/lib/semgrep_web_app/models/risk.rb +40 -0
- data/lib/semgrep_web_app/models/rule.rb +292 -0
- data/lib/semgrep_web_app/models/rule_explanation.rb +98 -0
- data/lib/semgrep_web_app/models/sast_finding.rb +426 -0
- data/lib/semgrep_web_app/models/sast_findings.rb +84 -0
- data/lib/semgrep_web_app/models/sbom_output_format.rb +37 -0
- data/lib/semgrep_web_app/models/sca_finding.rb +458 -0
- data/lib/semgrep_web_app/models/sca_findings.rb +85 -0
- data/lib/semgrep_web_app/models/scm_type.rb +70 -0
- data/lib/semgrep_web_app/models/search_scans_request.rb +202 -0
- data/lib/semgrep_web_app/models/severities.rb +44 -0
- data/lib/semgrep_web_app/models/severities2.rb +45 -0
- data/lib/semgrep_web_app/models/severity.rb +46 -0
- data/lib/semgrep_web_app/models/severity1.rb +45 -0
- data/lib/semgrep_web_app/models/severity4.rb +46 -0
- data/lib/semgrep_web_app/models/severity5.rb +48 -0
- data/lib/semgrep_web_app/models/source.rb +42 -0
- data/lib/semgrep_web_app/models/state.rb +42 -0
- data/lib/semgrep_web_app/models/status.rb +55 -0
- data/lib/semgrep_web_app/models/status1.rb +52 -0
- data/lib/semgrep_web_app/models/status3.rb +44 -0
- data/lib/semgrep_web_app/models/status6.rb +55 -0
- data/lib/semgrep_web_app/models/status7.rb +59 -0
- data/lib/semgrep_web_app/models/status8.rb +61 -0
- data/lib/semgrep_web_app/models/status9.rb +55 -0
- data/lib/semgrep_web_app/models/statuses.rb +63 -0
- data/lib/semgrep_web_app/models/toggle_project_managed_scan_request.rb +108 -0
- data/lib/semgrep_web_app/models/toggle_project_managed_scan_response.rb +73 -0
- data/lib/semgrep_web_app/models/transitivities.rb +40 -0
- data/lib/semgrep_web_app/models/transitivities2.rb +42 -0
- data/lib/semgrep_web_app/models/transitivity.rb +41 -0
- data/lib/semgrep_web_app/models/transitivity1.rb +42 -0
- data/lib/semgrep_web_app/models/transitivity2.rb +40 -0
- data/lib/semgrep_web_app/models/triage_reason.rb +48 -0
- data/lib/semgrep_web_app/models/triage_reasons.rb +48 -0
- data/lib/semgrep_web_app/models/triage_reasons2.rb +50 -0
- data/lib/semgrep_web_app/models/triage_state.rb +54 -0
- data/lib/semgrep_web_app/models/unlink_ticket_request.rb +83 -0
- data/lib/semgrep_web_app/models/update_policy_request.rb +113 -0
- data/lib/semgrep_web_app/models/update_project_request.rb +121 -0
- data/lib/semgrep_web_app/models/update_project_response.rb +73 -0
- data/lib/semgrep_web_app/models/usage.rb +99 -0
- data/lib/semgrep_web_app/models/validation_state.rb +45 -0
- data/lib/semgrep_web_app/models/validation_state2.rb +47 -0
- data/lib/semgrep_web_app/models/validation_state3.rb +48 -0
- data/lib/semgrep_web_app/models/verdict.rb +41 -0
- data/lib/semgrep_web_app/models/verdict1.rb +38 -0
- data/lib/semgrep_web_app/models/visibility.rb +42 -0
- data/lib/semgrep_web_app/utilities/date_time_helper.rb +11 -0
- data/lib/semgrep_web_app/utilities/file_wrapper.rb +28 -0
- data/lib/semgrep_web_app/utilities/union_type_lookup.rb +34 -0
- data/lib/semgrep_web_app.rb +245 -0
- metadata +283 -0
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
# semgrep_web_app
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v3.0 (
|
|
4
|
+
# https://www.apimatic.io ).
|
|
5
|
+
|
|
6
|
+
module SemgrepWebApp
|
|
7
|
+
# ProjectsServiceApi
|
|
8
|
+
class ProjectsServiceApi < BaseApi
|
|
9
|
+
# Request the list of projects that have been scanned or onboarded to
|
|
10
|
+
# Managed Scans. Does not return archived repositories. Returns 100 projects
|
|
11
|
+
# per page by default.
|
|
12
|
+
# @param [String] deployment_slug Required parameter: TODO: type description
|
|
13
|
+
# here
|
|
14
|
+
# @param [Integer] page Optional parameter: TODO: type description here
|
|
15
|
+
# @param [Integer] page_size Optional parameter: Example:100
|
|
16
|
+
# @return [ApiResponse] Complete http response with raw body and status code.
|
|
17
|
+
def projects_service_list_projects(deployment_slug,
|
|
18
|
+
page: nil,
|
|
19
|
+
page_size: 100)
|
|
20
|
+
@api_call
|
|
21
|
+
.request(new_request_builder(HttpMethodEnum::GET,
|
|
22
|
+
'/api/v1/deployments/{deploymentSlug}/projects',
|
|
23
|
+
Server::SEMGREP)
|
|
24
|
+
.template_param(new_parameter(deployment_slug, key: 'deploymentSlug')
|
|
25
|
+
.is_required(true)
|
|
26
|
+
.should_encode(true))
|
|
27
|
+
.query_param(new_parameter(page, key: 'page'))
|
|
28
|
+
.query_param(new_parameter(page_size, key: 'page_size'))
|
|
29
|
+
.header_param(new_parameter('application/json', key: 'accept'))
|
|
30
|
+
.auth(Single.new('SemgrepWebToken')))
|
|
31
|
+
.response(new_response_handler
|
|
32
|
+
.deserializer(APIHelper.method(:custom_type_deserializer))
|
|
33
|
+
.deserialize_into(ListProjectsResponse.method(:from_hash))
|
|
34
|
+
.is_api_response(true))
|
|
35
|
+
.execute
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# Delete a project for a deployment you have access to. This will also
|
|
39
|
+
# delete all of the associated findings.
|
|
40
|
+
# @param [String] deployment_slug Required parameter: TODO: type description
|
|
41
|
+
# here
|
|
42
|
+
# @param [String] project_name Required parameter: TODO: type description
|
|
43
|
+
# here
|
|
44
|
+
# @return [ApiResponse] Complete http response with raw body and status code.
|
|
45
|
+
def projects_service_delete_project(deployment_slug,
|
|
46
|
+
project_name)
|
|
47
|
+
@api_call
|
|
48
|
+
.request(new_request_builder(HttpMethodEnum::DELETE,
|
|
49
|
+
'/api/v1/deployments/{deploymentSlug}/projects/{projectName}',
|
|
50
|
+
Server::SEMGREP)
|
|
51
|
+
.template_param(new_parameter(deployment_slug, key: 'deploymentSlug')
|
|
52
|
+
.is_required(true)
|
|
53
|
+
.should_encode(true))
|
|
54
|
+
.template_param(new_parameter(project_name, key: 'projectName')
|
|
55
|
+
.is_required(true)
|
|
56
|
+
.should_encode(true))
|
|
57
|
+
.header_param(new_parameter('application/json', key: 'accept'))
|
|
58
|
+
.auth(Single.new('SemgrepWebToken')))
|
|
59
|
+
.response(new_response_handler
|
|
60
|
+
.deserializer(APIHelper.method(:custom_type_deserializer))
|
|
61
|
+
.deserialize_into(DeleteProjectResponse.method(:from_hash))
|
|
62
|
+
.is_api_response(true))
|
|
63
|
+
.execute
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# Retrieve details for a single project associated with a deployment that
|
|
67
|
+
# you have access to.
|
|
68
|
+
# @param [String] deployment_slug Required parameter: TODO: type description
|
|
69
|
+
# here
|
|
70
|
+
# @param [String] project_name Required parameter: TODO: type description
|
|
71
|
+
# here
|
|
72
|
+
# @return [ApiResponse] Complete http response with raw body and status code.
|
|
73
|
+
def projects_service_get_project(deployment_slug,
|
|
74
|
+
project_name)
|
|
75
|
+
@api_call
|
|
76
|
+
.request(new_request_builder(HttpMethodEnum::GET,
|
|
77
|
+
'/api/v1/deployments/{deploymentSlug}/projects/{projectName}',
|
|
78
|
+
Server::SEMGREP)
|
|
79
|
+
.template_param(new_parameter(deployment_slug, key: 'deploymentSlug')
|
|
80
|
+
.is_required(true)
|
|
81
|
+
.should_encode(true))
|
|
82
|
+
.template_param(new_parameter(project_name, key: 'projectName')
|
|
83
|
+
.is_required(true)
|
|
84
|
+
.should_encode(true))
|
|
85
|
+
.header_param(new_parameter('application/json', key: 'accept'))
|
|
86
|
+
.auth(Single.new('SemgrepWebToken')))
|
|
87
|
+
.response(new_response_handler
|
|
88
|
+
.deserializer(APIHelper.method(:custom_type_deserializer))
|
|
89
|
+
.deserialize_into(GetProjectResponse.method(:from_hash))
|
|
90
|
+
.is_api_response(true))
|
|
91
|
+
.execute
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
# Update attributes for the project using the value passed in to the request
|
|
95
|
+
# body.
|
|
96
|
+
# Note: The only attribute that is supported as of January 2023 is `tags`.
|
|
97
|
+
# @param [String] deployment_slug Required parameter: TODO: type description
|
|
98
|
+
# here
|
|
99
|
+
# @param [String] project_name Required parameter: TODO: type description
|
|
100
|
+
# here
|
|
101
|
+
# @param [UpdateProjectRequest] body Required parameter: TODO: type
|
|
102
|
+
# description here
|
|
103
|
+
# @return [ApiResponse] Complete http response with raw body and status code.
|
|
104
|
+
def projects_service_update_project(deployment_slug,
|
|
105
|
+
project_name,
|
|
106
|
+
body)
|
|
107
|
+
@api_call
|
|
108
|
+
.request(new_request_builder(HttpMethodEnum::PATCH,
|
|
109
|
+
'/api/v1/deployments/{deploymentSlug}/projects/{projectName}',
|
|
110
|
+
Server::SEMGREP)
|
|
111
|
+
.template_param(new_parameter(deployment_slug, key: 'deploymentSlug')
|
|
112
|
+
.is_required(true)
|
|
113
|
+
.should_encode(true))
|
|
114
|
+
.template_param(new_parameter(project_name, key: 'projectName')
|
|
115
|
+
.is_required(true)
|
|
116
|
+
.should_encode(true))
|
|
117
|
+
.header_param(new_parameter('application/json', key: 'Content-Type'))
|
|
118
|
+
.body_param(new_parameter(body)
|
|
119
|
+
.is_required(true))
|
|
120
|
+
.header_param(new_parameter('application/json', key: 'accept'))
|
|
121
|
+
.body_serializer(proc do |param| param.to_json unless param.nil? end)
|
|
122
|
+
.auth(Single.new('SemgrepWebToken')))
|
|
123
|
+
.response(new_response_handler
|
|
124
|
+
.deserializer(APIHelper.method(:custom_type_deserializer))
|
|
125
|
+
.deserialize_into(UpdateProjectResponse.method(:from_hash))
|
|
126
|
+
.is_api_response(true))
|
|
127
|
+
.execute
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
# Enable or disable
|
|
131
|
+
# [Semgrep Managed Scans](/docs/deployment/managed-scanning/overview)
|
|
132
|
+
# for a project.
|
|
133
|
+
# @param [String] deployment_slug Required parameter: TODO: type description
|
|
134
|
+
# here
|
|
135
|
+
# @param [String] project_name Required parameter: TODO: type description
|
|
136
|
+
# here
|
|
137
|
+
# @param [ToggleProjectManagedScanRequest] body Required parameter: TODO:
|
|
138
|
+
# type description here
|
|
139
|
+
# @return [ApiResponse] Complete http response with raw body and status code.
|
|
140
|
+
def projects_service_toggle_project_managed_scan(deployment_slug,
|
|
141
|
+
project_name,
|
|
142
|
+
body)
|
|
143
|
+
@api_call
|
|
144
|
+
.request(new_request_builder(HttpMethodEnum::PATCH,
|
|
145
|
+
'/api/v1/deployments/{deploymentSlug}/projects/{projectName}/managed-scan',
|
|
146
|
+
Server::SEMGREP)
|
|
147
|
+
.template_param(new_parameter(deployment_slug, key: 'deploymentSlug')
|
|
148
|
+
.is_required(true)
|
|
149
|
+
.should_encode(true))
|
|
150
|
+
.template_param(new_parameter(project_name, key: 'projectName')
|
|
151
|
+
.is_required(true)
|
|
152
|
+
.should_encode(true))
|
|
153
|
+
.header_param(new_parameter('application/json', key: 'Content-Type'))
|
|
154
|
+
.body_param(new_parameter(body)
|
|
155
|
+
.is_required(true))
|
|
156
|
+
.header_param(new_parameter('application/json', key: 'accept'))
|
|
157
|
+
.body_serializer(proc do |param| param.to_json unless param.nil? end)
|
|
158
|
+
.auth(Single.new('SemgrepWebToken')))
|
|
159
|
+
.response(new_response_handler
|
|
160
|
+
.deserializer(APIHelper.method(:custom_type_deserializer))
|
|
161
|
+
.deserialize_into(ToggleProjectManagedScanResponse.method(:from_hash))
|
|
162
|
+
.is_api_response(true))
|
|
163
|
+
.execute
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
# Remove tags from a project for a deployment you have access to.
|
|
167
|
+
# This request will not delete project tags from the deployment and will
|
|
168
|
+
# only remove
|
|
169
|
+
# them from the requested project. Any other projects associated with the
|
|
170
|
+
# requested
|
|
171
|
+
# tag will remain unaffected.
|
|
172
|
+
# @param [String] deployment_slug Required parameter: TODO: type description
|
|
173
|
+
# here
|
|
174
|
+
# @param [String] project_name Required parameter: TODO: type description
|
|
175
|
+
# here
|
|
176
|
+
# @param [Array[String]] tags Optional parameter: TODO: type description
|
|
177
|
+
# here
|
|
178
|
+
# @return [ApiResponse] Complete http response with raw body and status code.
|
|
179
|
+
def projects_service_delete_project_tags(deployment_slug,
|
|
180
|
+
project_name,
|
|
181
|
+
tags: nil)
|
|
182
|
+
@api_call
|
|
183
|
+
.request(new_request_builder(HttpMethodEnum::DELETE,
|
|
184
|
+
'/api/v1/deployments/{deploymentSlug}/projects/{projectName}/tags',
|
|
185
|
+
Server::SEMGREP)
|
|
186
|
+
.template_param(new_parameter(deployment_slug, key: 'deploymentSlug')
|
|
187
|
+
.is_required(true)
|
|
188
|
+
.should_encode(true))
|
|
189
|
+
.template_param(new_parameter(project_name, key: 'projectName')
|
|
190
|
+
.is_required(true)
|
|
191
|
+
.should_encode(true))
|
|
192
|
+
.query_param(new_parameter(tags, key: 'tags'))
|
|
193
|
+
.header_param(new_parameter('application/json', key: 'accept'))
|
|
194
|
+
.auth(Single.new('SemgrepWebToken')))
|
|
195
|
+
.response(new_response_handler
|
|
196
|
+
.deserializer(APIHelper.method(:custom_type_deserializer))
|
|
197
|
+
.deserialize_into(DeleteProjectTagsResponse.method(:from_hash))
|
|
198
|
+
.is_api_response(true))
|
|
199
|
+
.execute
|
|
200
|
+
end
|
|
201
|
+
|
|
202
|
+
# Add tags to a project for a deployment you have access to.
|
|
203
|
+
# Any project tags that do not already exist for the deployment will be
|
|
204
|
+
# created automatically and associated with the project.
|
|
205
|
+
# @param [String] deployment_slug Required parameter: TODO: type description
|
|
206
|
+
# here
|
|
207
|
+
# @param [String] project_name Required parameter: TODO: type description
|
|
208
|
+
# here
|
|
209
|
+
# @param [AddProjectTagsRequest] body Required parameter: TODO: type
|
|
210
|
+
# description here
|
|
211
|
+
# @return [ApiResponse] Complete http response with raw body and status code.
|
|
212
|
+
def projects_service_add_project_tags(deployment_slug,
|
|
213
|
+
project_name,
|
|
214
|
+
body)
|
|
215
|
+
@api_call
|
|
216
|
+
.request(new_request_builder(HttpMethodEnum::PUT,
|
|
217
|
+
'/api/v1/deployments/{deploymentSlug}/projects/{projectName}/tags',
|
|
218
|
+
Server::SEMGREP)
|
|
219
|
+
.template_param(new_parameter(deployment_slug, key: 'deploymentSlug')
|
|
220
|
+
.is_required(true)
|
|
221
|
+
.should_encode(true))
|
|
222
|
+
.template_param(new_parameter(project_name, key: 'projectName')
|
|
223
|
+
.is_required(true)
|
|
224
|
+
.should_encode(true))
|
|
225
|
+
.header_param(new_parameter('application/json', key: 'Content-Type'))
|
|
226
|
+
.body_param(new_parameter(body)
|
|
227
|
+
.is_required(true))
|
|
228
|
+
.header_param(new_parameter('application/json', key: 'accept'))
|
|
229
|
+
.body_serializer(proc do |param| param.to_json unless param.nil? end)
|
|
230
|
+
.auth(Single.new('SemgrepWebToken')))
|
|
231
|
+
.response(new_response_handler
|
|
232
|
+
.deserializer(APIHelper.method(:custom_type_deserializer))
|
|
233
|
+
.deserialize_into(AddProjectTagsResponse.method(:from_hash))
|
|
234
|
+
.is_api_response(true))
|
|
235
|
+
.execute
|
|
236
|
+
end
|
|
237
|
+
end
|
|
238
|
+
end
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# semgrep_web_app
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v3.0 (
|
|
4
|
+
# https://www.apimatic.io ).
|
|
5
|
+
|
|
6
|
+
module SemgrepWebApp
|
|
7
|
+
# ScansServiceApi
|
|
8
|
+
class ScansServiceApi < BaseApi
|
|
9
|
+
# Request the details of a scan including the associated deployment,
|
|
10
|
+
# repository, and commit information.
|
|
11
|
+
# @param [String] deployment_id Required parameter: TODO: type description
|
|
12
|
+
# here
|
|
13
|
+
# @param [String] scan_id Required parameter: TODO: type description here
|
|
14
|
+
# @return [ApiResponse] Complete http response with raw body and status code.
|
|
15
|
+
def scans_service_get_scan(deployment_id,
|
|
16
|
+
scan_id)
|
|
17
|
+
@api_call
|
|
18
|
+
.request(new_request_builder(HttpMethodEnum::GET,
|
|
19
|
+
'/api/v1/deployments/{deploymentId}/scan/{scanId}',
|
|
20
|
+
Server::SEMGREP)
|
|
21
|
+
.template_param(new_parameter(deployment_id, key: 'deploymentId')
|
|
22
|
+
.is_required(true)
|
|
23
|
+
.should_encode(true))
|
|
24
|
+
.template_param(new_parameter(scan_id, key: 'scanId')
|
|
25
|
+
.is_required(true)
|
|
26
|
+
.should_encode(true))
|
|
27
|
+
.header_param(new_parameter('application/json', key: 'accept'))
|
|
28
|
+
.auth(Single.new('SemgrepWebToken')))
|
|
29
|
+
.response(new_response_handler
|
|
30
|
+
.deserializer(APIHelper.method(:custom_type_deserializer))
|
|
31
|
+
.deserialize_into(ProtosOpenapiV1GetScanResponse.method(:from_hash))
|
|
32
|
+
.is_api_response(true))
|
|
33
|
+
.execute
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# List the scans associated with a particular repository over the past 30
|
|
37
|
+
# days.
|
|
38
|
+
# @param [String] deployment_id Required parameter: TODO: type description
|
|
39
|
+
# here
|
|
40
|
+
# @param [SearchScansRequest] body Required parameter: TODO: type
|
|
41
|
+
# description here
|
|
42
|
+
# @return [ApiResponse] Complete http response with raw body and status code.
|
|
43
|
+
def scans_service_search_scans(deployment_id,
|
|
44
|
+
body)
|
|
45
|
+
@api_call
|
|
46
|
+
.request(new_request_builder(HttpMethodEnum::POST,
|
|
47
|
+
'/api/v1/deployments/{deploymentId}/scans/search',
|
|
48
|
+
Server::SEMGREP)
|
|
49
|
+
.template_param(new_parameter(deployment_id, key: 'deploymentId')
|
|
50
|
+
.is_required(true)
|
|
51
|
+
.should_encode(true))
|
|
52
|
+
.header_param(new_parameter('application/json', key: 'Content-Type'))
|
|
53
|
+
.body_param(new_parameter(body)
|
|
54
|
+
.is_required(true))
|
|
55
|
+
.header_param(new_parameter('application/json', key: 'accept'))
|
|
56
|
+
.body_serializer(proc do |param| param.to_json unless param.nil? end)
|
|
57
|
+
.auth(Single.new('SemgrepWebToken')))
|
|
58
|
+
.response(new_response_handler
|
|
59
|
+
.deserializer(APIHelper.method(:custom_type_deserializer))
|
|
60
|
+
.deserialize_into(ProtosOpenapiV1SearchScansResponse.method(:from_hash))
|
|
61
|
+
.is_api_response(true))
|
|
62
|
+
.execute
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# semgrep_web_app
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v3.0 (
|
|
4
|
+
# https://www.apimatic.io ).
|
|
5
|
+
|
|
6
|
+
module SemgrepWebApp
|
|
7
|
+
# SecretsServiceApi
|
|
8
|
+
class SecretsServiceApi < BaseApi
|
|
9
|
+
# TODO: type endpoint description here
|
|
10
|
+
# @param [String] deployment_id Required parameter: TODO: type description
|
|
11
|
+
# here
|
|
12
|
+
# @param [String] cursor Optional parameter: TODO: type description here
|
|
13
|
+
# @param [Integer] limit Optional parameter: TODO: type description here
|
|
14
|
+
# @param [DateTime] since Optional parameter: TODO: type description here
|
|
15
|
+
# @param [Array[ValidationState3]] validation_state Optional parameter:
|
|
16
|
+
# TODO: type description here
|
|
17
|
+
# @param [Status8] status Optional parameter:
|
|
18
|
+
# Example:FINDING_STATUS_UNSPECIFIED
|
|
19
|
+
# @param [Array[Severity5]] severity Optional parameter: TODO: type
|
|
20
|
+
# description here
|
|
21
|
+
# @param [Array[String]] repo Optional parameter: TODO: type description
|
|
22
|
+
# here
|
|
23
|
+
# @return [ApiResponse] Complete http response with raw body and status code.
|
|
24
|
+
def secrets_service_list_secrets_path(deployment_id,
|
|
25
|
+
cursor: nil,
|
|
26
|
+
limit: nil,
|
|
27
|
+
since: nil,
|
|
28
|
+
validation_state: nil,
|
|
29
|
+
status: Status8::FINDING_STATUS_UNSPECIFIED,
|
|
30
|
+
severity: nil,
|
|
31
|
+
repo: nil)
|
|
32
|
+
@api_call
|
|
33
|
+
.request(new_request_builder(HttpMethodEnum::GET,
|
|
34
|
+
'/api/v1/deployments/{deploymentId}/secrets',
|
|
35
|
+
Server::SEMGREP)
|
|
36
|
+
.template_param(new_parameter(deployment_id, key: 'deploymentId')
|
|
37
|
+
.is_required(true)
|
|
38
|
+
.should_encode(true))
|
|
39
|
+
.query_param(new_parameter(cursor, key: 'cursor'))
|
|
40
|
+
.query_param(new_parameter(limit, key: 'limit'))
|
|
41
|
+
.query_param(new_parameter(since, key: 'since'))
|
|
42
|
+
.query_param(new_parameter(validation_state, key: 'validationState'))
|
|
43
|
+
.query_param(new_parameter(status, key: 'status'))
|
|
44
|
+
.query_param(new_parameter(severity, key: 'severity'))
|
|
45
|
+
.query_param(new_parameter(repo, key: 'repo'))
|
|
46
|
+
.header_param(new_parameter('application/json', key: 'accept'))
|
|
47
|
+
.auth(Single.new('SemgrepWebToken')))
|
|
48
|
+
.response(new_response_handler
|
|
49
|
+
.deserializer(APIHelper.method(:custom_type_deserializer))
|
|
50
|
+
.deserialize_into(ProtosOpenapiV1ListSecretsPathResponse.method(:from_hash))
|
|
51
|
+
.is_api_response(true))
|
|
52
|
+
.execute
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
# semgrep_web_app
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v3.0 (
|
|
4
|
+
# https://www.apimatic.io ).
|
|
5
|
+
|
|
6
|
+
module SemgrepWebApp
|
|
7
|
+
# SupplyChainServiceApi
|
|
8
|
+
class SupplyChainServiceApi < BaseApi
|
|
9
|
+
# TODO: type endpoint description here
|
|
10
|
+
# @param [String] deployment_id Required parameter: TODO: type description
|
|
11
|
+
# here
|
|
12
|
+
# @param [ListDependenciesRequest] body Required parameter: TODO: type
|
|
13
|
+
# description here
|
|
14
|
+
# @return [ApiResponse] Complete http response with raw body and status code.
|
|
15
|
+
def supply_chain_service_list_dependencies(deployment_id,
|
|
16
|
+
body)
|
|
17
|
+
@api_call
|
|
18
|
+
.request(new_request_builder(HttpMethodEnum::POST,
|
|
19
|
+
'/api/v1/deployments/{deploymentId}/dependencies',
|
|
20
|
+
Server::SEMGREP)
|
|
21
|
+
.template_param(new_parameter(deployment_id, key: 'deploymentId')
|
|
22
|
+
.is_required(true)
|
|
23
|
+
.should_encode(true))
|
|
24
|
+
.header_param(new_parameter('application/json', key: 'Content-Type'))
|
|
25
|
+
.body_param(new_parameter(body)
|
|
26
|
+
.is_required(true))
|
|
27
|
+
.header_param(new_parameter('application/json', key: 'accept'))
|
|
28
|
+
.body_serializer(proc do |param| param.to_json unless param.nil? end)
|
|
29
|
+
.auth(Single.new('SemgrepWebToken')))
|
|
30
|
+
.response(new_response_handler
|
|
31
|
+
.deserializer(APIHelper.method(:custom_type_deserializer))
|
|
32
|
+
.deserialize_into(ListDependenciesResponse.method(:from_hash))
|
|
33
|
+
.is_api_response(true))
|
|
34
|
+
.execute
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# TODO: type endpoint description here
|
|
38
|
+
# @param [String] deployment_id Required parameter: TODO: type description
|
|
39
|
+
# here
|
|
40
|
+
# @param [ListRepositoriesForDependenciesRequest] body Required parameter:
|
|
41
|
+
# TODO: type description here
|
|
42
|
+
# @return [ApiResponse] Complete http response with raw body and status code.
|
|
43
|
+
def supply_chain_service_list_repositories_for_dependencies(deployment_id,
|
|
44
|
+
body)
|
|
45
|
+
@api_call
|
|
46
|
+
.request(new_request_builder(HttpMethodEnum::POST,
|
|
47
|
+
'/api/v1/deployments/{deploymentId}/dependencies/repositories',
|
|
48
|
+
Server::SEMGREP)
|
|
49
|
+
.template_param(new_parameter(deployment_id, key: 'deploymentId')
|
|
50
|
+
.is_required(true)
|
|
51
|
+
.should_encode(true))
|
|
52
|
+
.header_param(new_parameter('application/json', key: 'Content-Type'))
|
|
53
|
+
.body_param(new_parameter(body)
|
|
54
|
+
.is_required(true))
|
|
55
|
+
.header_param(new_parameter('application/json', key: 'accept'))
|
|
56
|
+
.body_serializer(proc do |param| param.to_json unless param.nil? end)
|
|
57
|
+
.auth(Single.new('SemgrepWebToken')))
|
|
58
|
+
.response(new_response_handler
|
|
59
|
+
.deserializer(APIHelper.method(:custom_type_deserializer))
|
|
60
|
+
.deserialize_into(ListRepositoriesForDependenciesResponse.method(:from_hash))
|
|
61
|
+
.is_api_response(true))
|
|
62
|
+
.execute
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# TODO: type endpoint description here
|
|
66
|
+
# @param [String] deployment_id Required parameter: TODO: type description
|
|
67
|
+
# here
|
|
68
|
+
# @param [String] repository_id Required parameter: TODO: type description
|
|
69
|
+
# here
|
|
70
|
+
# @param [ListLockfilesForDependenciesRequest] body Required parameter:
|
|
71
|
+
# TODO: type description here
|
|
72
|
+
# @return [ApiResponse] Complete http response with raw body and status code.
|
|
73
|
+
def supply_chain_service_list_lockfiles_for_dependencies(deployment_id,
|
|
74
|
+
repository_id,
|
|
75
|
+
body)
|
|
76
|
+
@api_call
|
|
77
|
+
.request(new_request_builder(HttpMethodEnum::POST,
|
|
78
|
+
'/api/v1/deployments/{deploymentId}/dependencies/repositories/{repositoryId}/lockfiles',
|
|
79
|
+
Server::SEMGREP)
|
|
80
|
+
.template_param(new_parameter(deployment_id, key: 'deploymentId')
|
|
81
|
+
.is_required(true)
|
|
82
|
+
.should_encode(true))
|
|
83
|
+
.template_param(new_parameter(repository_id, key: 'repositoryId')
|
|
84
|
+
.is_required(true)
|
|
85
|
+
.should_encode(true))
|
|
86
|
+
.header_param(new_parameter('application/json', key: 'Content-Type'))
|
|
87
|
+
.body_param(new_parameter(body)
|
|
88
|
+
.is_required(true))
|
|
89
|
+
.header_param(new_parameter('application/json', key: 'accept'))
|
|
90
|
+
.body_serializer(proc do |param| param.to_json unless param.nil? end)
|
|
91
|
+
.auth(Single.new('SemgrepWebToken')))
|
|
92
|
+
.response(new_response_handler
|
|
93
|
+
.deserializer(APIHelper.method(:custom_type_deserializer))
|
|
94
|
+
.deserialize_into(ListLockfilesForDependenciesResponse.method(:from_hash))
|
|
95
|
+
.is_api_response(true))
|
|
96
|
+
.execute
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
# TODO: type endpoint description here
|
|
100
|
+
# @param [String] deployment_id Required parameter: TODO: type description
|
|
101
|
+
# here
|
|
102
|
+
# @param [CreateSbomExportRequest] body Required parameter: TODO: type
|
|
103
|
+
# description here
|
|
104
|
+
# @return [ApiResponse] Complete http response with raw body and status code.
|
|
105
|
+
def supply_chain_service_create_sbom_export(deployment_id,
|
|
106
|
+
body)
|
|
107
|
+
@api_call
|
|
108
|
+
.request(new_request_builder(HttpMethodEnum::POST,
|
|
109
|
+
'/api/v1/deployments/{deploymentId}/sbom/export',
|
|
110
|
+
Server::SEMGREP)
|
|
111
|
+
.template_param(new_parameter(deployment_id, key: 'deploymentId')
|
|
112
|
+
.is_required(true)
|
|
113
|
+
.should_encode(true))
|
|
114
|
+
.header_param(new_parameter('application/json', key: 'Content-Type'))
|
|
115
|
+
.body_param(new_parameter(body)
|
|
116
|
+
.is_required(true))
|
|
117
|
+
.header_param(new_parameter('application/json', key: 'accept'))
|
|
118
|
+
.body_serializer(proc do |param| param.to_json unless param.nil? end)
|
|
119
|
+
.auth(Single.new('SemgrepWebToken')))
|
|
120
|
+
.response(new_response_handler
|
|
121
|
+
.deserializer(APIHelper.method(:custom_type_deserializer))
|
|
122
|
+
.deserialize_into(CreateSbomExportResponse.method(:from_hash))
|
|
123
|
+
.is_api_response(true))
|
|
124
|
+
.execute
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
# TODO: type endpoint description here
|
|
128
|
+
# @param [String] deployment_id Required parameter: TODO: type description
|
|
129
|
+
# here
|
|
130
|
+
# @param [String] task_token Required parameter: TODO: type description
|
|
131
|
+
# here
|
|
132
|
+
# @return [ApiResponse] Complete http response with raw body and status code.
|
|
133
|
+
def supply_chain_service_get_sbom_export(deployment_id,
|
|
134
|
+
task_token)
|
|
135
|
+
@api_call
|
|
136
|
+
.request(new_request_builder(HttpMethodEnum::GET,
|
|
137
|
+
'/api/v1/deployments/{deploymentId}/sbom/export/{taskToken}',
|
|
138
|
+
Server::SEMGREP)
|
|
139
|
+
.template_param(new_parameter(deployment_id, key: 'deploymentId')
|
|
140
|
+
.is_required(true)
|
|
141
|
+
.should_encode(true))
|
|
142
|
+
.template_param(new_parameter(task_token, key: 'taskToken')
|
|
143
|
+
.is_required(true)
|
|
144
|
+
.should_encode(true))
|
|
145
|
+
.header_param(new_parameter('application/json', key: 'accept'))
|
|
146
|
+
.auth(Single.new('SemgrepWebToken')))
|
|
147
|
+
.response(new_response_handler
|
|
148
|
+
.deserializer(APIHelper.method(:custom_type_deserializer))
|
|
149
|
+
.deserialize_into(GetSbomExportResponse.method(:from_hash))
|
|
150
|
+
.is_api_response(true))
|
|
151
|
+
.execute
|
|
152
|
+
end
|
|
153
|
+
end
|
|
154
|
+
end
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# semgrep_web_app
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v3.0 (
|
|
4
|
+
# https://www.apimatic.io ).
|
|
5
|
+
|
|
6
|
+
module SemgrepWebApp
|
|
7
|
+
# TicketingServiceApi
|
|
8
|
+
class TicketingServiceApi < BaseApi
|
|
9
|
+
# Unlink a Jira ticket by its ID
|
|
10
|
+
# @param [String] deployment_id Required parameter: TODO: type description
|
|
11
|
+
# here
|
|
12
|
+
# @param [Integer] external_ticket_id Required parameter: TODO: type
|
|
13
|
+
# description here
|
|
14
|
+
# @return [ApiResponse] Complete http response with raw body and status code.
|
|
15
|
+
def ticketing_service_delete_ticket(deployment_id,
|
|
16
|
+
external_ticket_id)
|
|
17
|
+
@api_call
|
|
18
|
+
.request(new_request_builder(HttpMethodEnum::DELETE,
|
|
19
|
+
'/api/v1/deployments/{deploymentId}/ticketing/v2/tickets/{externalTicketId}',
|
|
20
|
+
Server::SEMGREP)
|
|
21
|
+
.template_param(new_parameter(deployment_id, key: 'deploymentId')
|
|
22
|
+
.is_required(true)
|
|
23
|
+
.should_encode(true))
|
|
24
|
+
.template_param(new_parameter(external_ticket_id, key: 'externalTicketId')
|
|
25
|
+
.is_required(true)
|
|
26
|
+
.should_encode(true))
|
|
27
|
+
.header_param(new_parameter('application/json', key: 'accept'))
|
|
28
|
+
.auth(Single.new('SemgrepWebToken')))
|
|
29
|
+
.response(new_response_handler
|
|
30
|
+
.deserializer(APIHelper.method(:custom_type_deserializer))
|
|
31
|
+
.deserialize_into(ProtosOpenapiV1DeleteTicketResponse.method(:from_hash))
|
|
32
|
+
.is_api_response(true))
|
|
33
|
+
.execute
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# Link an existing external ticket (e.g. Jira) to one or more Semgrep
|
|
37
|
+
# findings by providing the ticket URL and a list of finding IDs. This does
|
|
38
|
+
# not create a ticket in your issue tracker — it only records the
|
|
39
|
+
# association in Semgrep. If a finding is already linked to a different
|
|
40
|
+
# ticket, the existing link is replaced. Requires a configured ticketing
|
|
41
|
+
# integration.
|
|
42
|
+
# @param [String] deployment_id Required parameter: TODO: type description
|
|
43
|
+
# here
|
|
44
|
+
# @param [LinkTicketRequest] body Required parameter: TODO: type description
|
|
45
|
+
# here
|
|
46
|
+
# @return [ApiResponse] Complete http response with raw body and status code.
|
|
47
|
+
def ticketing_service_link_ticket(deployment_id,
|
|
48
|
+
body)
|
|
49
|
+
@api_call
|
|
50
|
+
.request(new_request_builder(HttpMethodEnum::POST,
|
|
51
|
+
'/api/v1/deployments/{deploymentId}/tickets/link',
|
|
52
|
+
Server::SEMGREP)
|
|
53
|
+
.template_param(new_parameter(deployment_id, key: 'deploymentId')
|
|
54
|
+
.is_required(true)
|
|
55
|
+
.should_encode(true))
|
|
56
|
+
.header_param(new_parameter('application/json', key: 'Content-Type'))
|
|
57
|
+
.body_param(new_parameter(body)
|
|
58
|
+
.is_required(true))
|
|
59
|
+
.header_param(new_parameter('application/json', key: 'accept'))
|
|
60
|
+
.body_serializer(proc do |param| param.to_json unless param.nil? end)
|
|
61
|
+
.auth(Single.new('SemgrepWebToken')))
|
|
62
|
+
.response(new_response_handler
|
|
63
|
+
.deserializer(APIHelper.method(:custom_type_deserializer))
|
|
64
|
+
.deserialize_into(ProtosOpenapiV1LinkTicketResponse.method(:from_hash))
|
|
65
|
+
.is_api_response(true))
|
|
66
|
+
.execute
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# Remove the ticket association from one or more Semgrep findings by
|
|
70
|
+
# providing a list of finding IDs. This does not delete the ticket in your
|
|
71
|
+
# issue tracker — it only removes the association in Semgrep.
|
|
72
|
+
# @param [String] deployment_id Required parameter: TODO: type description
|
|
73
|
+
# here
|
|
74
|
+
# @param [UnlinkTicketRequest] body Required parameter: TODO: type
|
|
75
|
+
# description here
|
|
76
|
+
# @return [ApiResponse] Complete http response with raw body and status code.
|
|
77
|
+
def ticketing_service_unlink_ticket(deployment_id,
|
|
78
|
+
body)
|
|
79
|
+
@api_call
|
|
80
|
+
.request(new_request_builder(HttpMethodEnum::POST,
|
|
81
|
+
'/api/v1/deployments/{deploymentId}/tickets/unlink',
|
|
82
|
+
Server::SEMGREP)
|
|
83
|
+
.template_param(new_parameter(deployment_id, key: 'deploymentId')
|
|
84
|
+
.is_required(true)
|
|
85
|
+
.should_encode(true))
|
|
86
|
+
.header_param(new_parameter('application/json', key: 'Content-Type'))
|
|
87
|
+
.body_param(new_parameter(body)
|
|
88
|
+
.is_required(true))
|
|
89
|
+
.header_param(new_parameter('application/json', key: 'accept'))
|
|
90
|
+
.body_serializer(proc do |param| param.to_json unless param.nil? end)
|
|
91
|
+
.auth(Single.new('SemgrepWebToken')))
|
|
92
|
+
.response(new_response_handler
|
|
93
|
+
.deserializer(APIHelper.method(:custom_type_deserializer))
|
|
94
|
+
.deserialize_into(ProtosOpenapiV1UnlinkTicketResponse.method(:from_hash))
|
|
95
|
+
.is_api_response(true))
|
|
96
|
+
.execute
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
# Create Jira tickets for your findings. You can create tickets by passing
|
|
100
|
+
# in a list of issue_ids or by passing in filter query parameters to
|
|
101
|
+
# dynamically select findings. If passing in filters, Semgrep will skip
|
|
102
|
+
# already ticketed findings. This endpoint is synchronous, so it may take
|
|
103
|
+
# some time for your request to resolve. Unlike creating tickets in-app, if
|
|
104
|
+
# ticket creation fails we won't automatically retry. This endpoint accepts
|
|
105
|
+
# a limit parameter (defaulting to 20) to limit the number of tickets
|
|
106
|
+
# created per request. If you specify a list of issue_ids greater than this
|
|
107
|
+
# limit, or your selected filters match on a number of issues greater than
|
|
108
|
+
# this limit, issues that were not ticketed are included in the Failed part
|
|
109
|
+
# of the response object. You can send another request to create tickets for
|
|
110
|
+
# these skipped issues. By default, findings belonging to the same
|
|
111
|
+
# repository and the same rule will be grouped together into a single Jira
|
|
112
|
+
# ticket. You can override this using the group_issues query parameter. Up
|
|
113
|
+
# to 50 issues can be grouped into a single ticket. You can optionally
|
|
114
|
+
# override the Jira project you create tickets in by passing in a Jira
|
|
115
|
+
# project ID as jira_project_id (the numeric ID rather than the project
|
|
116
|
+
# key). You can fetch this ID using the Jira API.
|
|
117
|
+
# @param [String] deployment_slug Required parameter: TODO: type description
|
|
118
|
+
# here
|
|
119
|
+
# @param [CreateTicketRequest] body Required parameter: TODO: type
|
|
120
|
+
# description here
|
|
121
|
+
# @return [ApiResponse] Complete http response with raw body and status code.
|
|
122
|
+
def ticketing_service_create_ticket(deployment_slug,
|
|
123
|
+
body)
|
|
124
|
+
@api_call
|
|
125
|
+
.request(new_request_builder(HttpMethodEnum::POST,
|
|
126
|
+
'/api/v1/deployments/{deploymentSlug}/tickets',
|
|
127
|
+
Server::SEMGREP)
|
|
128
|
+
.template_param(new_parameter(deployment_slug, key: 'deploymentSlug')
|
|
129
|
+
.is_required(true)
|
|
130
|
+
.should_encode(true))
|
|
131
|
+
.header_param(new_parameter('application/json', key: 'Content-Type'))
|
|
132
|
+
.body_param(new_parameter(body)
|
|
133
|
+
.is_required(true))
|
|
134
|
+
.header_param(new_parameter('application/json', key: 'accept'))
|
|
135
|
+
.body_serializer(proc do |param| param.to_json unless param.nil? end)
|
|
136
|
+
.auth(Single.new('SemgrepWebToken')))
|
|
137
|
+
.response(new_response_handler
|
|
138
|
+
.deserializer(APIHelper.method(:custom_type_deserializer))
|
|
139
|
+
.deserialize_into(ProtosOpenapiV1CreateTicketResponse.method(:from_hash))
|
|
140
|
+
.is_api_response(true))
|
|
141
|
+
.execute
|
|
142
|
+
end
|
|
143
|
+
end
|
|
144
|
+
end
|