user_id = await get_user() if not user_id: return json.dumps({'status': 'error', 'message': '未登录'}, ensure_ascii=False) org_id = (await get_userorgid()) or '0' data = { 'id': getID(), 'name': params_kw.get('name', ''), 'description': params_kw.get('description', ''), 'project_type': params_kw.get('project_type', ''), 'tech_stack': params_kw.get('tech_stack', ''), 'repo_url': params_kw.get('repo_url', ''), 'pipeline_id': params_kw.get('pipeline_id', ''), 'status': params_kw.get('status', ''), 'org_id': org_id, 'created_at': curDateString(), } try: async with get_sor_context(request._run_ns, 'pipeline') as sor: await sor.C('sd_projects', data) return json.dumps({'status': 'ok', 'id': data['id']}, ensure_ascii=False) except Exception as e: return json.dumps({'status': 'error', 'message': str(e)}, ensure_ascii=False)