@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
JavaScript
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);
}