|
| 1 | +import structlog |
| 2 | + |
| 3 | +from integrations.common.views import ProjectIntegrationBaseViewSet |
| 4 | +from integrations.gitlab.models import GitLabConfiguration |
| 5 | +from integrations.gitlab.serializers import GitLabConfigurationSerializer |
| 6 | + |
| 7 | +logger = structlog.get_logger("gitlab") |
| 8 | + |
| 9 | + |
| 10 | +class GitLabConfigurationViewSet(ProjectIntegrationBaseViewSet): |
| 11 | + serializer_class = GitLabConfigurationSerializer # type: ignore[assignment] |
| 12 | + model_class = GitLabConfiguration # type: ignore[assignment] |
| 13 | + pagination_class = None |
| 14 | + |
| 15 | + def _log_for( |
| 16 | + self, instance: GitLabConfiguration |
| 17 | + ) -> structlog.typing.FilteringBoundLogger: |
| 18 | + return logger.bind( # type: ignore[no-any-return] |
| 19 | + project__id=instance.project.id, |
| 20 | + organisation__id=instance.project.organisation_id, |
| 21 | + ) |
| 22 | + |
| 23 | + def perform_create(self, serializer: GitLabConfigurationSerializer) -> None: # type: ignore[override] |
| 24 | + super().perform_create(serializer) |
| 25 | + instance: GitLabConfiguration = serializer.instance # type: ignore[assignment] |
| 26 | + self._log_for(instance).info( |
| 27 | + "gitlab-configuration-created", |
| 28 | + gitlab_instance_url=instance.gitlab_instance_url, |
| 29 | + ) |
| 30 | + |
| 31 | + def perform_update(self, serializer: GitLabConfigurationSerializer) -> None: # type: ignore[override] |
| 32 | + super().perform_update(serializer) |
| 33 | + instance: GitLabConfiguration = serializer.instance # type: ignore[assignment] |
| 34 | + self._log_for(instance).info( |
| 35 | + "gitlab-configuration-updated", |
| 36 | + gitlab_instance_url=instance.gitlab_instance_url, |
| 37 | + ) |
| 38 | + |
| 39 | + def perform_destroy(self, instance: GitLabConfiguration) -> None: |
| 40 | + log = self._log_for(instance) |
| 41 | + super().perform_destroy(instance) |
| 42 | + log.info("gitlab-configuration-deleted") |
0 commit comments