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 52de920 Move import from SVN to the release writer interface
52de920 is described below
commit 52de920db05bbc60ee071f56fcf9a2957eb14af4
Author: Sean B. Palmer <[email protected]>
AuthorDate: Thu Sep 11 14:18:39 2025 +0100
Move import from SVN to the release writer interface
---
atr/routes/draft.py | 29 ++++++++---------------------
atr/storage/writers/release.py | 25 +++++++++++++++++++++++++
2 files changed, 33 insertions(+), 21 deletions(-)
diff --git a/atr/routes/draft.py b/atr/routes/draft.py
index fe35546..7b9ce45 100644
--- a/atr/routes/draft.py
+++ b/atr/routes/draft.py
@@ -31,7 +31,6 @@ import quart
import atr.analysis as analysis
import atr.construct as construct
-import atr.db as db
import atr.forms as forms
import atr.log as log
import atr.models.sql as sql
@@ -334,27 +333,15 @@ async def svnload(session: routes.CommitterSession,
project_name: str, version_n
)
try:
- task_args = {
- "svn_url": str(form.svn_url.data),
- "revision": str(form.revision.data),
- "target_subdirectory": str(form.target_subdirectory.data) if
form.target_subdirectory.data else None,
- "project_name": project_name,
- "version_name": version_name,
- "asf_uid": session.uid,
- }
- # TODO: Move this to the storage interface
- async with db.session() as data:
- svn_import_task = sql.Task(
- task_type=sql.TaskType.SVN_IMPORT_FILES,
- task_args=task_args,
- asf_uid=util.unwrap(session.uid),
- added=datetime.datetime.now(datetime.UTC),
- status=sql.TaskStatus.QUEUED,
- project_name=project_name,
- version_name=version_name,
+ async with storage.write(session.uid) as write:
+ wacp = await write.as_project_committee_member(project_name)
+ await wacp.release.import_from_svn(
+ project_name,
+ version_name,
+ str(form.svn_url.data),
+ str(form.revision.data),
+ str(form.target_subdirectory.data) if
form.target_subdirectory.data else None,
)
- data.add(svn_import_task)
- await data.commit()
except Exception:
log.exception("Error queueing SVN import task:")
diff --git a/atr/storage/writers/release.py b/atr/storage/writers/release.py
index b0b2475..9b050aa 100644
--- a/atr/storage/writers/release.py
+++ b/atr/storage/writers/release.py
@@ -89,6 +89,31 @@ class CommitteeParticipant(FoundationCommitter):
) as _creating:
yield _creating
+ async def import_from_svn(
+ self, project_name: str, version_name: str, svn_url: str, revision:
str, target_subdirectory: str | None
+ ) -> sql.Task:
+ task_args = {
+ "svn_url": svn_url,
+ "revision": revision,
+ "target_subdirectory": target_subdirectory,
+ "project_name": project_name,
+ "version_name": version_name,
+ "asf_uid": self.__asf_uid,
+ }
+ svn_import_task = sql.Task(
+ task_type=sql.TaskType.SVN_IMPORT_FILES,
+ task_args=task_args,
+ 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,
+ )
+ self.__data.add(svn_import_task)
+ await self.__data.commit()
+ await self.__data.refresh(svn_import_task)
+ return svn_import_task
+
async def start(self, project_name: str, version: str) ->
tuple[sql.Release, sql.Project]:
"""Creates the initial release draft record and revision directory."""
# Get the project from the project name
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]