package plane_v1 import ( "fmt" "go.uber.org/zap" ) // ==================== Work Item Activity API ==================== // ListWorkItemActivities 列出工作项活动历史 func ListWorkItemActivities(workItemID string) ([]byte, error) { path := fmt.Sprintf("/api/v1/workspaces/%s/projects/%s/work-items/%s/activities/", planeWorkspaceSlug, planeProjectId, workItemID) resp, err := planeHttpGet(path) if err != nil { zap.L().Error("[Plane] ListWorkItemActivities 请求失败", zap.Error(err)) return nil, err } if !isSuccess(resp.StatusCode) { zap.L().Error("[Plane] ListWorkItemActivities 返回错误", zap.String("status", resp.Status)) return nil, fmt.Errorf("ListWorkItemActivities 失败: %s", resp.Status) } return resp.Body, nil } // GetWorkItemActivity 获取单条活动详情 func GetWorkItemActivity(workItemID, activityID string) ([]byte, error) { path := fmt.Sprintf("/api/v1/workspaces/%s/projects/%s/work-items/%s/activities/%s/", planeWorkspaceSlug, planeProjectId, workItemID, activityID) resp, err := planeHttpGet(path) if err != nil { zap.L().Error("[Plane] GetWorkItemActivity 请求失败", zap.Error(err)) return nil, err } if !isSuccess(resp.StatusCode) { zap.L().Error("[Plane] GetWorkItemActivity 返回错误", zap.String("status", resp.Status)) return nil, fmt.Errorf("GetWorkItemActivity 失败: %s", resp.Status) } return resp.Body, nil }