Skip to content
Snippets Groups Projects
Commit f41a50fe authored by Eva Bardou's avatar Eva Bardou Committed by Bastien Abadie
Browse files

Remove StartRepositoryImport endpoint and related serializer

parent 888f57f8
No related branches found
No related tags found
1 merge request!892Remove StartRepositoryImport endpoint and related serializer
......@@ -22,7 +22,7 @@ from arkindex.dataimport.models import \
from arkindex.dataimport.serializers.ml_tool import MLToolSerializer, MLToolTaskSerializer
from arkindex.dataimport.serializers.files import DataFileSerializer, DataFileCreateSerializer
from arkindex.dataimport.serializers.git import \
RepositorySerializer, RepositoryStartImportSerializer, ExternalRepositorySerializer, RevisionSerializer
RepositorySerializer, ExternalRepositorySerializer, RevisionSerializer
from arkindex.dataimport.serializers.imports import (
DataImportLightSerializer, DataImportSerializer,
DataImportFromFilesSerializer, ElementsWorkflowSerializer, WorkerRunLightSerializer, WorkerRunSerializer,
......@@ -511,36 +511,6 @@ class RepositoryRetrieve(CorpusACLMixin, RetrieveDestroyAPIView):
return super().perform_destroy(instance)
class RepositoryStartImport(RetrieveAPIView):
"""
Start a data import on the latest revision on a repository.
"""
permission_classes = (IsVerified, )
serializer_class = RepositoryStartImportSerializer
openapi_overrides = {
'operationId': 'StartRepositoryImport',
'tags': ['repos'],
}
def get_queryset(self):
return Repository.objects.filter(
corpus__in=Corpus.objects.writable(self.request.user),
)
def retrieve(self, request, *args, **kwargs):
repo = self.get_object()
if not repo.enabled:
raise ValidationError("This repository does not have any associated credentials")
latest_commit_sha = repo.provider.get_latest_commit_sha(repo)
rev, _ = repo.provider.get_or_create_revision(repo, latest_commit_sha)
di = rev.start_import()
return Response(self.get_serializer(di).data)
class RevisionRetrieve(CorpusACLMixin, RetrieveAPIView):
"""
Retrieve a revision
......
from rest_framework import serializers
from arkindex.project.serializer_fields import EnumField
from arkindex.documents.models import Corpus
from arkindex.dataimport.models import DataImport, Repository, Revision, GitRef, GitRefType, WorkerVersionState
from arkindex.dataimport.models import Repository, Revision, GitRef, GitRefType, WorkerVersionState
import gitlab.v4.objects
import urllib
......@@ -92,20 +92,6 @@ class RepositorySerializer(serializers.ModelSerializer):
}
class RepositoryStartImportSerializer(serializers.ModelSerializer):
"""
A serializer used by the RepositoryStartImport endpoint to return a DataImport ID.
This serializer is required to get the OpenAPI schema generation to work.
"""
import_id = serializers.UUIDField(source='id')
class Meta:
model = DataImport
fields = ('import_id',)
read_only_fields = ('import_id',)
class ExternalRepositorySerializer(serializers.Serializer):
"""
Serialize a Git repository from an external API
......
......@@ -49,20 +49,6 @@ class TestRepositories(FixtureTestCase):
self.assertEqual(Workflow.objects.count(), 0)
def test_start_no_credentials(self):
"""
Test the repository start endpoint fails without credentials
"""
self.client.force_login(self.superuser)
self.repo.credentials = None
self.repo.save()
self.assertFalse(self.repo.enabled)
self.assertEqual(Workflow.objects.count(), 0)
resp = self.client.get(reverse('api:repository-import', kwargs={'pk': str(self.repo.id)}))
self.assertEqual(resp.status_code, status.HTTP_400_BAD_REQUEST)
self.assertEqual(Workflow.objects.count(), 0)
def test_list_repository_requires_login(self):
response = self.client.get(reverse('api:repository-list'))
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
......
......@@ -25,7 +25,7 @@ from arkindex.documents.api.admin import ReindexStart
from arkindex.dataimport.api import (
DataImportsList, DataImportDetails, DataImportRetry, StartProcess, DataImportElements,
DataFileList, DataFileRetrieve, DataFileUpload, DataImportFromFiles,
RepositoryList, RepositoryRetrieve, RepositoryStartImport, DataFileCreate,
RepositoryList, RepositoryRetrieve, DataFileCreate,
GitRepositoryImportHook, AvailableRepositoriesList, RevisionRetrieve,
MLToolList, CorpusWorkflow, WorkerList, WorkerVersionList, WorkerVersionRetrieve,
WorkerRunList, WorkerRunDetails, ImportTranskribus
......@@ -125,7 +125,6 @@ api = [
# Git import workflows
path('imports/repos/', RepositoryList.as_view(), name='repository-list'),
path('imports/repos/<uuid:pk>/', RepositoryRetrieve.as_view(), name='repository-retrieve'),
path('imports/repos/<uuid:pk>/start/', RepositoryStartImport.as_view(), name='repository-import'),
path('imports/repos/search/<uuid:pk>/', AvailableRepositoriesList.as_view(), name='available-repositories'),
path('imports/hook/<uuid:pk>/', GitRepositoryImportHook.as_view(), name='import-hook'),
path('imports/revisions/<uuid:pk>/', RevisionRetrieve.as_view(), name='revision-retrieve'),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment