troubadix 24.10.1__tar.gz → 25.1.0__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.
Files changed (210) hide show
  1. {troubadix-24.10.1 → troubadix-25.1.0}/PKG-INFO +2 -2
  2. {troubadix-24.10.1 → troubadix-25.1.0}/pyproject.toml +2 -2
  3. troubadix-25.1.0/tests/plugins/test_script_xref_url.py +206 -0
  4. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/__version__.py +1 -1
  5. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/codespell/codespell.additions +2 -0
  6. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/codespell/codespell.exclude +91 -0
  7. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/script_xref_url.py +64 -4
  8. troubadix-24.10.1/tests/plugins/test_script_xref_url.py +0 -87
  9. {troubadix-24.10.1 → troubadix-25.1.0}/LICENSE +0 -0
  10. {troubadix-24.10.1 → troubadix-25.1.0}/README.md +0 -0
  11. {troubadix-24.10.1 → troubadix-25.1.0}/tests/__init__.py +0 -0
  12. {troubadix-24.10.1 → troubadix-25.1.0}/tests/helper/__init__.py +0 -0
  13. {troubadix-24.10.1 → troubadix-25.1.0}/tests/helper/test_linguistic_exception_handler.py +0 -0
  14. {troubadix-24.10.1 → troubadix-25.1.0}/tests/helper/test_patterns.py +0 -0
  15. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/__init__.py +0 -0
  16. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/fail.nasl +0 -0
  17. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/fail2.nasl +0 -0
  18. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test.nasl +0 -0
  19. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_badwords.py +0 -0
  20. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_copyright_text.py +0 -0
  21. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_copyright_year.py +0 -0
  22. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_creation_date.py +0 -0
  23. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_cve_format.py +0 -0
  24. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_cvss_format.py +0 -0
  25. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_dependencies.py +0 -0
  26. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_dependency_category_order.py +0 -0
  27. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_deprecated_dependency.py +0 -0
  28. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_deprecated_functions.py +0 -0
  29. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_double_end_points.py +0 -0
  30. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_duplicate_oid.py +0 -0
  31. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_duplicated_script_tags.py +0 -0
  32. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_encoding.py +0 -0
  33. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_files/fail_bad_new_line.nasl +0 -0
  34. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_files/fail_badwords.nasl +0 -0
  35. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_files/fail_name_and_copyright_newline.nasl +0 -0
  36. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_files/fail_name_newline.nasl +0 -0
  37. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_files/fail_permissions.nasl +0 -0
  38. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_files/fail_spelling.nasl +0 -0
  39. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_files/nasl/21.04/fail.nasl +0 -0
  40. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_files/nasl/21.04/fail_badwords.nasl +0 -0
  41. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_files/nasl/21.04/fail_name_and_copyright_newline.nasl +0 -0
  42. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_files/nasl/21.04/fail_name_newline.nasl +0 -0
  43. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_files/nasl/21.04/fail_solution_template.nasl +0 -0
  44. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_files/nasl/21.04/runner/fail.nasl +0 -0
  45. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_files/nasl/21.04/runner/fail2.nasl +0 -0
  46. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_files/nasl/21.04/runner/test.nasl +0 -0
  47. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_files/nasl/21.04/runner/test_valid_oid.nasl +0 -0
  48. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_files/nasl/21.04/test.inc +0 -0
  49. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_files/nasl/21.04/test.nasl +0 -0
  50. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_files/nasl/warning.nasl +0 -0
  51. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_files/ok_permissions.nasl +0 -0
  52. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_files/test_oid.nasl +0 -0
  53. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_forking_nasl_functions.py +0 -0
  54. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_get_kb_on_services.py +0 -0
  55. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_grammar.py +0 -0
  56. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_http_links_in_tags.py +0 -0
  57. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_illegal_characters.py +0 -0
  58. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_log_messages.py +0 -0
  59. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_malformed_dependencies.py +0 -0
  60. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_misplaced_compare_in_if.py +0 -0
  61. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_missing_desc_exit.py +0 -0
  62. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_missing_tag_solution.py +0 -0
  63. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_multiple_re_parameters.py +0 -0
  64. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_newlines.py +0 -0
  65. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_overlong_description_lines.py +0 -0
  66. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_overlong_script_tags.py +0 -0
  67. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_prod_svc_detect_in_vulnvt.py +0 -0
  68. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_qod.py +0 -0
  69. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_reporting_consistency.py +0 -0
  70. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_script_add_preference_type.py +0 -0
  71. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_script_calls_empty_values.py +0 -0
  72. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_script_calls_recommended.py +0 -0
  73. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_script_category.py +0 -0
  74. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_script_copyright.py +0 -0
  75. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_script_family.py +0 -0
  76. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_script_tag_form.py +0 -0
  77. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_script_tag_whitespaces.py +0 -0
  78. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_script_tags_mandatory.py +0 -0
  79. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_script_version_and_last_modification_tags.py +0 -0
  80. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_script_xref_form.py +0 -0
  81. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_security_messages.py +0 -0
  82. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_set_get_kb_calls.py +0 -0
  83. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_solution_text.py +0 -0
  84. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_solution_type.py +0 -0
  85. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_spaces_before_dots.py +0 -0
  86. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_spaces_in_filename.py +0 -0
  87. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_spelling.py +0 -0
  88. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_tabs.py +0 -0
  89. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_todo_tbd.py +0 -0
  90. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_trailing_spaces_tabs.py +0 -0
  91. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_using_display.py +0 -0
  92. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_valid_oid.py +0 -0
  93. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_valid_script_tag_names.py +0 -0
  94. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_variable_redefinition_in_foreach.py +0 -0
  95. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_vt_file_permissions.py +0 -0
  96. {troubadix-24.10.1 → troubadix-25.1.0}/tests/plugins/test_vt_placement.py +0 -0
  97. {troubadix-24.10.1 → troubadix-25.1.0}/tests/standalone_plugins/__init__.py +0 -0
  98. {troubadix-24.10.1 → troubadix-25.1.0}/tests/standalone_plugins/changed_packages/__init__.py +0 -0
  99. {troubadix-24.10.1 → troubadix-25.1.0}/tests/standalone_plugins/changed_packages/markers/__init__.py +0 -0
  100. {troubadix-24.10.1 → troubadix-25.1.0}/tests/standalone_plugins/changed_packages/markers/test_added_epoch.py +0 -0
  101. {troubadix-24.10.1 → troubadix-25.1.0}/tests/standalone_plugins/changed_packages/markers/test_added_release.py +0 -0
  102. {troubadix-24.10.1 → troubadix-25.1.0}/tests/standalone_plugins/changed_packages/markers/test_added_udeb.py +0 -0
  103. {troubadix-24.10.1 → troubadix-25.1.0}/tests/standalone_plugins/changed_packages/markers/test_changed_update.py +0 -0
  104. {troubadix-24.10.1 → troubadix-25.1.0}/tests/standalone_plugins/changed_packages/markers/test_dropped_architecture.py +0 -0
  105. {troubadix-24.10.1 → troubadix-25.1.0}/tests/standalone_plugins/changed_packages/test_changed_packages.py +0 -0
  106. {troubadix-24.10.1 → troubadix-25.1.0}/tests/standalone_plugins/changed_packages/test_package.py +0 -0
  107. {troubadix-24.10.1 → troubadix-25.1.0}/tests/standalone_plugins/test_changed_cves.py +0 -0
  108. {troubadix-24.10.1 → troubadix-25.1.0}/tests/standalone_plugins/test_changed_oid.py +0 -0
  109. {troubadix-24.10.1 → troubadix-25.1.0}/tests/standalone_plugins/test_deprecate_vts.py +0 -0
  110. {troubadix-24.10.1 → troubadix-25.1.0}/tests/standalone_plugins/test_file_extensions.py +0 -0
  111. {troubadix-24.10.1 → troubadix-25.1.0}/tests/standalone_plugins/test_last_modification.py +0 -0
  112. {troubadix-24.10.1 → troubadix-25.1.0}/tests/standalone_plugins/test_no_solution.py +0 -0
  113. {troubadix-24.10.1 → troubadix-25.1.0}/tests/standalone_plugins/test_version_updated.py +0 -0
  114. {troubadix-24.10.1 → troubadix-25.1.0}/tests/test_argparser.py +0 -0
  115. {troubadix-24.10.1 → troubadix-25.1.0}/tests/test_helper.py +0 -0
  116. {troubadix-24.10.1 → troubadix-25.1.0}/tests/test_naslinter.py +0 -0
  117. {troubadix-24.10.1 → troubadix-25.1.0}/tests/test_reporter.py +0 -0
  118. {troubadix-24.10.1 → troubadix-25.1.0}/tests/test_results.py +0 -0
  119. {troubadix-24.10.1 → troubadix-25.1.0}/tests/test_runner.py +0 -0
  120. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/__init__.py +0 -0
  121. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/argparser.py +0 -0
  122. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/codespell/codespell.ignore +0 -0
  123. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/helper/__init__.py +0 -0
  124. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/helper/helper.py +0 -0
  125. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/helper/linguistic_exception_handler.py +0 -0
  126. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/helper/patterns.py +0 -0
  127. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugin.py +0 -0
  128. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/__init__.py +0 -0
  129. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/badwords.py +0 -0
  130. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/copyright_text.py +0 -0
  131. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/copyright_year.py +0 -0
  132. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/creation_date.py +0 -0
  133. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/cve_format.py +0 -0
  134. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/cvss_format.py +0 -0
  135. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/dependencies.py +0 -0
  136. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/dependency_category_order.py +0 -0
  137. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/deprecated_dependency.py +0 -0
  138. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/deprecated_functions.py +0 -0
  139. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/double_end_points.py +0 -0
  140. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/duplicate_oid.py +0 -0
  141. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/duplicated_script_tags.py +0 -0
  142. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/encoding.py +0 -0
  143. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/forking_nasl_functions.py +0 -0
  144. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/get_kb_on_services.py +0 -0
  145. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/grammar.py +0 -0
  146. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/http_links_in_tags.py +0 -0
  147. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/illegal_characters.py +0 -0
  148. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/log_messages.py +0 -0
  149. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/malformed_dependencies.py +0 -0
  150. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/misplaced_compare_in_if.py +0 -0
  151. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/missing_desc_exit.py +0 -0
  152. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/missing_tag_solution.py +0 -0
  153. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/multiple_re_parameters.py +0 -0
  154. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/newlines.py +0 -0
  155. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/overlong_description_lines.py +0 -0
  156. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/overlong_script_tags.py +0 -0
  157. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/prod_svc_detect_in_vulnvt.py +0 -0
  158. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/qod.py +0 -0
  159. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/reporting_consistency.py +0 -0
  160. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/script_add_preference_type.py +0 -0
  161. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/script_calls_empty_values.py +0 -0
  162. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/script_calls_recommended.py +0 -0
  163. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/script_category.py +0 -0
  164. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/script_copyright.py +0 -0
  165. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/script_family.py +0 -0
  166. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/script_tag_form.py +0 -0
  167. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/script_tag_whitespaces.py +0 -0
  168. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/script_tags_mandatory.py +0 -0
  169. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/script_version_and_last_modification_tags.py +0 -0
  170. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/script_xref_form.py +0 -0
  171. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/security_messages.py +0 -0
  172. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/set_get_kb_calls.py +0 -0
  173. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/solution_text.py +0 -0
  174. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/solution_type.py +0 -0
  175. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/spaces_before_dots.py +0 -0
  176. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/spaces_in_filename.py +0 -0
  177. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/spelling.py +0 -0
  178. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/tabs.py +0 -0
  179. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/todo_tbd.py +0 -0
  180. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/trailing_spaces_tabs.py +0 -0
  181. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/using_display.py +0 -0
  182. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/valid_oid.py +0 -0
  183. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/valid_script_tag_names.py +0 -0
  184. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/variable_assigned_in_if.py +0 -0
  185. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/variable_redefinition_in_foreach.py +0 -0
  186. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/vt_file_permissions.py +0 -0
  187. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/plugins/vt_placement.py +0 -0
  188. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/reporter.py +0 -0
  189. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/results.py +0 -0
  190. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/runner.py +0 -0
  191. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/standalone_plugins/__init__.py +0 -0
  192. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/standalone_plugins/allowed_rev_diff.py +0 -0
  193. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/standalone_plugins/changed_cves.py +0 -0
  194. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/standalone_plugins/changed_oid.py +0 -0
  195. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/standalone_plugins/changed_packages/changed_packages.py +0 -0
  196. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/standalone_plugins/changed_packages/marker/__init__.py +0 -0
  197. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/standalone_plugins/changed_packages/marker/added_epoch.py +0 -0
  198. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/standalone_plugins/changed_packages/marker/added_release.py +0 -0
  199. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/standalone_plugins/changed_packages/marker/added_udeb.py +0 -0
  200. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/standalone_plugins/changed_packages/marker/changed_update.py +0 -0
  201. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/standalone_plugins/changed_packages/marker/dropped_architecture.py +0 -0
  202. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/standalone_plugins/changed_packages/marker/marker.py +0 -0
  203. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/standalone_plugins/changed_packages/package.py +0 -0
  204. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/standalone_plugins/common.py +0 -0
  205. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/standalone_plugins/deprecate_vts.py +0 -0
  206. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/standalone_plugins/file_extensions.py +0 -0
  207. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/standalone_plugins/last_modification.py +0 -0
  208. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/standalone_plugins/no_solution.py +0 -0
  209. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/standalone_plugins/version_updated.py +0 -0
  210. {troubadix-24.10.1 → troubadix-25.1.0}/troubadix/troubadix.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: troubadix
3
- Version: 24.10.1
3
+ Version: 25.1.0
4
4
  Summary: A linting and QA check tool for NASL files
5
5
  Home-page: https://github.com/greenbone/troubadix
6
6
  License: GPL-3.0-or-later
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "troubadix"
3
- version = "24.10.1"
3
+ version = "25.1.0"
4
4
  description = "A linting and QA check tool for NASL files"
5
5
  authors = ["Greenbone <info@greenbone.net>"]
6
6
  license = "GPL-3.0-or-later"
@@ -36,7 +36,7 @@ charset-normalizer = "^3.2.0"
36
36
  [tool.poetry.group.dev.dependencies]
37
37
  autohooks = ">=21.7.0"
38
38
  autohooks-plugin-black = ">=21.12.0"
39
- ruff = ">=0.5.6,<0.8.0"
39
+ ruff = ">=0.5.6,<0.9.0"
40
40
  autohooks-plugin-ruff = "^24.1.0"
41
41
 
42
42
  [tool.black]
@@ -0,0 +1,206 @@
1
+ # Copyright (C) 2022 Greenbone AG
2
+ #
3
+ # SPDX-License-Identifier: GPL-3.0-or-later
4
+ #
5
+ # This program is free software: you can redistribute it and/or modify
6
+ # it under the terms of the GNU General Public License as published by
7
+ # the Free Software Foundation, either version 3 of the License, or
8
+ # (at your option) any later version.
9
+ #
10
+ # This program is distributed in the hope that it will be useful,
11
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ # GNU General Public License for more details.
14
+ #
15
+ # You should have received a copy of the GNU General Public License
16
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
17
+
18
+ from pathlib import Path
19
+
20
+ from tests.plugins import PluginTestCase
21
+ from troubadix.plugin import LinterError
22
+ from troubadix.plugins.script_xref_url import CheckScriptXrefUrl
23
+
24
+
25
+ class CheckScriptXrefUrlTestCase(PluginTestCase):
26
+ path = Path("some/file.nasl")
27
+
28
+ def test_ok(self):
29
+ content = (
30
+ ' script_xref(name:"URL", value:"http://www.example.com");\n'
31
+ # pylint: disable=line-too-long
32
+ # Various cases from https://github.com/python-validators/validators/issues/296
33
+ ' script_xref(name:"URL", value:"https://launchpad.support.sap.com/#/notes/2718993");\n'
34
+ ' script_xref(name:"URL", value:"https://forums.livezilla.net/index.php?/topic/10983-fg-vd-19-086-livezilla-server-is-vulnerable-to-sql-injection-ii/");\n'
35
+ ' script_xref(name:"URL", value:"http://www.brocade.com/en/backend-content/pdf-page.html?/content/dam/common/documents/content-types/security-bulletin/brocade-security-advisory-2016-168.pdf");\n'
36
+ ' script_xref(name:"URL", value:"https://groups.google.com/forum/?fromgroups#!topic/rubyonrails-security/8SA-M3as7A8");\n'
37
+ ' script_xref(name:"URL", value:"https://forum.bitdefender.com/index.php?/topic/75470-doubleagent/");\n'
38
+ ' script_xref(name:"URL", value:"https://www.smartftp.com/forums/index.php?/topic/16425-smartftp-client-40-change-log/");\n'
39
+ ' script_xref(name:"URL", value:"https://exchange.xforce.ibmcloud.com/#/vulnerabilities/100912");\n'
40
+ ' script_xref(name:"URL", value:"https://support.microsoft.com/en-us/lifecycle#gp/Microsoft-Internet-Explorer");\n'
41
+ ' script_xref(name:"URL", value:"https://www.watchguard.com/support/release-notes/fireware/12/en-US/EN_ReleaseNotes_Fireware_12_5_9/index.html#Fireware/en-US/resolved_issues.html");\n'
42
+ ' script_xref(name:"URL", value:"https://code.wireshark.org/review/#/c/25660/");\n'
43
+ ' script_xref(name:"URL", value:"https://groups.google.com/forum/#!topic/kubernetes-announce/yBrFf5nmvfI");\n'
44
+ ' script_xref(name:"URL", value:"https://issues.sonatype.org/plugins/servlet/mobile#issue/NEXUS-16870");\n'
45
+ ' script_xref(name:"URL", value:"http://forums.livezilla.net/index.php?/topic/163-livezilla-changelog/");\n'
46
+ ' script_xref(name:"URL", value:"https://www.watchguard.com/support/release-notes/fireware/11/en-US/EN_ReleaseNotes_Fireware_11_12_1/index.html#Fireware/en-US/resolved_issues.html%3FTocPath%3D_____13");\n'
47
+ ' script_xref(name:"URL", value:"https://review.typo3.org/#/c/37013");\n'
48
+ ' script_xref(name:"URL", value:"https://forums.malwarebytes.org/index.php?/topic/158251-malwarebytes-anti-exploit-hall-of-fame/");\n'
49
+ ' script_xref(name:"URL", value:"http://speedtouch.sourceforge.io/index.php?/news.en.html");\n'
50
+ ' script_xref(name:"URL", value:"https://support.k7computing.com/index.php?/Knowledgebase/Article/View/173/41/advisory-issued-on-6th-november-2017");\n'
51
+ ' script_xref(name:"URL", value:"http://support.novell.com/cgi-bin/search/searchtid.cgi?/10077872.htm");\n'
52
+ ' script_xref(name:"URL", value:"https://blog.fuzzing-project.org/54-Update-on-MatrixSSL-miscalculation-CVE-2016-8671,-incomplete-fix-for-CVE-2016-6887.html");\n'
53
+ ' script_xref(name:"URL", value:"http://www.scaprepo.com/view.jsp?id=oval:org.secpod.oval:def:701638");\n'
54
+ ' script_xref(name:"URL", value:"https://blog.fuzzing-project.org/46-Various-invalid-memory-reads-in-ImageMagick-WPG,-DDS,-DCM.html");\n'
55
+ ' script_xref(name:"URL", value:"http://forum.wampserver.com/read.php?2,153491");\n'
56
+ ' script_xref(name:"URL", value:"https://secure1.securityspace.com/smysecure/catid.html?in=FreeBSD-SA-10:04.jail.asc");\n'
57
+ ' script_xref(name:"URL", value:"http://www.corelan.be:8800/index.php/forum/security-advisories/corelan-10-004-turboftp-server-1-00-712-dos/");\n'
58
+ ' script_xref(name:"URL", value:"http://core.yehg.net/lab/pr0js/advisories/dll_hijacking/[flash_player]_10.1.x_insecure_dll_hijacking_(dwmapi.dll)");\n'
59
+ ' script_xref(name:"URL", value:"http://mail-archives.apache.org/mod_mbox/perl-advocacy/200904.mbox/<ad28918e0904011458h273a71d4x408f1ed286c9dfbc@mail.gmail.com>");\n'
60
+ ' script_xref(name:"URL", value:"https://confluence.atlassian.com/security/security-bulletin-may-21-2024-1387867145.html");\n'
61
+ # pylint: enable=line-too-long
62
+ )
63
+ fake_context = self.create_file_plugin_context(
64
+ nasl_file=self.path, file_content=content
65
+ )
66
+ plugin = CheckScriptXrefUrl(fake_context)
67
+
68
+ results = list(plugin.run())
69
+
70
+ self.assertEqual(len(results), 0)
71
+
72
+ def test_exclude_inc_file(self):
73
+ path = Path("some/file.inc")
74
+ fake_context = self.create_file_plugin_context(nasl_file=path)
75
+ plugin = CheckScriptXrefUrl(fake_context)
76
+
77
+ results = list(plugin.run())
78
+
79
+ self.assertEqual(len(results), 0)
80
+
81
+ def test_generic_invalid_url(self):
82
+ content = ' script_xref(name:"URL", value:"www.example.com");\n'
83
+ fake_context = self.create_file_plugin_context(
84
+ nasl_file=self.path, file_content=content
85
+ )
86
+ plugin = CheckScriptXrefUrl(fake_context)
87
+
88
+ results = list(plugin.run())
89
+
90
+ self.assertEqual(len(results), 1)
91
+ self.assertIsInstance(results[0], LinterError)
92
+ self.assertEqual(
93
+ 'script_xref(name:"URL", value:"www.example.com");: Invalid URL'
94
+ " value",
95
+ results[0].message,
96
+ )
97
+
98
+ def test_invalid_url_trailing_angle_bracket(self):
99
+ content = ' script_xref(name:"URL", value:"https://docs.docker.com/engine/release-notes/24.0/#2407>");\n'
100
+ fake_context = self.create_file_plugin_context(
101
+ nasl_file=self.path, file_content=content
102
+ )
103
+ plugin = CheckScriptXrefUrl(fake_context)
104
+
105
+ results = list(plugin.run())
106
+
107
+ self.assertEqual(len(results), 1)
108
+ self.assertIsInstance(results[0], LinterError)
109
+ self.assertEqual(
110
+ 'script_xref(name:"URL", value:"https://docs.docker.com/engine/'
111
+ 'release-notes/24.0/#2407>");: Invalid URL'
112
+ " value (trailing '>')",
113
+ results[0].message,
114
+ )
115
+
116
+ def test_invalid_url_trailing_comma(self):
117
+ content = ' script_xref(name:"URL", value:"https://dev.mysql.com/doc/refman/5.7/en/mysql-stmt-fetch.html,");\n'
118
+ fake_context = self.create_file_plugin_context(
119
+ nasl_file=self.path, file_content=content
120
+ )
121
+ plugin = CheckScriptXrefUrl(fake_context)
122
+
123
+ results = list(plugin.run())
124
+
125
+ self.assertEqual(len(results), 1)
126
+ self.assertIsInstance(results[0], LinterError)
127
+ self.assertEqual(
128
+ 'script_xref(name:"URL", value:"https://dev.mysql.com/doc/refman/5.7/en/'
129
+ 'mysql-stmt-fetch.html,");: Invalid URL'
130
+ " value (trailing ',')",
131
+ results[0].message,
132
+ )
133
+
134
+ def test_invalid_url_trailing_punctuation_mark(self):
135
+ content = ' script_xref(name:"URL", value:"http://isec.pl/vulnerabilities/isec-0017-binfmt_elf.txt:");\n'
136
+ fake_context = self.create_file_plugin_context(
137
+ nasl_file=self.path, file_content=content
138
+ )
139
+ plugin = CheckScriptXrefUrl(fake_context)
140
+
141
+ results = list(plugin.run())
142
+
143
+ self.assertEqual(len(results), 1)
144
+ self.assertIsInstance(results[0], LinterError)
145
+ self.assertEqual(
146
+ 'script_xref(name:"URL", value:"http://isec.pl/vulnerabilities/'
147
+ 'isec-0017-binfmt_elf.txt:");: Invalid URL'
148
+ " value (trailing ':')",
149
+ results[0].message,
150
+ )
151
+
152
+ def test_invalid_url_trailing_square_bracket(self):
153
+ content = (
154
+ ' script_xref(name:"URL", value:"https://example.com/foo/bar]");\n'
155
+ )
156
+ fake_context = self.create_file_plugin_context(
157
+ nasl_file=self.path, file_content=content
158
+ )
159
+ plugin = CheckScriptXrefUrl(fake_context)
160
+
161
+ results = list(plugin.run())
162
+
163
+ self.assertEqual(len(results), 1)
164
+ self.assertIsInstance(results[0], LinterError)
165
+ self.assertEqual(
166
+ 'script_xref(name:"URL", value:"https://example.com/foo/bar]");: Invalid URL'
167
+ " value (trailing ']')",
168
+ results[0].message,
169
+ )
170
+
171
+ def test_invalid_url_trailing_round_bracket(self):
172
+ content = (
173
+ ' script_xref(name:"URL", value:"https://example.com/foo/bar)");\n'
174
+ )
175
+ fake_context = self.create_file_plugin_context(
176
+ nasl_file=self.path, file_content=content
177
+ )
178
+ plugin = CheckScriptXrefUrl(fake_context)
179
+
180
+ results = list(plugin.run())
181
+
182
+ self.assertEqual(len(results), 1)
183
+ self.assertIsInstance(results[0], LinterError)
184
+ self.assertEqual(
185
+ 'script_xref(name:"URL", value:"https://example.com/foo/bar)");: Invalid URL'
186
+ " value (trailing ')')",
187
+ results[0].message,
188
+ )
189
+
190
+ def test_invalid_url_wrong_ending(self):
191
+ content = ' script_xref(name:"URL", value:"https://confluence.atlassian.com/security/security-bulletin-may-21-2024-1387867145.htmll");\n'
192
+ fake_context = self.create_file_plugin_context(
193
+ nasl_file=self.path, file_content=content
194
+ )
195
+ plugin = CheckScriptXrefUrl(fake_context)
196
+
197
+ results = list(plugin.run())
198
+
199
+ self.assertEqual(len(results), 1)
200
+ self.assertIsInstance(results[0], LinterError)
201
+ self.assertEqual(
202
+ 'script_xref(name:"URL", value:"https://confluence.atlassian.com/security/'
203
+ 'security-bulletin-may-21-2024-1387867145.htmll");: Invalid URL'
204
+ " value (wrong file extension)",
205
+ results[0].message,
206
+ )
@@ -2,4 +2,4 @@
2
2
 
3
3
  # THIS IS AN AUTOGENERATED FILE. DO NOT TOUCH!
4
4
 
5
- __version__ = "24.10.1"
5
+ __version__ = "25.1.0"
@@ -20,3 +20,5 @@ sequested->requested
20
20
  entrepris->enterprise
21
21
  entreprise->enterprise
22
22
  entreprises->enterprises
23
+ iit->it
24
+ itt->it