Proyectos
Gestionar proyectos y miembros del proyecto.
Los puntos finales del proyecto requieren contexto del espacio de trabajo. Pase workspaceId en solicitudes API admitidas o utilice un token con ámbito de espacio de trabajo.
Los proyectos no existen en el espacio personal. Si workspaceId no se puede resolver desde el parámetro de consulta o token, los puntos finales del proyecto devuelven 400.
Proyectos
| Método | Camino | Propósito |
|---|---|---|
| GET | /v1/projects |
Listar proyectos visibles en el espacio de trabajo seleccionado |
| POST | /v1/projects |
Crear un proyecto |
| PATCH | /v1/projects/:projectId |
Actualizar un proyecto |
Los proyectos se pueden utilizar en scope: { "type": "projects", "ids": [...] } para paquetes y pistas privados.
Se requiere el proyecto name. description acepta contenido Markdown. Las actualizaciones utilizan la semántica PATCH, por lo que los campos omitidos permanecen sin cambios.
La eliminación o desactivación del proyecto no se expone a través del HTTP API. Utilice la aplicación web para gestionar el ciclo de vida del proyecto.
Miembros del proyecto
| Método | Camino | Propósito |
|---|---|---|
| POST | /v1/projects/members/list |
Listar miembros según ID de proyecto |
| PUT | /v1/projects/:projectId/members |
Agregar miembros del proyecto |
| DELETE | /v1/projects/:projectId/members |
Eliminar miembros del proyecto de forma masiva |
| DELETE | /v1/projects/:projectId/members/:userId |
Eliminar un miembro del proyecto |
POST /v1/projects/members/list toma { "projectIds": [...] }.
PUT /v1/projects/:projectId/members acepta el cuerpo heredado de un solo miembro o el cuerpo masivo:
{ "userId": "user-id" }{ "userIds": ["user-id-1", "user-id-2"] }La respuesta masiva contiene un resultado para cada puesto de entrada más el recuento de miembros autorizados del proyecto:
{
"results": [
{ "inputIndex": 0, "userId": "user-id-1", "status": "added", "projectId": "project-id" },
{
"inputIndex": 1,
"userId": "user-id-2",
"status": "failed",
"code": "NOT_WORKSPACE_MEMBER",
"projectId": "project-id"
}
],
"memberCount": 2
}Los estados de adición de miembros del proyecto son added, unchanged, skipped y failed. code está presente cuando un resultado necesita explicación, incluidos ALREADY_MEMBER, DUPLICATE_INPUT, USER_NOT_FOUND y NOT_WORKSPACE_MEMBER. Los errores de adición esperados para usuarios individuales se informan en results; inspeccione cada resultado en lugar de tratar una solicitud exitosa como un lote de todo o nada.
Las eliminaciones masivas utilizan un parámetro de consulta userIds separado por comas en lugar de un cuerpo de solicitud, porque algunos intermediarios eliminan los cuerpos de las solicitudes DELETE:
DELETE /v1/projects/:projectId/members?userIds=user-id-1,user-id-2
Authorization: Bearer <token>La eliminación masiva devuelve un resultado por posición de entrada más el memberCount autorizado. Los estados de eliminación son deleted, skipped y failed; Los códigos explicativos incluyen DUPLICATE_INPUT y MEMBER_NOT_FOUND. Un punto final de eliminación de un solo miembro utiliza la misma operación transaccional masiva internamente.
Las llamadas masivas de miembros del proyecto aceptan hasta 100 ID de usuario por solicitud.
La membresía del proyecto es la lista de acceso a paquetes y pistas privados relacionados con el proyecto. Agregue usuarios antes de asignar trabajo o compartir paquetes en ese proyecto; eliminar usuarios cuando deberían perder el acceso a esos datos privados.