这是一个微服务,用于打包来自 GitHub 仓库的代码并将其准备好进行部署。它支持直接返回打包后的代码或将代码上传到 Google Cloud Storage,为代码部署提供了灵活的解决方案。
使用以下命令快速启动服务:
# 安装依赖
pnpm install
# 启动开发服务器
pnpm run dev
# 访问 API 文档
open http://localhost:8080/docs
当服务运行时,在 /docs 路径下可以访问交互式 API 文档,方便你了解和使用服务的各个接口。
GET /
返回一个静态 HTML 页面,显示有关服务的信息。
GET /health
返回一个简单的状态检查以验证服务是否运行正常。
GET /bundler?url=&commit=&format=
参数:
- url(必填):GitHub 仓库 URL
- commit(可选):特定提交哈希(默认为最新)
- format(可选):输出格式 - mjs(默认)或 cjs
响应:
{
"data": "<打包后的代码作为字符串>"
}
GET /v2/bundler?url=&commit=&mcpId=
参数:
- url(必填):GitHub 仓库 URL
- commit(可选):特定提交哈希(默认为最新)
- mcpId(可选):唯一的服务器打包标识符(如果未提供则自动生成)
GCP 上传启用响应:
{
"success": true,
"gcp_upload": {
"bucket": "your-bucket-name",
"path": "your-mcp-id/commit-hash/",
"files": [
"bundle-commit-hash.tar.gz"
]
}
}
GCP 上传禁用响应:
{
"success": true,
"data": "<打包后的代码作为字符串>"
}
V2 打包程序可以将打包后的代码上传到 Google Cloud Storage 以供其他服务使用,或者直接返回打包后的代码。
DISABLE_GCP_INTEGRATION=true
在你的环境或 .env 文件中。当 GCP 集成被禁用时:
1. 打包后的代码直接在 API 响应中返回
2. 打包后的代码存档副本保存到项目根目录的 bundled 目录
3. 存档文件名格式为 bundle-[提交哈希].tar.gz
.env 文件中:GOOGLE_CLOUD_KEY=your-service-account-key.json
npm install @mcp/bundler
SENTRY_INGEST_URL=your-sentry-ingest-url
tar.gz, zip, tgz。欢迎贡献!请随时提交 Pull Request。