Skip to content

Project Transfers API

Project transfer endpoints 通过 request/accept flow 在 workspaces 之间转移 project ownership。

POST /api/projects/:fullname/transfer/plan

返回 project transfer plan,但不应用任何更改。

如果项目 add-on 订阅处于 draftpending_activationactivepast_duecancel_at_period_end 状态,则无法生成转移计划。请先取消订阅或等待订阅结束, 然后再规划转移。这样可以避免在所有者之间隐式转移周期性计费。

Arguments:

ArgumentLocationDescription
fullnamePathSource project fullname.

Payload:

FieldRequiredDescription
targetWorkspaceTarget workspace fullname.
targetNametarget workspace 中的新 project name。如果未传入,则保留当前 name。

响应:ProjectTransferPlan

POST /api/projects/:fullname/transfer-requests

创建 transfer request。只有 target workspace owner accept 后,project 才会被转移。

如果项目 add-on 订阅处于 draftpending_activationactivepast_duecancel_at_period_end 状态,则无法创建转移请求。请先取消订阅或等待订阅结束, 然后再创建请求。这样可以避免在所有者之间隐式转移周期性计费。

Arguments:

ArgumentLocationDescription
fullnamePathSource project fullname.

Payload:

FieldRequiredDescription
targetWorkspaceTarget workspace fullname.
targetNametarget workspace 中的新 project name。
expectedPlanHash/transfer/plan 获得的 plan hash。如果传入且 plan 已变化,则不会创建 request。

响应:ProjectTransferRequest

GET /api/project-transfer-requests

返回 incoming/outgoing transfer requests。

Arguments:

ArgumentLocationDescription
workspaceQueryWorkspace fullname.
directionQueryincomingoutgoing
statusQuerypending, accepted, rejected, cancelled, expired, failed.

Payload: 无。

响应:ProjectTransferRequest[]

POST /api/project-transfer-requests/:id/accept

接受 incoming transfer request 并应用 project transfer。

如果项目 add-on 订阅处于 draftpending_activationactivepast_duecancel_at_period_end 状态,则无法接受转移请求。请先取消订阅或等待订阅结束, 然后再接受请求。这样可以避免在所有者之间隐式转移周期性计费。

Arguments:

ArgumentLocationDescription
idPathTransfer request id.

Payload: optional action object.

FieldRequiredDescription
reasonOptional comment/reason.

响应:ProjectTransferAcceptResult

POST /api/project-transfer-requests/:id/reject

拒绝 incoming transfer request。

Arguments:

ArgumentLocationDescription
idPathTransfer request id.

Payload:

FieldRequiredDescription
reasonOptional rejection reason.

响应:ProjectTransferRequest

POST /api/project-transfer-requests/:id/cancel

取消 outgoing transfer request。

Arguments:

ArgumentLocationDescription
idPathTransfer request id.

Payload:

FieldRequiredDescription
reasonOptional cancellation reason.

响应:ProjectTransferRequest