defectdojo-api-generated 2.56.2__tar.gz → 2.56.4__tar.gz
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.
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/PKG-INFO +15 -10
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/README.md +13 -7
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/__init__.py +1 -1
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/cli/__main__.py +0 -10
- defectdojo_api_generated-2.56.4/defectdojo_api_generated/cli/commands/__init__.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/cli/commands/apis.py +3 -3
- defectdojo_api_generated-2.56.4/defectdojo_api_generated/cli/commands/cli.py +75 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/cli/commands/status.py +1 -1
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/configuration.py +1 -1
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_system_settings_request.py +0 -3
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/system_settings.py +0 -3
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/system_settings_request.py +0 -3
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated.egg-info/PKG-INFO +15 -10
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated.egg-info/SOURCES.txt +1 -1
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated.egg-info/requires.txt +1 -2
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/pyproject.toml +4 -2
- defectdojo_api_generated-2.56.2/defectdojo_api_generated/cli/commands/cli.py +0 -151
- defectdojo_api_generated-2.56.2/defectdojo_api_generated/cli/commands/config.py +0 -71
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/LICENSE +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/__init__.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/announcements_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/api_token_auth_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/asset_api_scan_configurations_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/asset_groups_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/asset_members_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/assets_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/configuration_permissions_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/credential_mappings_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/credentials_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/development_environments_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/dojo_group_members_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/dojo_groups_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/endpoint_meta_import_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/endpoint_status_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/endpoints_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/engagement_presets_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/engagements_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/finding_templates_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/findings_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/global_roles_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/import_languages_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/import_scan_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/jira_configurations_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/jira_finding_mappings_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/jira_instances_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/jira_product_configurations_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/jira_projects_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/language_types_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/languages_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/metadata_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/network_locations_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/note_type_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/notes_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/notification_webhooks_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/notifications_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/oa3_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/organization_groups_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/organization_members_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/organizations_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/product_api_scan_configurations_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/product_groups_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/product_members_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/product_type_groups_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/product_type_members_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/product_types_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/products_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/questionnaire_answered_questionnaires_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/questionnaire_answers_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/questionnaire_engagement_questionnaires_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/questionnaire_general_questionnaires_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/questionnaire_questions_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/regulations_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/reimport_scan_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/request_response_pairs_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/risk_acceptance_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/roles_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/sla_configurations_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/sonarqube_issues_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/sonarqube_transitions_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/stub_findings_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/system_settings_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/technologies_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/test_imports_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/test_types_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/tests_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/tool_configurations_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/tool_product_settings_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/tool_types_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/user_contact_infos_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/user_profile_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api/users_api.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api_client.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/api_response.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/client.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/exceptions.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/helpers.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/__init__.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/accepted_risk_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/add_new_note_option_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/announcement.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/announcement_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/app_analysis.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/app_analysis_prefetch.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/app_analysis_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/asset.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/asset_api_scan_configuration.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/asset_api_scan_configuration_prefetch.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/asset_api_scan_configuration_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/asset_group.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/asset_group_prefetch.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/asset_group_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/asset_member.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/asset_member_prefetch.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/asset_member_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/asset_prefetch.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/asset_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/auth_token.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/auth_token_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/burp_raw_request_response.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/burp_raw_request_response_multi.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/burp_raw_request_response_multi_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/burp_raw_request_response_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/configuration_permission.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/credential.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/credential_mapping.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/credential_mapping_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/credential_prefetch.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/credential_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/delete_preview.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/delta_statistics.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/delta_statistics_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/development_environment.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/development_environment_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/dojo_group.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/dojo_group_member.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/dojo_group_member_prefetch.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/dojo_group_member_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/dojo_group_prefetch.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/dojo_group_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/endpoint.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/endpoint_meta_importer.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/endpoint_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/endpoint_status.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/endpoint_status_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/engagement.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/engagement_check_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/engagement_check_list_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/engagement_presets.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/engagement_presets_prefetch.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/engagement_presets_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/engagement_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/engagement_to_files.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/engagement_to_notes.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/engagement_update_jira_epic.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/engagement_update_jira_epic_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/executive_summary.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/file.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/file_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/finding.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/finding_close.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/finding_close_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/finding_create.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/finding_create_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/finding_engagement.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/finding_environment.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/finding_group.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/finding_group_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/finding_meta.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/finding_meta_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/finding_prefetch.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/finding_prod_type.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/finding_product.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/finding_related_fields.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/finding_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/finding_template.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/finding_template_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/finding_test.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/finding_test_type.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/finding_to_files.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/finding_to_notes.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/global_role.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/global_role_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/import_languages.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/import_scan.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/import_statistics.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/import_statistics_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/jira_instance.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/jira_instance_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/jira_issue.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/jira_issue_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/jira_project.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/jira_project_prefetch.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/jira_project_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/language.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/language_prefetch.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/language_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/language_type.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/language_type_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/meta.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/meta_main.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/meta_main_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/meta_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/metadata.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/metadata_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/network_locations.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/network_locations_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/note.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/note_history.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/note_history_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/note_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/note_type.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/note_type_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/notification_webhooks.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/notification_webhooks_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/notifications.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/notifications_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/organization.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/organization_group.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/organization_group_prefetch.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/organization_group_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/organization_member.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/organization_member_prefetch.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/organization_member_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/organization_prefetch.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/organization_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_announcement_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_app_analysis_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_asset_api_scan_configuration_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_asset_group_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_asset_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_asset_member_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_burp_raw_request_response_multi_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_configuration_permission_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_credential_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_credential_mapping_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_delete_preview_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_development_environment_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_dojo_group_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_dojo_group_member_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_endpoint_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_endpoint_status_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_engagement_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_engagement_presets_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_finding_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_finding_template_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_global_role_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_jira_instance_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_jira_issue_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_jira_project_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_language_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_language_type_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_meta_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_network_locations_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_note_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_note_type_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_notification_webhooks_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_notifications_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_organization_group_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_organization_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_organization_member_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_product_api_scan_configuration_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_product_api_scan_configuration_list_prefetch.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_product_group_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_product_group_list_prefetch.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_product_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_product_list_prefetch.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_product_member_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_product_member_list_prefetch.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_product_type_group_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_product_type_group_list_prefetch.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_product_type_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_product_type_list_prefetch.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_product_type_member_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_product_type_member_list_prefetch.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_questionnaire_answer_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_questionnaire_answered_survey_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_questionnaire_answered_survey_list_prefetch.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_questionnaire_engagement_survey_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_questionnaire_general_survey_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_questionnaire_question_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_regulation_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_risk_acceptance_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_role_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_sla_configuration_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_sonarqube_issue_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_sonarqube_issue_transition_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_stub_finding_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_system_settings_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_test_import_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_test_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_test_type_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_tool_configuration_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_tool_configuration_list_prefetch.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_tool_product_settings_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_tool_product_settings_list_prefetch.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_tool_type_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_user_contact_info_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_user_contact_info_list_prefetch.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/paginated_user_list.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_announcement_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_app_analysis_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_asset_api_scan_configuration_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_asset_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_burp_raw_request_response_multi_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_credential_mapping_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_credential_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_development_environment_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_dojo_group_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_endpoint_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_endpoint_status_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_engagement_presets_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_engagement_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_finding_note_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_finding_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_finding_template_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_global_role_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_jira_instance_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_jira_issue_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_jira_project_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_language_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_language_type_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_meta_main_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_meta_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_network_locations_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_note_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_note_type_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_notification_webhooks_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_notifications_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_organization_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_product_api_scan_configuration_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_product_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_product_type_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_regulation_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_risk_acceptance_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_sla_configuration_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_sonarqube_issue_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_sonarqube_issue_transition_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_stub_finding_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_tag_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_test_import_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_test_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_test_type_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_tool_configuration_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_tool_product_settings_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_tool_type_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_user_contact_info_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/patched_user_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/product.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/product_api_scan_configuration.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/product_api_scan_configuration_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/product_group.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/product_group_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/product_member.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/product_member_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/product_meta.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/product_meta_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/product_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/product_type.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/product_type_group.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/product_type_group_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/product_type_member.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/product_type_member_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/product_type_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/questionnaire_answer.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/questionnaire_answered_survey.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/questionnaire_engagement_survey.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/questionnaire_general_survey.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/questionnaire_question.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/raw_file.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/re_import_scan.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/regulation.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/regulation_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/report_generate.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/report_generate_option_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/risk_acceptance.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/risk_acceptance_proof.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/risk_acceptance_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/risk_acceptance_to_notes.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/role.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/severity_status_statistics.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/severity_status_statistics_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/sla_configuration.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/sla_configuration_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/sonarqube_issue.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/sonarqube_issue_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/sonarqube_issue_transition.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/sonarqube_issue_transition_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/status_statistics.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/status_statistics_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/stub_finding.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/stub_finding_create.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/stub_finding_create_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/stub_finding_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/tag.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/tag_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/test.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/test_create.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/test_create_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/test_import.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/test_import_finding_action.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/test_import_finding_action_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/test_import_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/test_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/test_to_files.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/test_to_notes.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/test_type.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/test_type_create.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/test_type_create_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/test_type_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/tool_configuration.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/tool_configuration_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/tool_product_settings.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/tool_product_settings_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/tool_type.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/tool_type_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/user.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/user_contact_info.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/user_contact_info_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/user_profile.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/user_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/user_stub.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/user_stub_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/vulnerability_id.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/vulnerability_id_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/vulnerability_id_template.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/models/vulnerability_id_template_request.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated/rest.py +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated.egg-info/dependency_links.txt +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated.egg-info/entry_points.txt +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/defectdojo_api_generated.egg-info/top_level.txt +0 -0
- {defectdojo_api_generated-2.56.2 → defectdojo_api_generated-2.56.4}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: defectdojo-api-generated
|
|
3
|
-
Version: 2.56.
|
|
3
|
+
Version: 2.56.4
|
|
4
4
|
Summary: Python library to interact with DefectDojo - generated from OpenAPI
|
|
5
5
|
Author-email: Filipe Pina <shelf-corncob-said@duck.com>
|
|
6
6
|
Project-URL: Homepage, https://github.com/fopina/defectdojo-api-generated
|
|
@@ -12,9 +12,8 @@ Requires-Dist: python-dateutil>=2.8.2
|
|
|
12
12
|
Requires-Dist: urllib3<3.0.0,>=2.1.0
|
|
13
13
|
Requires-Dist: typing-extensions>=4.7.1
|
|
14
14
|
Provides-Extra: cli
|
|
15
|
-
Requires-Dist: classyclick==0.
|
|
15
|
+
Requires-Dist: classyclick==1.0.0; extra == "cli"
|
|
16
16
|
Requires-Dist: jmespath>=1.0.1; extra == "cli"
|
|
17
|
-
Requires-Dist: platformdirs>=4.4.0; extra == "cli"
|
|
18
17
|
Dynamic: license-file
|
|
19
18
|
|
|
20
19
|
# defectdojo-api-generated
|
|
@@ -33,6 +32,7 @@ Multiple changes done on top of default openapi-generator:
|
|
|
33
32
|
* A friendlier Client class
|
|
34
33
|
* Tweak validations to reduce package import time to about 1/3
|
|
35
34
|
* Remove most of pydantic/schema validations due to inconsistencies with actual database schema/requirements (tracked in https://github.com/fopina/defectdojo-api-generated/issues/39)
|
|
35
|
+
* *Iterator* methods for every *list* API method to handle pagination automatically
|
|
36
36
|
* A nice CLI exposing all the API methods <3
|
|
37
37
|
* installed only as an extra, to keep everything clean when package is used as library only
|
|
38
38
|
|
|
@@ -44,16 +44,21 @@ Multiple changes done on top of default openapi-generator:
|
|
|
44
44
|
pip install defectojo-api-generated
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
+
<!-- example-id: example.py -->
|
|
47
48
|
```python
|
|
48
|
-
from defectdojo_api_generated import DefectDojo
|
|
49
|
-
|
|
50
|
-
# password publicly available in https://github.com/DefectDojo/django-DefectDojo/?tab=readme-ov-file#demo
|
|
51
|
-
dojo = DefectDojo('https://demo.defectdojo.org/',
|
|
52
|
-
|
|
53
|
-
|
|
49
|
+
from defectdojo_api_generated import DefectDojo
|
|
50
|
+
|
|
51
|
+
# password publicly available in https://github.com/DefectDojo/django-DefectDojo/?tab=readme-ov-file#demo
|
|
52
|
+
dojo = DefectDojo(base_url='https://demo.defectdojo.org/', auth=('admin', PASSWORD))
|
|
53
|
+
for ind, finding in enumerate(dojo.findings_api.list_iterator(title='Stored XSS')):
|
|
54
|
+
if not ind:
|
|
55
|
+
print(f'Total matched findings: {finding.page.count}')
|
|
56
|
+
print(f'- [{finding.result.severity}] {finding.result.title} - {finding.result.description}')
|
|
57
|
+
r = dojo.system_settings_api.list(limit=1)
|
|
58
|
+
print(f'- {r.results[0]}')
|
|
54
59
|
```
|
|
55
60
|
|
|
56
|
-
#### **Full documentation** [
|
|
61
|
+
#### **Full documentation** [readthedocs](https://defectdojo-api-generated.readthedocs.io/)
|
|
57
62
|
|
|
58
63
|
### CLI
|
|
59
64
|
|
|
@@ -14,6 +14,7 @@ Multiple changes done on top of default openapi-generator:
|
|
|
14
14
|
* A friendlier Client class
|
|
15
15
|
* Tweak validations to reduce package import time to about 1/3
|
|
16
16
|
* Remove most of pydantic/schema validations due to inconsistencies with actual database schema/requirements (tracked in https://github.com/fopina/defectdojo-api-generated/issues/39)
|
|
17
|
+
* *Iterator* methods for every *list* API method to handle pagination automatically
|
|
17
18
|
* A nice CLI exposing all the API methods <3
|
|
18
19
|
* installed only as an extra, to keep everything clean when package is used as library only
|
|
19
20
|
|
|
@@ -25,16 +26,21 @@ Multiple changes done on top of default openapi-generator:
|
|
|
25
26
|
pip install defectojo-api-generated
|
|
26
27
|
```
|
|
27
28
|
|
|
29
|
+
<!-- example-id: example.py -->
|
|
28
30
|
```python
|
|
29
|
-
from defectdojo_api_generated import DefectDojo
|
|
30
|
-
|
|
31
|
-
# password publicly available in https://github.com/DefectDojo/django-DefectDojo/?tab=readme-ov-file#demo
|
|
32
|
-
dojo = DefectDojo('https://demo.defectdojo.org/',
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
from defectdojo_api_generated import DefectDojo
|
|
32
|
+
|
|
33
|
+
# password publicly available in https://github.com/DefectDojo/django-DefectDojo/?tab=readme-ov-file#demo
|
|
34
|
+
dojo = DefectDojo(base_url='https://demo.defectdojo.org/', auth=('admin', PASSWORD))
|
|
35
|
+
for ind, finding in enumerate(dojo.findings_api.list_iterator(title='Stored XSS')):
|
|
36
|
+
if not ind:
|
|
37
|
+
print(f'Total matched findings: {finding.page.count}')
|
|
38
|
+
print(f'- [{finding.result.severity}] {finding.result.title} - {finding.result.description}')
|
|
39
|
+
r = dojo.system_settings_api.list(limit=1)
|
|
40
|
+
print(f'- {r.results[0]}')
|
|
35
41
|
```
|
|
36
42
|
|
|
37
|
-
#### **Full documentation** [
|
|
43
|
+
#### **Full documentation** [readthedocs](https://defectdojo-api-generated.readthedocs.io/)
|
|
38
44
|
|
|
39
45
|
### CLI
|
|
40
46
|
|
|
@@ -1,15 +1,6 @@
|
|
|
1
1
|
"""Command-line entrypoint for defectdojo_api_generated."""
|
|
2
2
|
|
|
3
|
-
import importlib
|
|
4
|
-
import pkgutil
|
|
5
3
|
import sys
|
|
6
|
-
from pathlib import Path
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
def discover_commands():
|
|
10
|
-
# str() required because of py3.10
|
|
11
|
-
for _, module_name, _ in pkgutil.iter_modules([str(Path(__file__).parent / 'commands')]):
|
|
12
|
-
importlib.import_module(f'{__package__}.commands.{module_name}')
|
|
13
4
|
|
|
14
5
|
|
|
15
6
|
def load_cli():
|
|
@@ -28,7 +19,6 @@ def load_cli():
|
|
|
28
19
|
|
|
29
20
|
def main():
|
|
30
21
|
CLI = load_cli()
|
|
31
|
-
discover_commands()
|
|
32
22
|
CLI.click()
|
|
33
23
|
|
|
34
24
|
|
|
File without changes
|
|
@@ -33,7 +33,7 @@ _PRIMITIVE_CLICK_TYPES = (
|
|
|
33
33
|
)
|
|
34
34
|
|
|
35
35
|
|
|
36
|
-
class API(CLI.SubGroup
|
|
36
|
+
class API(CLI.SubGroup):
|
|
37
37
|
"""Interact directly with any API/method"""
|
|
38
38
|
|
|
39
39
|
|
|
@@ -326,7 +326,7 @@ def _build_command_namespace(command_name: str, api_class: type, target_method:
|
|
|
326
326
|
def _build_command_class(parent_class: type, namespace: dict[str, Any]) -> type:
|
|
327
327
|
return type(
|
|
328
328
|
'ApiCommand',
|
|
329
|
-
(parent_class,
|
|
329
|
+
(parent_class,),
|
|
330
330
|
namespace,
|
|
331
331
|
)
|
|
332
332
|
|
|
@@ -572,7 +572,7 @@ def make_api_group(module_name: str, api_class: type) -> type:
|
|
|
572
572
|
_, target_method = command_methods[0]
|
|
573
573
|
return make_api_command(api_class, group_name, target_method, parent_class=API.Command)
|
|
574
574
|
|
|
575
|
-
class ApiGroup(API.SubGroup
|
|
575
|
+
class ApiGroup(API.SubGroup):
|
|
576
576
|
__config__ = classyclick.Group.Config(
|
|
577
577
|
name=group_name,
|
|
578
578
|
help=f'methods from `{api_class.__name__}`.',
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"""Command-line entrypoint for defectdojo_api_generated."""
|
|
2
|
+
|
|
3
|
+
import logging
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
|
|
6
|
+
import classyclick
|
|
7
|
+
import click
|
|
8
|
+
|
|
9
|
+
from defectdojo_api_generated.client import DefectDojo
|
|
10
|
+
|
|
11
|
+
from ... import __version__
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class CLI(classyclick.helpers.ConfigFileMixin, classyclick.Group):
|
|
15
|
+
"""DefectDojo CLI"""
|
|
16
|
+
|
|
17
|
+
__config__ = classyclick.Group.Config(
|
|
18
|
+
context_settings=dict(show_default=True),
|
|
19
|
+
decorators=[click.version_option(version=__version__, message='%(version)s')],
|
|
20
|
+
)
|
|
21
|
+
CONFIG_DEFAULT_NAME = 'defectdojo-generated-api'
|
|
22
|
+
CONFIG_EXAMPLE_PATH = Path(__file__).parent.parent / 'config.example.toml'
|
|
23
|
+
|
|
24
|
+
host: str = classyclick.Option(
|
|
25
|
+
'-h',
|
|
26
|
+
envvar='DEFECTDOJO_HOST',
|
|
27
|
+
show_envvar=True,
|
|
28
|
+
help='DefectDojo server host',
|
|
29
|
+
)
|
|
30
|
+
token: str = classyclick.Option(
|
|
31
|
+
'-t',
|
|
32
|
+
envvar='DEFECTDOJO_TOKEN',
|
|
33
|
+
show_envvar=True,
|
|
34
|
+
help='DefectDojo API token - if provided, --user/--password are ignored',
|
|
35
|
+
)
|
|
36
|
+
user: str = classyclick.Option(
|
|
37
|
+
'-u',
|
|
38
|
+
envvar='DEFECTDOJO_USER',
|
|
39
|
+
show_envvar=True,
|
|
40
|
+
help='DefectDojo API username',
|
|
41
|
+
)
|
|
42
|
+
password: str = classyclick.Option(
|
|
43
|
+
'-p',
|
|
44
|
+
envvar='DEFECTDOJO_PASSWORD',
|
|
45
|
+
show_envvar=True,
|
|
46
|
+
help='DefectDojo API password',
|
|
47
|
+
)
|
|
48
|
+
disable_tls: bool = classyclick.Option(help='Disable TLS verification in DefectDojo API requests')
|
|
49
|
+
debug_http: bool = classyclick.Option(help='Log HTTP requests and responses')
|
|
50
|
+
|
|
51
|
+
def __call__(self):
|
|
52
|
+
self.load_config()
|
|
53
|
+
|
|
54
|
+
if self.debug_http:
|
|
55
|
+
import http.client
|
|
56
|
+
|
|
57
|
+
http.client.HTTPConnection.debuglevel = 1
|
|
58
|
+
http.client.HTTPSConnection.debuglevel = 1
|
|
59
|
+
logging.basicConfig(level=logging.DEBUG)
|
|
60
|
+
http_client_logger = logging.getLogger('http.client')
|
|
61
|
+
http_client_logger.setLevel(logging.DEBUG)
|
|
62
|
+
|
|
63
|
+
self.ctx.meta['client'] = DefectDojo(
|
|
64
|
+
base_url=self.host,
|
|
65
|
+
token=self.token,
|
|
66
|
+
auth=None if self.token else (self.user, self.password),
|
|
67
|
+
verify_ssl=not self.disable_tls,
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
class Config(classyclick.helpers.ConfigBaseCommand, CLI.Command):
|
|
72
|
+
pass
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
classyclick.helpers.discover_commands(__package__)
|
|
@@ -569,7 +569,7 @@ class Configuration:
|
|
|
569
569
|
'Python SDK Debug Report:\n'
|
|
570
570
|
'OS: {env}\n'
|
|
571
571
|
'Python Version: {pyversion}\n'
|
|
572
|
-
'Version of the API: 2.56.
|
|
572
|
+
'Version of the API: 2.56.4\n'
|
|
573
573
|
'SDK Package Version: 1.0.0'.format(env=sys.platform, pyversion=sys.version)
|
|
574
574
|
)
|
|
575
575
|
|
|
@@ -164,7 +164,6 @@ class PatchedSystemSettingsRequest(BaseModel):
|
|
|
164
164
|
allow_anonymous_survey_repsonse: Optional[StrictBool] = Field(
|
|
165
165
|
default=None, description='Enable anyone with a link to the survey to answer a survey'
|
|
166
166
|
)
|
|
167
|
-
credentials: Optional[Annotated[str, Field(strict=True, max_length=3000)]] = None
|
|
168
167
|
disclaimer_notifications: Optional[Annotated[str, Field(strict=True, max_length=3000)]] = Field(
|
|
169
168
|
default=None, description='Include this custom disclaimer on all notifications'
|
|
170
169
|
)
|
|
@@ -305,7 +304,6 @@ class PatchedSystemSettingsRequest(BaseModel):
|
|
|
305
304
|
'enable_notify_sla_jira_only',
|
|
306
305
|
'enable_notify_sla_exponential_backoff',
|
|
307
306
|
'allow_anonymous_survey_repsonse',
|
|
308
|
-
'credentials',
|
|
309
307
|
'disclaimer_notifications',
|
|
310
308
|
'disclaimer_reports',
|
|
311
309
|
'disclaimer_reports_forced',
|
|
@@ -491,7 +489,6 @@ class PatchedSystemSettingsRequest(BaseModel):
|
|
|
491
489
|
'enable_notify_sla_jira_only': obj.get('enable_notify_sla_jira_only'),
|
|
492
490
|
'enable_notify_sla_exponential_backoff': obj.get('enable_notify_sla_exponential_backoff'),
|
|
493
491
|
'allow_anonymous_survey_repsonse': obj.get('allow_anonymous_survey_repsonse'),
|
|
494
|
-
'credentials': obj.get('credentials'),
|
|
495
492
|
'disclaimer_notifications': obj.get('disclaimer_notifications'),
|
|
496
493
|
'disclaimer_reports': obj.get('disclaimer_reports'),
|
|
497
494
|
'disclaimer_reports_forced': obj.get('disclaimer_reports_forced'),
|
|
@@ -165,7 +165,6 @@ class SystemSettings(BaseModel):
|
|
|
165
165
|
allow_anonymous_survey_repsonse: Optional[StrictBool] = Field(
|
|
166
166
|
default=None, description='Enable anyone with a link to the survey to answer a survey'
|
|
167
167
|
)
|
|
168
|
-
credentials: Optional[Annotated[str, Field(strict=True, max_length=3000)]] = None
|
|
169
168
|
disclaimer_notifications: Optional[Annotated[str, Field(strict=True, max_length=3000)]] = Field(
|
|
170
169
|
default=None, description='Include this custom disclaimer on all notifications'
|
|
171
170
|
)
|
|
@@ -307,7 +306,6 @@ class SystemSettings(BaseModel):
|
|
|
307
306
|
'enable_notify_sla_jira_only',
|
|
308
307
|
'enable_notify_sla_exponential_backoff',
|
|
309
308
|
'allow_anonymous_survey_repsonse',
|
|
310
|
-
'credentials',
|
|
311
309
|
'disclaimer_notifications',
|
|
312
310
|
'disclaimer_reports',
|
|
313
311
|
'disclaimer_reports_forced',
|
|
@@ -499,7 +497,6 @@ class SystemSettings(BaseModel):
|
|
|
499
497
|
'enable_notify_sla_jira_only': obj.get('enable_notify_sla_jira_only'),
|
|
500
498
|
'enable_notify_sla_exponential_backoff': obj.get('enable_notify_sla_exponential_backoff'),
|
|
501
499
|
'allow_anonymous_survey_repsonse': obj.get('allow_anonymous_survey_repsonse'),
|
|
502
|
-
'credentials': obj.get('credentials'),
|
|
503
500
|
'disclaimer_notifications': obj.get('disclaimer_notifications'),
|
|
504
501
|
'disclaimer_reports': obj.get('disclaimer_reports'),
|
|
505
502
|
'disclaimer_reports_forced': obj.get('disclaimer_reports_forced'),
|
|
@@ -164,7 +164,6 @@ class SystemSettingsRequest(BaseModel):
|
|
|
164
164
|
allow_anonymous_survey_repsonse: Optional[StrictBool] = Field(
|
|
165
165
|
default=None, description='Enable anyone with a link to the survey to answer a survey'
|
|
166
166
|
)
|
|
167
|
-
credentials: Optional[Annotated[str, Field(strict=True, max_length=3000)]] = None
|
|
168
167
|
disclaimer_notifications: Optional[Annotated[str, Field(strict=True, max_length=3000)]] = Field(
|
|
169
168
|
default=None, description='Include this custom disclaimer on all notifications'
|
|
170
169
|
)
|
|
@@ -305,7 +304,6 @@ class SystemSettingsRequest(BaseModel):
|
|
|
305
304
|
'enable_notify_sla_jira_only',
|
|
306
305
|
'enable_notify_sla_exponential_backoff',
|
|
307
306
|
'allow_anonymous_survey_repsonse',
|
|
308
|
-
'credentials',
|
|
309
307
|
'disclaimer_notifications',
|
|
310
308
|
'disclaimer_reports',
|
|
311
309
|
'disclaimer_reports_forced',
|
|
@@ -491,7 +489,6 @@ class SystemSettingsRequest(BaseModel):
|
|
|
491
489
|
'enable_notify_sla_jira_only': obj.get('enable_notify_sla_jira_only'),
|
|
492
490
|
'enable_notify_sla_exponential_backoff': obj.get('enable_notify_sla_exponential_backoff'),
|
|
493
491
|
'allow_anonymous_survey_repsonse': obj.get('allow_anonymous_survey_repsonse'),
|
|
494
|
-
'credentials': obj.get('credentials'),
|
|
495
492
|
'disclaimer_notifications': obj.get('disclaimer_notifications'),
|
|
496
493
|
'disclaimer_reports': obj.get('disclaimer_reports'),
|
|
497
494
|
'disclaimer_reports_forced': obj.get('disclaimer_reports_forced'),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: defectdojo-api-generated
|
|
3
|
-
Version: 2.56.
|
|
3
|
+
Version: 2.56.4
|
|
4
4
|
Summary: Python library to interact with DefectDojo - generated from OpenAPI
|
|
5
5
|
Author-email: Filipe Pina <shelf-corncob-said@duck.com>
|
|
6
6
|
Project-URL: Homepage, https://github.com/fopina/defectdojo-api-generated
|
|
@@ -12,9 +12,8 @@ Requires-Dist: python-dateutil>=2.8.2
|
|
|
12
12
|
Requires-Dist: urllib3<3.0.0,>=2.1.0
|
|
13
13
|
Requires-Dist: typing-extensions>=4.7.1
|
|
14
14
|
Provides-Extra: cli
|
|
15
|
-
Requires-Dist: classyclick==0.
|
|
15
|
+
Requires-Dist: classyclick==1.0.0; extra == "cli"
|
|
16
16
|
Requires-Dist: jmespath>=1.0.1; extra == "cli"
|
|
17
|
-
Requires-Dist: platformdirs>=4.4.0; extra == "cli"
|
|
18
17
|
Dynamic: license-file
|
|
19
18
|
|
|
20
19
|
# defectdojo-api-generated
|
|
@@ -33,6 +32,7 @@ Multiple changes done on top of default openapi-generator:
|
|
|
33
32
|
* A friendlier Client class
|
|
34
33
|
* Tweak validations to reduce package import time to about 1/3
|
|
35
34
|
* Remove most of pydantic/schema validations due to inconsistencies with actual database schema/requirements (tracked in https://github.com/fopina/defectdojo-api-generated/issues/39)
|
|
35
|
+
* *Iterator* methods for every *list* API method to handle pagination automatically
|
|
36
36
|
* A nice CLI exposing all the API methods <3
|
|
37
37
|
* installed only as an extra, to keep everything clean when package is used as library only
|
|
38
38
|
|
|
@@ -44,16 +44,21 @@ Multiple changes done on top of default openapi-generator:
|
|
|
44
44
|
pip install defectojo-api-generated
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
+
<!-- example-id: example.py -->
|
|
47
48
|
```python
|
|
48
|
-
from defectdojo_api_generated import DefectDojo
|
|
49
|
-
|
|
50
|
-
# password publicly available in https://github.com/DefectDojo/django-DefectDojo/?tab=readme-ov-file#demo
|
|
51
|
-
dojo = DefectDojo('https://demo.defectdojo.org/',
|
|
52
|
-
|
|
53
|
-
|
|
49
|
+
from defectdojo_api_generated import DefectDojo
|
|
50
|
+
|
|
51
|
+
# password publicly available in https://github.com/DefectDojo/django-DefectDojo/?tab=readme-ov-file#demo
|
|
52
|
+
dojo = DefectDojo(base_url='https://demo.defectdojo.org/', auth=('admin', PASSWORD))
|
|
53
|
+
for ind, finding in enumerate(dojo.findings_api.list_iterator(title='Stored XSS')):
|
|
54
|
+
if not ind:
|
|
55
|
+
print(f'Total matched findings: {finding.page.count}')
|
|
56
|
+
print(f'- [{finding.result.severity}] {finding.result.title} - {finding.result.description}')
|
|
57
|
+
r = dojo.system_settings_api.list(limit=1)
|
|
58
|
+
print(f'- {r.results[0]}')
|
|
54
59
|
```
|
|
55
60
|
|
|
56
|
-
#### **Full documentation** [
|
|
61
|
+
#### **Full documentation** [readthedocs](https://defectdojo-api-generated.readthedocs.io/)
|
|
57
62
|
|
|
58
63
|
### CLI
|
|
59
64
|
|
|
@@ -88,9 +88,9 @@ defectdojo_api_generated/api/user_contact_infos_api.py
|
|
|
88
88
|
defectdojo_api_generated/api/user_profile_api.py
|
|
89
89
|
defectdojo_api_generated/api/users_api.py
|
|
90
90
|
defectdojo_api_generated/cli/__main__.py
|
|
91
|
+
defectdojo_api_generated/cli/commands/__init__.py
|
|
91
92
|
defectdojo_api_generated/cli/commands/apis.py
|
|
92
93
|
defectdojo_api_generated/cli/commands/cli.py
|
|
93
|
-
defectdojo_api_generated/cli/commands/config.py
|
|
94
94
|
defectdojo_api_generated/cli/commands/status.py
|
|
95
95
|
defectdojo_api_generated/models/__init__.py
|
|
96
96
|
defectdojo_api_generated/models/accepted_risk_request.py
|
|
@@ -18,9 +18,8 @@ dependencies = [
|
|
|
18
18
|
|
|
19
19
|
[project.optional-dependencies]
|
|
20
20
|
cli = [
|
|
21
|
-
"classyclick==0.
|
|
21
|
+
"classyclick==1.0.0",
|
|
22
22
|
"jmespath>=1.0.1",
|
|
23
|
-
"platformdirs>=4.4.0",
|
|
24
23
|
]
|
|
25
24
|
|
|
26
25
|
[project.scripts]
|
|
@@ -31,9 +30,12 @@ defectdojo-api-generated = "defectdojo_api_generated.cli.__main__:main"
|
|
|
31
30
|
[dependency-groups]
|
|
32
31
|
dev = [
|
|
33
32
|
"build",
|
|
33
|
+
"mkdocs>=1.6.1",
|
|
34
|
+
"mkdocs-click>=0.9.0",
|
|
34
35
|
"pytest",
|
|
35
36
|
"pytest-cov",
|
|
36
37
|
"pytest-socket",
|
|
38
|
+
"readme-example-tester>=0.0.2",
|
|
37
39
|
"ruff",
|
|
38
40
|
"twine",
|
|
39
41
|
]
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
"""Command-line entrypoint for defectdojo_api_generated."""
|
|
2
|
-
|
|
3
|
-
import logging
|
|
4
|
-
from pathlib import Path
|
|
5
|
-
from typing import Optional
|
|
6
|
-
|
|
7
|
-
import classyclick
|
|
8
|
-
import click
|
|
9
|
-
from platformdirs import user_config_dir
|
|
10
|
-
|
|
11
|
-
from defectdojo_api_generated.client import DefectDojo
|
|
12
|
-
|
|
13
|
-
from ... import __version__
|
|
14
|
-
|
|
15
|
-
try:
|
|
16
|
-
# Python 3.11+
|
|
17
|
-
import tomllib
|
|
18
|
-
except ModuleNotFoundError:
|
|
19
|
-
# Python < 3.11
|
|
20
|
-
import tomli as tomllib # type: ignore
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
DEFAULT_PATH = Path(user_config_dir('defectdojo-generated-api')) / 'config.toml'
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
def ensure_config_file(config_path: Optional[Path]) -> Path:
|
|
27
|
-
config_path = config_path or DEFAULT_PATH
|
|
28
|
-
if not config_path.exists():
|
|
29
|
-
config_path.parent.mkdir(parents=True, exist_ok=True)
|
|
30
|
-
config_path.write_text((Path(__file__).parent.parent / 'config.example.toml').read_text())
|
|
31
|
-
print(f'Info: No configuration file found at {config_path}, a sample config has been placed there.')
|
|
32
|
-
|
|
33
|
-
return config_path
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
def load_config_data(config_path: Path) -> dict:
|
|
37
|
-
with config_path.open('rb') as f:
|
|
38
|
-
return tomllib.load(f)
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
class CLI(classyclick.Group):
|
|
42
|
-
"""DefectDojo CLI"""
|
|
43
|
-
|
|
44
|
-
__config__ = classyclick.Group.Config(context_settings=dict(show_default=True))
|
|
45
|
-
|
|
46
|
-
config: Path = classyclick.Option(help='Path to the configuration file', show_default=str(DEFAULT_PATH))
|
|
47
|
-
env: str = classyclick.Option(
|
|
48
|
-
'-e', help='Environment to use for the command (as many can be specified in config.toml)'
|
|
49
|
-
)
|
|
50
|
-
host: str = classyclick.Option(
|
|
51
|
-
'-h',
|
|
52
|
-
envvar='DEFECTDOJO_HOST',
|
|
53
|
-
show_envvar=True,
|
|
54
|
-
help='DefectDojo server host',
|
|
55
|
-
)
|
|
56
|
-
token: str = classyclick.Option(
|
|
57
|
-
'-t',
|
|
58
|
-
envvar='DEFECTDOJO_TOKEN',
|
|
59
|
-
show_envvar=True,
|
|
60
|
-
help='DefectDojo API token - if provided, --user/--password are ignored',
|
|
61
|
-
)
|
|
62
|
-
user: str = classyclick.Option(
|
|
63
|
-
'-u',
|
|
64
|
-
envvar='DEFECTDOJO_USER',
|
|
65
|
-
show_envvar=True,
|
|
66
|
-
help='DefectDojo API username',
|
|
67
|
-
)
|
|
68
|
-
password: str = classyclick.Option(
|
|
69
|
-
'-p',
|
|
70
|
-
envvar='DEFECTDOJO_PASSWORD',
|
|
71
|
-
show_envvar=True,
|
|
72
|
-
help='DefectDojo API password',
|
|
73
|
-
)
|
|
74
|
-
disable_tls: bool = classyclick.Option(help='Disable TLS verification in DefectDojo API requests')
|
|
75
|
-
debug_http: bool = classyclick.Option(help='Log HTTP requests and responses')
|
|
76
|
-
ctx: classyclick.Context = classyclick.Context()
|
|
77
|
-
|
|
78
|
-
def __call__(self):
|
|
79
|
-
self.config = ensure_config_file(self.config)
|
|
80
|
-
config_data = load_config_data(self.config)
|
|
81
|
-
|
|
82
|
-
if self.env is None:
|
|
83
|
-
self.env = config_data.get('default_env')
|
|
84
|
-
|
|
85
|
-
# allow empty string to choose root environment when "default_env" is set to something else
|
|
86
|
-
if self.env:
|
|
87
|
-
if self.env not in config_data.get('env', {}):
|
|
88
|
-
raise click.ClickException(f'Environment "{self.env}" not found in {self.config}')
|
|
89
|
-
env_config = config_data['env'][self.env]
|
|
90
|
-
config_data = merge_dicts(config_data, env_config)
|
|
91
|
-
|
|
92
|
-
# to late to have these options from default_map, so process them manually
|
|
93
|
-
if self.host is None:
|
|
94
|
-
self.host = config_data.get('host')
|
|
95
|
-
|
|
96
|
-
if self.token is None:
|
|
97
|
-
self.token = config_data.get('token')
|
|
98
|
-
|
|
99
|
-
if self.user is None:
|
|
100
|
-
self.user = config_data.get('user')
|
|
101
|
-
|
|
102
|
-
if self.password is None:
|
|
103
|
-
self.password = config_data.get('password')
|
|
104
|
-
|
|
105
|
-
if self.disable_tls is None:
|
|
106
|
-
self.disable_tls = config_data.get('disable_tls', False)
|
|
107
|
-
|
|
108
|
-
if self.debug_http:
|
|
109
|
-
import http.client
|
|
110
|
-
|
|
111
|
-
http.client.HTTPConnection.debuglevel = 1
|
|
112
|
-
http.client.HTTPSConnection.debuglevel = 1
|
|
113
|
-
logging.basicConfig(level=logging.DEBUG)
|
|
114
|
-
http_client_logger = logging.getLogger('http.client')
|
|
115
|
-
http_client_logger.setLevel(logging.DEBUG)
|
|
116
|
-
|
|
117
|
-
self.ctx.meta['client'] = DefectDojo(
|
|
118
|
-
base_url=self.host,
|
|
119
|
-
token=self.token,
|
|
120
|
-
auth=None if self.token else (self.user, self.password),
|
|
121
|
-
verify_ssl=not self.disable_tls,
|
|
122
|
-
)
|
|
123
|
-
self.ctx.meta['config_path'] = self.config
|
|
124
|
-
self.ctx.meta['config_data'] = config_data
|
|
125
|
-
self.ctx.meta['selected_env'] = self.env
|
|
126
|
-
|
|
127
|
-
self.ctx.default_map = config_data
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
def merge_dicts(base: dict, override: dict) -> dict:
|
|
131
|
-
"""
|
|
132
|
-
To merge two Python dictionaries where:
|
|
133
|
-
* nested dictionaries should merge recursively
|
|
134
|
-
* lists and other values should be replaced entirely
|
|
135
|
-
|
|
136
|
-
by ChatGPT
|
|
137
|
-
"""
|
|
138
|
-
result = base.copy()
|
|
139
|
-
for key, value in override.items():
|
|
140
|
-
if key in result:
|
|
141
|
-
if isinstance(result[key], dict) and isinstance(value, dict):
|
|
142
|
-
result[key] = merge_dicts(result[key], value)
|
|
143
|
-
else:
|
|
144
|
-
result[key] = value
|
|
145
|
-
else:
|
|
146
|
-
result[key] = value
|
|
147
|
-
return result
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
# TODO: classyclick missing @click.version_option - https://github.com/fopina/classyclick/issues/48
|
|
151
|
-
CLI.click = click.version_option(version=__version__, message='%(version)s')(CLI.click)
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
"""Configuration inspection and editing command."""
|
|
2
|
-
|
|
3
|
-
import json
|
|
4
|
-
import os
|
|
5
|
-
import shlex
|
|
6
|
-
import shutil
|
|
7
|
-
import subprocess
|
|
8
|
-
|
|
9
|
-
import classyclick
|
|
10
|
-
import click
|
|
11
|
-
|
|
12
|
-
from .cli import CLI
|
|
13
|
-
|
|
14
|
-
_MASKED = '<masked>'
|
|
15
|
-
_SECRET_FIELD_PARTS = ('token', 'password')
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
def _mask_value(key: str, value):
|
|
19
|
-
if isinstance(value, dict):
|
|
20
|
-
return {nested_key: _mask_value(nested_key, nested_value) for nested_key, nested_value in value.items()}
|
|
21
|
-
|
|
22
|
-
if isinstance(value, list):
|
|
23
|
-
return [_mask_value(key, item) for item in value]
|
|
24
|
-
|
|
25
|
-
if value is None:
|
|
26
|
-
return None
|
|
27
|
-
|
|
28
|
-
if any(part in key.lower() for part in _SECRET_FIELD_PARTS):
|
|
29
|
-
return _MASKED
|
|
30
|
-
|
|
31
|
-
return value
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
def _resolve_editor() -> str:
|
|
35
|
-
editor = os.environ.get('VISUAL') or os.environ.get('EDITOR')
|
|
36
|
-
if editor:
|
|
37
|
-
return editor
|
|
38
|
-
|
|
39
|
-
for fallback in ('vim', 'vi', 'nano'):
|
|
40
|
-
if shutil.which(fallback):
|
|
41
|
-
return fallback
|
|
42
|
-
|
|
43
|
-
raise click.ClickException('No editor configured. Set VISUAL or EDITOR, or install vim, vi, or nano.')
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
class Config(CLI.Command, classyclick.Command):
|
|
47
|
-
"""Show or edit the current CLI configuration"""
|
|
48
|
-
|
|
49
|
-
edit: bool = classyclick.Option('-e', help='Open the config file in $VISUAL or $EDITOR')
|
|
50
|
-
|
|
51
|
-
def __call__(self):
|
|
52
|
-
ctx = click.get_current_context().find_root()
|
|
53
|
-
config_path = ctx.meta['config_path']
|
|
54
|
-
|
|
55
|
-
if self.edit:
|
|
56
|
-
editor = _resolve_editor()
|
|
57
|
-
try:
|
|
58
|
-
subprocess.run([*shlex.split(editor), str(config_path)], check=True)
|
|
59
|
-
except FileNotFoundError as exc:
|
|
60
|
-
raise click.ClickException(f'Editor command not found: {editor}') from exc
|
|
61
|
-
except subprocess.CalledProcessError as exc:
|
|
62
|
-
raise click.ClickException(f'Editor exited with status {exc.returncode}') from exc
|
|
63
|
-
return
|
|
64
|
-
|
|
65
|
-
config = {key: value for key, value in ctx.meta['config_data'].items() if key != 'env'}
|
|
66
|
-
|
|
67
|
-
click.echo(f'Config file: {click.style(str(config_path), bold=True)}')
|
|
68
|
-
if ctx.meta['selected_env']:
|
|
69
|
-
click.echo(f'Environment: {click.style(ctx.meta["selected_env"], bold=True)}')
|
|
70
|
-
|
|
71
|
-
click.echo(json.dumps(_mask_value('config', config), indent=2, sort_keys=True))
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|