Class: SemgrepWebApp::CreateTicketRequest
- Inherits:
-
BaseModel
- Object
- CoreLibrary::BaseModel
- BaseModel
- SemgrepWebApp::CreateTicketRequest
- Defined in:
- lib/semgrep_web_app/models/create_ticket_request.rb
Overview
Create ticket request
Instance Attribute Summary collapse
-
#autotriage_verdict ⇒ AutotriageVerdict
The autotriage verdict to filter by.
-
#categories ⇒ Array[String]
List of categories to filter by.
-
#component_tags ⇒ Array[String]
List of component tags to filter by.
-
#confidence ⇒ Confidence3
List of confidence levels to filter by.
-
#dependencies ⇒ Array[String]
Filter by dependency name.
-
#deployment_slug ⇒ String
Deployment slug.
-
#epss_probability ⇒ EpssProbability
Filter by EPSS probability (likelihood of exploit).
-
#exposures ⇒ Exposures
Filter by exposure (reachability type).
-
#group_issues ⇒ TrueClass | FalseClass
Whether or not to group findings from the same rule and repository into a single ticket.
-
#include_historical ⇒ TrueClass | FalseClass
Whether to include historical findings.
-
#issue_ids ⇒ Array[String]
An array of issue IDs to act on.
-
#issue_type ⇒ IssueType1
Type of findings to create tickets for.
-
#jira_project_id ⇒ String
Optional numeric Jira project ID to associate with the created tickets.
-
#limit ⇒ Integer
Max number of tickets to create.
-
#policies ⇒ Array[String]
List of policy modes to filter by.
-
#policy_mode ⇒ PolicyMode1
List of policy modes to filter by.
-
#pro_only ⇒ TrueClass | FalseClass
Filter by whether a finding is only available with Semgrep Pro features.
-
#project_tags ⇒ Array[String]
List of project tags to filter by.
-
#ref ⇒ String
Branch reference to filter by.
-
#repos ⇒ Array[String]
List of repository names to filter by.
-
#repository_visibility ⇒ RepositoryVisibility
Filter by repository visibility.
-
#rules ⇒ Array[String]
List of rule names to filter by.
-
#ruleset ⇒ Array[String]
List of Semgrep Registry rulesets to filter by.
-
#secret_types ⇒ Array[String]
Filter by type of secret (typically provider-related).
-
#severities ⇒ Severities
List of severities to filter by.
-
#since ⇒ String
Epoch timestamp in seconds.
-
#status ⇒ Status1
The status to filter by.
-
#transitivities ⇒ Transitivities
Filter by transitivity of a dependency.
-
#triage_reasons ⇒ TriageReasons
List of triage reasons to filter by.
-
#validation_state ⇒ ValidationState
Filter by whether a secret could be validated.
Class Method Summary collapse
-
.from_hash(hash) ⇒ Object
Creates an instance of the object from a hash.
-
.names ⇒ Object
A mapping from model property names to API property names.
-
.nullables ⇒ Object
An array for nullable fields.
-
.optionals ⇒ Object
An array for optional fields.
Instance Method Summary collapse
-
#initialize(deployment_slug:, issue_type:, autotriage_verdict: SKIP, categories: SKIP, component_tags: SKIP, confidence: SKIP, dependencies: SKIP, epss_probability: SKIP, exposures: SKIP, group_issues: true, include_historical: SKIP, issue_ids: SKIP, jira_project_id: SKIP, limit: 20, policies: SKIP, policy_mode: SKIP, pro_only: SKIP, project_tags: SKIP, ref: SKIP, repos: SKIP, repository_visibility: SKIP, rules: SKIP, ruleset: SKIP, secret_types: SKIP, severities: SKIP, since: SKIP, status: SKIP, transitivities: SKIP, triage_reasons: SKIP, validation_state: SKIP, additional_properties: nil) ⇒ CreateTicketRequest
constructor
A new instance of CreateTicketRequest.
-
#inspect ⇒ Object
Provides a debugging-friendly string with detailed object information.
-
#to_s ⇒ Object
Provides a human-readable string representation of the object.
Methods inherited from BaseModel
#check_for_conflict, #process_additional_properties, #process_array, #process_basic_value, #process_hash, #to_hash, #to_json
Constructor Details
#initialize(deployment_slug:, issue_type:, autotriage_verdict: SKIP, categories: SKIP, component_tags: SKIP, confidence: SKIP, dependencies: SKIP, epss_probability: SKIP, exposures: SKIP, group_issues: true, include_historical: SKIP, issue_ids: SKIP, jira_project_id: SKIP, limit: 20, policies: SKIP, policy_mode: SKIP, pro_only: SKIP, project_tags: SKIP, ref: SKIP, repos: SKIP, repository_visibility: SKIP, rules: SKIP, ruleset: SKIP, secret_types: SKIP, severities: SKIP, since: SKIP, status: SKIP, transitivities: SKIP, triage_reasons: SKIP, validation_state: SKIP, additional_properties: nil) ⇒ CreateTicketRequest
Returns a new instance of CreateTicketRequest.
222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 222 def initialize(deployment_slug:, issue_type:, autotriage_verdict: SKIP, categories: SKIP, component_tags: SKIP, confidence: SKIP, dependencies: SKIP, epss_probability: SKIP, exposures: SKIP, group_issues: true, include_historical: SKIP, issue_ids: SKIP, jira_project_id: SKIP, limit: 20, policies: SKIP, policy_mode: SKIP, pro_only: SKIP, project_tags: SKIP, ref: SKIP, repos: SKIP, repository_visibility: SKIP, rules: SKIP, ruleset: SKIP, secret_types: SKIP, severities: SKIP, since: SKIP, status: SKIP, transitivities: SKIP, triage_reasons: SKIP, validation_state: SKIP, additional_properties: nil) # Add additional model properties to the instance additional_properties = {} if additional_properties.nil? @autotriage_verdict = autotriage_verdict unless autotriage_verdict == SKIP @categories = categories unless categories == SKIP @component_tags = unless == SKIP @confidence = confidence unless confidence == SKIP @dependencies = dependencies unless dependencies == SKIP @deployment_slug = deployment_slug @epss_probability = epss_probability unless epss_probability == SKIP @exposures = exposures unless exposures == SKIP @group_issues = group_issues unless group_issues == SKIP @include_historical = include_historical unless include_historical == SKIP @issue_ids = issue_ids unless issue_ids == SKIP @issue_type = issue_type @jira_project_id = jira_project_id unless jira_project_id == SKIP @limit = limit unless limit == SKIP @policies = policies unless policies == SKIP @policy_mode = policy_mode unless policy_mode == SKIP @pro_only = pro_only unless pro_only == SKIP @project_tags = unless == SKIP @ref = ref unless ref == SKIP @repos = repos unless repos == SKIP @repository_visibility = repository_visibility unless repository_visibility == SKIP @rules = rules unless rules == SKIP @ruleset = ruleset unless ruleset == SKIP @secret_types = secret_types unless secret_types == SKIP @severities = severities unless severities == SKIP @since = since unless since == SKIP @status = status unless status == SKIP @transitivities = transitivities unless transitivities == SKIP @triage_reasons = triage_reasons unless triage_reasons == SKIP @validation_state = validation_state unless validation_state == SKIP @additional_properties = additional_properties end |
Instance Attribute Details
#autotriage_verdict ⇒ AutotriageVerdict
The autotriage verdict to filter by
14 15 16 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 14 def autotriage_verdict @autotriage_verdict end |
#categories ⇒ Array[String]
List of categories to filter by
18 19 20 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 18 def categories @categories end |
#component_tags ⇒ Array[String]
List of component tags to filter by
22 23 24 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 22 def @component_tags end |
#confidence ⇒ Confidence3
List of confidence levels to filter by
26 27 28 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 26 def confidence @confidence end |
#dependencies ⇒ Array[String]
Filter by dependency name. Only applies for sca findings.
30 31 32 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 30 def dependencies @dependencies end |
#deployment_slug ⇒ String
Deployment slug. Can be found at /deployments, or in your Settings in
the web UI.
35 36 37 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 35 def deployment_slug @deployment_slug end |
#epss_probability ⇒ EpssProbability
Filter by EPSS probability (likelihood of exploit). Only applies for sca findings.
40 41 42 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 40 def epss_probability @epss_probability end |
#exposures ⇒ Exposures
Filter by exposure (reachability type). Only applies for sca findings. Reachability is the ability of an attacker to access a vulnerability in a system.
46 47 48 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 46 def exposures @exposures end |
#group_issues ⇒ TrueClass | FalseClass
Whether or not to group findings from the same rule and repository into a single ticket. Defaults to true.
51 52 53 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 51 def group_issues @group_issues end |
#include_historical ⇒ TrueClass | FalseClass
Whether to include historical findings. Only applies for secrets findings. Defaults to true.
56 57 58 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 56 def include_historical @include_historical end |
#issue_ids ⇒ Array[String]
An array of issue IDs to act on. If this is not provided, an issue filter should be provided.
61 62 63 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 61 def issue_ids @issue_ids end |
#issue_type ⇒ IssueType1
Type of findings to create tickets for.
65 66 67 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 65 def issue_type @issue_type end |
#jira_project_id ⇒ String
Optional numeric Jira project ID to associate with the created tickets. If not specified, defaults to the project configured in your integration settings. You can fetch this ID using the Jira API.
71 72 73 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 71 def jira_project_id @jira_project_id end |
#limit ⇒ Integer
Max number of tickets to create. Must be an integer between 1 and 20. Defaults to 20
76 77 78 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 76 def limit @limit end |
#policies ⇒ Array[String]
List of policy modes to filter by
80 81 82 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 80 def policies @policies end |
#policy_mode ⇒ PolicyMode1
List of policy modes to filter by
84 85 86 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 84 def policy_mode @policy_mode end |
#pro_only ⇒ TrueClass | FalseClass
Filter by whether a finding is only available with Semgrep Pro features. Only applies for sast findings.
89 90 91 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 89 def pro_only @pro_only end |
#project_tags ⇒ Array[String]
List of project tags to filter by
93 94 95 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 93 def @project_tags end |
#ref ⇒ String
Branch reference to filter by
97 98 99 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 97 def ref @ref end |
#repos ⇒ Array[String]
List of repository names to filter by
101 102 103 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 101 def repos @repos end |
#repository_visibility ⇒ RepositoryVisibility
Filter by repository visibility. Only applies for secrets findings.
105 106 107 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 105 def repository_visibility @repository_visibility end |
#rules ⇒ Array[String]
List of rule names to filter by
109 110 111 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 109 def rules @rules end |
#ruleset ⇒ Array[String]
List of Semgrep Registry rulesets to filter by
113 114 115 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 113 def ruleset @ruleset end |
#secret_types ⇒ Array[String]
Filter by type of secret (typically provider-related). Only applies for secrets findings.
118 119 120 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 118 def secret_types @secret_types end |
#severities ⇒ Severities
List of severities to filter by
122 123 124 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 122 def severities @severities end |
#since ⇒ String
Epoch timestamp in seconds. Filters using the relevant_since field: the timestamp when this finding was detected by Semgrep (the first time, or when reintroduced).
128 129 130 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 128 def since @since end |
#status ⇒ Status1
The status to filter by
132 133 134 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 132 def status @status end |
#transitivities ⇒ Transitivities
Filter by transitivity of a dependency. Only applies for sca findings.
136 137 138 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 136 def transitivities @transitivities end |
#triage_reasons ⇒ TriageReasons
List of triage reasons to filter by
140 141 142 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 140 def triage_reasons @triage_reasons end |
#validation_state ⇒ ValidationState
Filter by whether a secret could be validated. Only applies for secrets findings.
145 146 147 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 145 def validation_state @validation_state end |
Class Method Details
.from_hash(hash) ⇒ Object
Creates an instance of the object from a hash.
270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 270 def self.from_hash(hash) return nil unless hash # Extract variables from the hash. deployment_slug = hash.key?('deploymentSlug') ? hash['deploymentSlug'] : nil issue_type = hash.key?('issue_type') ? hash['issue_type'] : nil autotriage_verdict = hash.key?('autotriage_verdict') ? hash['autotriage_verdict'] : SKIP categories = hash.key?('categories') ? hash['categories'] : SKIP = hash.key?('component_tags') ? hash['component_tags'] : SKIP confidence = hash.key?('confidence') ? hash['confidence'] : SKIP dependencies = hash.key?('dependencies') ? hash['dependencies'] : SKIP epss_probability = hash.key?('epss_probability') ? hash['epss_probability'] : SKIP exposures = hash.key?('exposures') ? hash['exposures'] : SKIP group_issues = hash['group_issues'] ||= true include_historical = hash.key?('include_historical') ? hash['include_historical'] : SKIP issue_ids = hash.key?('issue_ids') ? hash['issue_ids'] : SKIP jira_project_id = hash.key?('jira_project_id') ? hash['jira_project_id'] : SKIP limit = hash['limit'] ||= 20 policies = hash.key?('policies') ? hash['policies'] : SKIP policy_mode = hash.key?('policy_mode') ? hash['policy_mode'] : SKIP pro_only = hash.key?('pro_only') ? hash['pro_only'] : SKIP = hash.key?('project_tags') ? hash['project_tags'] : SKIP ref = hash.key?('ref') ? hash['ref'] : SKIP repos = hash.key?('repos') ? hash['repos'] : SKIP repository_visibility = hash.key?('repository_visibility') ? hash['repository_visibility'] : SKIP rules = hash.key?('rules') ? hash['rules'] : SKIP ruleset = hash.key?('ruleset') ? hash['ruleset'] : SKIP secret_types = hash.key?('secret_types') ? hash['secret_types'] : SKIP severities = hash.key?('severities') ? hash['severities'] : SKIP since = hash.key?('since') ? hash['since'] : SKIP status = hash.key?('status') ? hash['status'] : SKIP transitivities = hash.key?('transitivities') ? hash['transitivities'] : SKIP triage_reasons = hash.key?('triage_reasons') ? hash['triage_reasons'] : SKIP validation_state = hash.key?('validation_state') ? hash['validation_state'] : SKIP # Create a new hash for additional properties, removing known properties. new_hash = hash.reject { |k, _| names.value?(k) } additional_properties = APIHelper.get_additional_properties( new_hash, proc { |value| value } ) # Create object from extracted values. CreateTicketRequest.new(deployment_slug: deployment_slug, issue_type: issue_type, autotriage_verdict: autotriage_verdict, categories: categories, component_tags: , confidence: confidence, dependencies: dependencies, epss_probability: epss_probability, exposures: exposures, group_issues: group_issues, include_historical: include_historical, issue_ids: issue_ids, jira_project_id: jira_project_id, limit: limit, policies: policies, policy_mode: policy_mode, pro_only: pro_only, project_tags: , ref: ref, repos: repos, repository_visibility: repository_visibility, rules: rules, ruleset: ruleset, secret_types: secret_types, severities: severities, since: since, status: status, transitivities: transitivities, triage_reasons: triage_reasons, validation_state: validation_state, additional_properties: additional_properties) end |
.names ⇒ Object
A mapping from model property names to API property names.
148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 148 def self.names @_hash = {} if @_hash.nil? @_hash['autotriage_verdict'] = 'autotriage_verdict' @_hash['categories'] = 'categories' @_hash['component_tags'] = 'component_tags' @_hash['confidence'] = 'confidence' @_hash['dependencies'] = 'dependencies' @_hash['deployment_slug'] = 'deploymentSlug' @_hash['epss_probability'] = 'epss_probability' @_hash['exposures'] = 'exposures' @_hash['group_issues'] = 'group_issues' @_hash['include_historical'] = 'include_historical' @_hash['issue_ids'] = 'issue_ids' @_hash['issue_type'] = 'issue_type' @_hash['jira_project_id'] = 'jira_project_id' @_hash['limit'] = 'limit' @_hash['policies'] = 'policies' @_hash['policy_mode'] = 'policy_mode' @_hash['pro_only'] = 'pro_only' @_hash['project_tags'] = 'project_tags' @_hash['ref'] = 'ref' @_hash['repos'] = 'repos' @_hash['repository_visibility'] = 'repository_visibility' @_hash['rules'] = 'rules' @_hash['ruleset'] = 'ruleset' @_hash['secret_types'] = 'secret_types' @_hash['severities'] = 'severities' @_hash['since'] = 'since' @_hash['status'] = 'status' @_hash['transitivities'] = 'transitivities' @_hash['triage_reasons'] = 'triage_reasons' @_hash['validation_state'] = 'validation_state' @_hash end |
.nullables ⇒ Object
An array for nullable fields
218 219 220 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 218 def self.nullables [] end |
.optionals ⇒ Object
An array for optional fields
184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 184 def self.optionals %w[ autotriage_verdict categories component_tags confidence dependencies epss_probability exposures group_issues include_historical issue_ids jira_project_id limit policies policy_mode pro_only project_tags ref repos repository_visibility rules ruleset secret_types severities since status transitivities triage_reasons validation_state ] end |
Instance Method Details
#inspect ⇒ Object
Provides a debugging-friendly string with detailed object information.
374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 374 def inspect class_name = self.class.name.split('::').last "<#{class_name} autotriage_verdict: #{@autotriage_verdict.inspect}, categories:"\ " #{@categories.inspect}, component_tags: #{@component_tags.inspect}, confidence:"\ " #{@confidence.inspect}, dependencies: #{@dependencies.inspect}, deployment_slug:"\ " #{@deployment_slug.inspect}, epss_probability: #{@epss_probability.inspect}, exposures:"\ " #{@exposures.inspect}, group_issues: #{@group_issues.inspect}, include_historical:"\ " #{@include_historical.inspect}, issue_ids: #{@issue_ids.inspect}, issue_type:"\ " #{@issue_type.inspect}, jira_project_id: #{@jira_project_id.inspect}, limit:"\ " #{@limit.inspect}, policies: #{@policies.inspect}, policy_mode: #{@policy_mode.inspect},"\ " pro_only: #{@pro_only.inspect}, project_tags: #{@project_tags.inspect}, ref:"\ " #{@ref.inspect}, repos: #{@repos.inspect}, repository_visibility:"\ " #{@repository_visibility.inspect}, rules: #{@rules.inspect}, ruleset: #{@ruleset.inspect},"\ " secret_types: #{@secret_types.inspect}, severities: #{@severities.inspect}, since:"\ " #{@since.inspect}, status: #{@status.inspect}, transitivities: #{@transitivities.inspect},"\ " triage_reasons: #{@triage_reasons.inspect}, validation_state:"\ " #{@validation_state.inspect}, additional_properties: #{@additional_properties}>" end |
#to_s ⇒ Object
Provides a human-readable string representation of the object.
357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 |
# File 'lib/semgrep_web_app/models/create_ticket_request.rb', line 357 def to_s class_name = self.class.name.split('::').last "<#{class_name} autotriage_verdict: #{@autotriage_verdict}, categories: #{@categories},"\ " component_tags: #{@component_tags}, confidence: #{@confidence}, dependencies:"\ " #{@dependencies}, deployment_slug: #{@deployment_slug}, epss_probability:"\ " #{@epss_probability}, exposures: #{@exposures}, group_issues: #{@group_issues},"\ " include_historical: #{@include_historical}, issue_ids: #{@issue_ids}, issue_type:"\ " #{@issue_type}, jira_project_id: #{@jira_project_id}, limit: #{@limit}, policies:"\ " #{@policies}, policy_mode: #{@policy_mode}, pro_only: #{@pro_only}, project_tags:"\ " #{@project_tags}, ref: #{@ref}, repos: #{@repos}, repository_visibility:"\ " #{@repository_visibility}, rules: #{@rules}, ruleset: #{@ruleset}, secret_types:"\ " #{@secret_types}, severities: #{@severities}, since: #{@since}, status: #{@status},"\ " transitivities: #{@transitivities}, triage_reasons: #{@triage_reasons}, validation_state:"\ " #{@validation_state}, additional_properties: #{@additional_properties}>" end |