UNPKG

@iflow-mcp/alibabacloud-devops-mcp-server

Version:

MCP Server for using the alibabacloud-devops API: allows AI assistants to directly participate in development collaboration, helping teams optimize development processes and improve efficiency.

74 lines (73 loc) 2.92 kB
import { buildUrl, yunxiaoRequest } from "../../common/utils.js"; import { CurrentOrganizationInfoSchema, UserOrganizationsInfoSchema, CurrentUserSchema, OrganizationDepartmentsSchema, DepartmentInfoSchema, OrganizationRoleSchema, OrganizationRole, } from "../../common/types.js"; export async function getCurrentOrganizationInfoFunc() { const url = "/oapi/v1/platform/user"; const response = await yunxiaoRequest(url, { method: "GET", }); const responseData = response; const mappedResponse = { lastOrganization: responseData.lastOrganization, // Organization ID userId: responseData.id, // Map API's "id" to userId userName: responseData.name // Map API's "name" to userName }; return CurrentOrganizationInfoSchema.parse(mappedResponse); } export async function getUserOrganizationsFunc() { const url = "/oapi/v1/platform/organizations"; const response = await yunxiaoRequest(url, { method: "GET", }); if (!Array.isArray(response)) { return []; } return UserOrganizationsInfoSchema.parse(response); } export async function getOrganizationDepartmentsFunc(organizationId, parentId) { const baseUrl = `/oapi/v1/platform/organizations/${organizationId}/departments`; const params = {}; if (parentId) { params.parentId = parentId; } const url = buildUrl(baseUrl, params); const response = await yunxiaoRequest(url, { method: "GET" }); return OrganizationDepartmentsSchema.parse(response); } export async function getOrganizationDepartmentInfoFunc(organizationId, id) { const url = `/oapi/v1/platform/organizations/${organizationId}/departments/${id}`; const response = await yunxiaoRequest(url, { method: "GET", }); return DepartmentInfoSchema.parse(response); } export async function getOrganizationDepartmentAncestorsFunc(organizationId, id) { const url = `/oapi/v1/platform/organizations/${organizationId}/departments/${id}/ancestors`; const response = await yunxiaoRequest(url, { method: "GET", }); return OrganizationDepartmentsSchema.parse(response); } ; export async function listOrganizationRolesFunc(organizationId) { const url = `/oapi/v1/platform/organizations/${organizationId}/roles`; const response = await yunxiaoRequest(url, { method: "GET" }); return OrganizationRole.parse(response); } export async function getOrganizationRoleFunc(organizationId, roleId) { const url = `/oapi/v1/platform/organizations/${organizationId}/roles/${roleId}`; const response = await yunxiaoRequest(url, { method: "GET" }); return OrganizationRoleSchema.parse(response); } export async function getCurrentUserFunc() { const url = "/oapi/v1/platform/user"; const response = await yunxiaoRequest(url, { method: "GET", }); return CurrentUserSchema.parse(response); }