Azure DevOps 多租户控制平面(MCP)为 Azure DevOps 提供了强大的管理和控制能力,通过直观的架构设计和丰富的功能组件,帮助用户高效管理组织、项目、仓库等资源。
ADO_ORGANIZATION: Azure DevOps 组织名称(必填)ADO_PROJECT: 默认项目名称(可选)ADO_PAT: 个人访问令牌用于身份验证(必填)ADO_API_URL: API 基 URL(可选,默认为 https://dev.azure.com)ADO_API_VERSION: API 版本(可选,默认为 7.0)ADO_API_MAX_RETRIES: API 调用的最大重试次数(可选,默认为 3)ADO_API_DELAY_MS: 重试之间的延迟时间(以毫秒为单位)(可选,默认为 1000)ADO_API_USE_KERBEROS: 是否启用 Kerberos 认证(可选,默认为 false)# 配置文件路径:config/azure-devops-mcp.properties
# Azure DevOps 组织名称
organization.name = my_organization
# 默认项目 ID
project.id = 12345678-9abc-defg-1234-56789abcdef
# API 基 URL
api.url = https://dev.azure.com
# 个人访问令牌
pat.token = your_personal_access_token_here
# 最大重试次数
max.retries = 3
# 重试延迟(毫秒)
retry.delay.ms = 1000
mvn clean install -DskipTests
mvn spring-boot:run
# 基础镜像
FROM openjdk:jdk17
# 设置工作目录
WORKDIR /app
# 复制项目文件
COPY . .
# 打包应用
RUN mvn clean install -DskipTests && \
cp target/azure-devops-mcp.jar .
# 运行应用
CMD ["java", "-jar", "target/azure-devops-mcp.jar"]
{
"id": "12345678-9abc-defg-1234-56789abcdef",
"name": "MyProject",
"description": "This is my project description.",
"state": "active"
}
{
"id": "repo_123",
"name": "my_repository",
"branches": [
{
"name": "main",
"commit": {
"sha": "abc123def456789",
"message": "Initial commit"
}
}
],
"pullRequests": [
{
"id": 1,
"title": "Add feature X",
"status": "open"
}
]
}
下图展示了 Azure DevOps MCP 项目的整体架构:
以下是 Azure DevOps MCP 的类图,展示了各个组件之间的关系和交互:
classDiagram
class ADOrganization {
string name
string description
void addProject()
void removeProject()
ProjectsList projects
}
class ADProject {
string id
string name
string state
Repository[] repositories
Pipeline[] pipelines
}
class ProjectManager {
ADProject currentProject
void switchProject(string projectId)
void createProject(ADProject project)
void deleteProject(string projectId)
ProjectsList listProjects()
}
class ADOrganization {
<>
string name
string description
ADProject[] projects
}
class ADUser {
string id
string email
string firstName
string lastName
Role role
}
class Repository {
string id
string name
Branch[] branches
PullRequest[] pullRequests
}
class Pipeline {
string id
string name
string state
Job[] jobs
}
class ADOrganizationRepository {
void save(ADOrganization org)
ADOrganization findById(string id)
List findAll()
}
ProjectManager o -> ADOrganizationRepository: findCurrentOrganization()
ProjectManager --> ADProject: CurrentProject
ADUser --> Role: hasRole()
ADProject --> Repository: getRepositories()
ADProject --> Pipeline: getPipelines()
Repository --> Branch: getBranches()
Repository --> PullRequest: getPullRequests()
Pipeline --> Job: getJobs()
版权所有 (c) 2024 Azure DevOps MCP 开发团队。
特此免费授予任何获得本软件及相关文档文件(“软件”)副本的人,允许其无限制地处理本软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向其提供软件的人这样做,但须遵守以下条件:
上述版权声明和本许可声明应包含在所有软件副本或重要部分中。
软件按“原样”提供,不附带任何形式的明示或暗示保证,包括但不限于适销性、特定用途适用性和不侵权的保证。在任何情况下,作者或版权持有人均不对因合同、侵权或其他方式引起的任何索赔、损害或其他责任负责,无论是在与软件或软件的使用或其他交易有关的任何行动中。
⚠️ 重要提示
如需商业用途,请联系开发团队获取授权。