|
45 | 45 | from titlecase import titlecase |
46 | 46 |
|
47 | 47 | from dojo.base_models.base import BaseModel |
| 48 | +from dojo.cicd_infrastructure.models import CICDInfrastructure |
48 | 49 | from dojo.validators import cvss3_validator, cvss4_validator |
49 | 50 |
|
50 | 51 | if TYPE_CHECKING: |
@@ -1337,26 +1338,6 @@ def __str__(self): |
1337 | 1338 | return self.name |
1338 | 1339 |
|
1339 | 1340 |
|
1340 | | -class CICDInfrastructure(models.Model): |
1341 | | - INFRASTRUCTURE_TYPE_CHOICES = ( |
1342 | | - ("build_server", "Build Server"), |
1343 | | - ("scm_server", "SCM Server"), |
1344 | | - ("orchestration", "Orchestration Engine"), |
1345 | | - ) |
1346 | | - |
1347 | | - name = models.CharField(max_length=200) |
1348 | | - description = models.CharField(max_length=2000, blank=True, default="") |
1349 | | - url = models.URLField(max_length=2000, blank=True, default="", help_text=_("Public URL of the tool (e.g., https://jenkins.company.com)")) |
1350 | | - infrastructure_type = models.CharField(max_length=30, choices=INFRASTRUCTURE_TYPE_CHOICES) |
1351 | | - |
1352 | | - class Meta: |
1353 | | - ordering = ["name"] |
1354 | | - unique_together = [("name", "infrastructure_type")] |
1355 | | - |
1356 | | - def __str__(self): |
1357 | | - return self.name |
1358 | | - |
1359 | | - |
1360 | 1341 | class Product_API_Scan_Configuration(models.Model): |
1361 | 1342 | product = models.ForeignKey(Product, null=False, blank=False, on_delete=models.CASCADE) |
1362 | 1343 | tool_configuration = models.ForeignKey(Tool_Configuration, null=False, blank=False, on_delete=models.CASCADE) |
@@ -1493,9 +1474,9 @@ class Engagement(BaseModel): |
1493 | 1474 | branch_tag = models.CharField(editable=True, max_length=150, |
1494 | 1475 | null=True, blank=True, help_text=_("Tag or branch of the product the engagement tested."), verbose_name=_("Branch/Tag")) |
1495 | 1476 | source_code_management_uri = models.URLField(max_length=600, null=True, blank=True, editable=True, verbose_name=_("Repo"), help_text=_("Resource link to source code")) |
1496 | | - cicd_build_server = models.ForeignKey("CICDInfrastructure", null=True, blank=True, related_name="engagements_as_build_server", on_delete=models.SET_NULL, limit_choices_to={"infrastructure_type": "build_server"}, verbose_name=_("Build Server"), help_text=_("Build server used for this CI/CD engagement")) |
1497 | | - cicd_scm_server = models.ForeignKey("CICDInfrastructure", null=True, blank=True, related_name="engagements_as_scm_server", on_delete=models.SET_NULL, limit_choices_to={"infrastructure_type": "scm_server"}, verbose_name=_("SCM Server"), help_text=_("Source code management server used for this CI/CD engagement")) |
1498 | | - cicd_orchestration_engine = models.ForeignKey("CICDInfrastructure", null=True, blank=True, related_name="engagements_as_orchestration", on_delete=models.SET_NULL, limit_choices_to={"infrastructure_type": "orchestration"}, verbose_name=_("Orchestration Engine"), help_text=_("Orchestration engine used for this CI/CD engagement")) |
| 1477 | + cicd_build_server = models.ForeignKey(CICDInfrastructure, null=True, blank=True, related_name="engagements_as_build_server", on_delete=models.SET_NULL, limit_choices_to={"infrastructure_type": "build_server"}, verbose_name=_("Build Server"), help_text=_("Build server used for this CI/CD engagement")) |
| 1478 | + cicd_scm_server = models.ForeignKey(CICDInfrastructure, null=True, blank=True, related_name="engagements_as_scm_server", on_delete=models.SET_NULL, limit_choices_to={"infrastructure_type": "scm_server"}, verbose_name=_("SCM Server"), help_text=_("Source code management server used for this CI/CD engagement")) |
| 1479 | + cicd_orchestration_engine = models.ForeignKey(CICDInfrastructure, null=True, blank=True, related_name="engagements_as_orchestration", on_delete=models.SET_NULL, limit_choices_to={"infrastructure_type": "orchestration"}, verbose_name=_("Orchestration Engine"), help_text=_("Orchestration engine used for this CI/CD engagement")) |
1499 | 1480 | deduplication_on_engagement = models.BooleanField(default=False, verbose_name=_("Deduplication within this engagement only"), help_text=_("If enabled deduplication will only mark a finding in this engagement as duplicate of another finding if both findings are in this engagement. If disabled, deduplication is on the product level.")) |
1500 | 1481 |
|
1501 | 1482 | tags = TagField(blank=True, force_lowercase=True, help_text=_("Add tags that help describe this engagement. Choose from the list or add new tags. Press Enter key to add.")) |
@@ -4445,7 +4426,6 @@ def __str__(self): |
4445 | 4426 | admin.site.register(FileUpload) |
4446 | 4427 | admin.site.register(FileAccessToken) |
4447 | 4428 | admin.site.register(Engagement) |
4448 | | -admin.site.register(CICDInfrastructure) |
4449 | 4429 | admin.site.register(Risk_Acceptance) |
4450 | 4430 | admin.site.register(Check_List) |
4451 | 4431 | admin.site.register(Test_Type) |
|
0 commit comments