This is an automated email from the ASF dual-hosted git repository.

sbp pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tooling-trusted-release.git


The following commit(s) were added to refs/heads/main by this push:
     new 6508a9b  Move augmentation task code to the storage interface
6508a9b is described below

commit 6508a9b861b965c90e9ba1135a2dba2772ee166c
Author: Sean B. Palmer <[email protected]>
AuthorDate: Thu Sep 11 18:37:13 2025 +0100

    Move augmentation task code to the storage interface
---
 atr/routes/sbom.py          | 25 +++----------------------
 atr/storage/writers/sbom.py | 28 ++++++++++++++++++++++++++++
 2 files changed, 31 insertions(+), 22 deletions(-)

diff --git a/atr/routes/sbom.py b/atr/routes/sbom.py
index 8c360db..a0f6531 100644
--- a/atr/routes/sbom.py
+++ b/atr/routes/sbom.py
@@ -17,7 +17,6 @@
 
 from __future__ import annotations
 
-import datetime
 import json
 import pathlib
 from typing import TYPE_CHECKING
@@ -35,7 +34,7 @@ import atr.models.results as results
 import atr.models.sql as sql
 import atr.routes as routes
 import atr.sbomtool as sbomtool
-import atr.tasks as tasks
+import atr.storage as storage
 import atr.template as template
 import atr.util as util
 
@@ -66,26 +65,8 @@ async def augment(
             if revision_number is None:
                 raise RuntimeError("No revision number found for new revision 
creation")
             log.info(f"Augmenting SBOM for {project_name} {version_name} 
{revision_number} {rel_path}")
-            # TODO: Move this to the storage interface
-            sbom_task = sql.Task(
-                task_type=sql.TaskType.SBOM_AUGMENT,
-                task_args=tasks.sbom.FileArgs(
-                    project_name=project_name,
-                    version_name=version_name,
-                    revision_number=revision_number,
-                    file_path=str(rel_path),
-                    asf_uid=util.unwrap(session.uid),
-                ).model_dump(),
-                asf_uid=util.unwrap(session.uid),
-                added=datetime.datetime.now(datetime.UTC),
-                status=sql.TaskStatus.QUEUED,
-                project_name=project_name,
-                version_name=version_name,
-                revision_number=revision_number,
-            )
-            data.add(sbom_task)
-            await data.commit()
-            await data.refresh(sbom_task)
+        async with storage.write_as_project_committee_member(project_name) as 
wacm:
+            sbom_task = await wacm.sbom.augment_cyclonedx(project_name, 
version_name, revision_number, rel_path)
 
     except Exception as e:
         log.exception("Error augmenting SBOM:")
diff --git a/atr/storage/writers/sbom.py b/atr/storage/writers/sbom.py
index 25323f0..8dfa97b 100644
--- a/atr/storage/writers/sbom.py
+++ b/atr/storage/writers/sbom.py
@@ -75,6 +75,34 @@ class CommitteeParticipant(FoundationCommitter):
         self.__asf_uid = asf_uid
         self.__committee_name = committee_name
 
+    async def augment_cyclonedx(
+        self,
+        project_name: str,
+        version_name: str,
+        revision_number: str,
+        rel_path: pathlib.Path,
+    ) -> sql.Task:
+        sbom_task = sql.Task(
+            task_type=sql.TaskType.SBOM_AUGMENT,
+            task_args=sbom.FileArgs(
+                project_name=project_name,
+                version_name=version_name,
+                revision_number=revision_number,
+                file_path=str(rel_path),
+                asf_uid=util.unwrap(self.__asf_uid),
+            ).model_dump(),
+            asf_uid=util.unwrap(self.__asf_uid),
+            added=datetime.datetime.now(datetime.UTC),
+            status=sql.TaskStatus.QUEUED,
+            project_name=project_name,
+            version_name=version_name,
+            revision_number=revision_number,
+        )
+        self.__data.add(sbom_task)
+        await self.__data.commit()
+        await self.__data.refresh(sbom_task)
+        return sbom_task
+
     async def generate_cyclonedx(
         self,
         project_name: str,


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to