@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.
95 lines (94 loc) • 3.03 kB
JavaScript
import { OrganizationMembersSchema, MemberInfoSchema, SearchOrganizationMembersResultSchema, } from '../../common/types.js';
import { buildUrl, yunxiaoRequest } from "../../common/utils.js";
/**
* 查询组织成员列表
* @param organizationId 组织ID
* @param page 当前页,默认1
* @param perPage 每页数据条数,默认100
* @returns 组织成员列表
*/
export const getOrganizationMembersFunc = async (organizationId, page = 1, perPage = 100) => {
const url = `/oapi/v1/platform/organizations/${organizationId}/members`;
const params = {
page: page,
perPage: perPage
};
const urlWithParams = buildUrl(url, params);
const response = await yunxiaoRequest(urlWithParams, {
method: "GET",
});
// 验证响应数据结构
return OrganizationMembersSchema.parse(response);
};
/**
* 查询组织成员详细信息
* @param organizationId 组织ID
* @param memberId 成员ID
* @returns 组织成员详细信息
*/
export const getOrganizationMemberInfoFunc = async (organizationId, memberId) => {
const url = `/oapi/v1/platform/organizations/${organizationId}/members/${memberId}`;
console.log("aaa", url);
const response = await yunxiaoRequest(url, {
method: "GET",
});
return MemberInfoSchema.parse(response);
};
/**
* 搜索组织成员
* @param organizationId 组织ID
* @param includeChildren
* @param page 当前页,默认1
* @param perPage 每页数据条数,默认100
* @param deptIds
* @param nextToken
* @param query
* @param roleIds
* @param statuses
* @returns 搜索到的组织成员列表
*/
export const searchOrganizationMembersFunc = async (organizationId, includeChildren = false, page = 1, perPage = 100, deptIds, nextToken, query, roleIds, statuses) => {
const url = `/oapi/v1/platform/organizations/${organizationId}/members:search`;
const payload = {
page: page,
perPage: perPage
};
if (deptIds) {
payload.deptIds = deptIds;
}
if (nextToken) {
payload.nextToken = nextToken;
}
if (query) {
payload.query = query;
}
if (roleIds) {
payload.roleIds = roleIds;
}
if (statuses) {
payload.statuses = statuses;
}
const response = await yunxiaoRequest(url, {
method: "POST",
body: payload,
});
// 验证响应数据结构
return SearchOrganizationMembersResultSchema.parse(response);
};
/**
* 通过用户ID查询组织成员详细信息
* @param organizationId 组织ID
* @param userId 用户ID
* @returns 组织成员详细信息
*/
export const getOrganizationMemberByUserIdInfoFunc = async (organizationId, userId) => {
const url = `/oapi/v1/platform/organizations/${organizationId}/members:readByUser`;
const params = {
userId: userId
};
const urlWithParams = buildUrl(url, params);
const response = await yunxiaoRequest(urlWithParams, {
method: "GET",
});
return MemberInfoSchema.parse(response);
};