fix: WorkItemAttachments.create() raises ValidationError on actual Plane response

Abierto
#33 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
68/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Tranquilo
Stack tecnológico
python
Área
api

Línea de trabajo

Comienza por WorkItemAttachments.create() y el modelo WorkItemAttachment; después compara su ruta de validación con la respuesta documentada del wrapper de Plane. Reproduce la llamada usando WorkItemAttachmentUploadRequest y verifica que el resultado exponga tanto el registro de attachment anidado como upload_data sin un ValidationError.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Calling client.work_items.attachments.create(...) against a live Plane instance raises:

pydantic.ValidationError: 1 validation error for WorkItemAttachment
asset
  Field required [type=missing, input_value={'upload_data': {...}, 'asset_id': '...', 'attachment': {...}, 'asset_url': '...'}, input_type=dict]

Plane returns a wrapper response, not a flat WorkItemAttachment:

{
  "upload_data": { "url": "...", "fields": { "...S3 multipart policy..." } },
  "asset_id": "427e...",
  "attachment": { "id": "427e...", "asset": "ws/uuid-name.ext", "is_uploaded": false, ... },
  "asset_url": "/api/assets/v2/.../attachments/427e.../"
}

But WorkItemAttachments.create() calls WorkItemAttachment.model_validate(response) directly on the wrapper — WorkItemAttachment is actually nested inside response["attachment"]. Hence the missing-asset validation error.

Reproduction:

from plane import PlaneClient
from plane.models.work_items import WorkItemAttachmentUploadRequest

client = PlaneClient(api_key="<key>", base_url="https://your-plane.example.io")
client.work_items.attachments.create(
    workspace_slug="ws", project_id="<uuid>", work_item_id="<uuid>",
    data=WorkItemAttachmentUploadRequest(name="x.txt", size=10),
)
# raises pydantic.ValidationError

Suggested fix: add a new WorkItemAttachmentCreateResponse model capturing the full wrapper and change WorkItemAttachments.create() to return it. Exposes both the attachment record and the upload data the caller needs for the S3 multipart
POST.

PR coming.

Lenguaje dominante
Python
Estrellas
17
Forks
24
Merge medio
8 d 9 h
PR fusionados (30 d)
2

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de makeplane/plane-python-sdk

Todos los issues de makeplane/plane-python-sdk

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.