Compare commits

...

24 Commits

Author SHA1 Message Date
7c50a1b091 docs: update MCP Server configuration paths for VS Code Copilot and Trae IDE (#14)
All checks were successful
CI/CD Pipeline for mengning.com.cn / build (push) Successful in 3m9s
## Summary
  Update DevStar MCP Server documentation based on devstar-vscode PR #6, which implements automatic MCP Server configuration for different IDE environments.

  ## Changes

  ### VS Code Copilot Configuration
  - **Runtime**: Local machine (outside container)
  - **Config Paths**:
    - macOS: `~/Library/Application Support/Code/User/mcp.json`
    - Windows: `%APPDATA%/Code/User/mcp.json`
  - **Format**: Uses `servers` key

  ### Trae IDE Configuration
  - **Runtime**: Inside container
  - **Config Path**: `/root/.trae-server/data/Machine/mcp.json`
  - **Format**: Uses `mcpServers` key

  ### Documentation Reorganization
  - Removed Continue documentation
  - Added Cursor and Windsurf placeholder sections (configuration paths to be confirmed)
  - Focused "Supported Clients" section on AI IDEs only
  - Removed DevStar VS Code Plugin from supported clients (not an AI IDE)
  - Updated troubleshooting section with correct paths

  ## Notes
  - Cursor and Windsurf configuration paths are marked as TODO pending confirmation
  - Kept DevStar VS Code Plugin references in configuration instructions for automatic setup

  ## References
  - Related PR: devstar/devstar-vscode#6

Reviewed-on: #14
Co-authored-by: Br1an67 <932039080@qq.com>
Co-committed-by: Br1an67 <932039080@qq.com>
2026-01-12 08:31:36 +00:00
750fbdc79e Merge pull request '验证更新VS Code Copilot 配置DevStar MCP Server' (#13) from mengning-patch-1 into main
All checks were successful
CI/CD Pipeline for mengning.com.cn / build (push) Successful in 19m42s
Reviewed-on: #13
2026-01-08 01:56:55 +00:00
fb5638dae8 更新 src/devstar/mcp-server.md
All checks were successful
CI/CD Pipeline for mengning.com.cn / build (pull_request) Successful in 1m21s
2026-01-08 01:55:04 +00:00
3280bac8db 更新 src/devstar/mcp-server.md
All checks were successful
CI/CD Pipeline for mengning.com.cn / build (pull_request) Successful in 1m19s
2026-01-08 01:53:18 +00:00
a6b4a454f2 Merge pull request 'docs: refine DevStar MCP Server documentation' (#12) from feat/devstar-mcp-server-docs into main
Some checks failed
CI/CD Pipeline for mengning.com.cn / build (push) Failing after 6m4s
Reviewed-on: #12
2026-01-07 10:27:36 +00:00
735117b9bf 更新 src/devstar/mcp-server.md
Some checks failed
CI/CD Pipeline for mengning.com.cn / build (pull_request) Has been cancelled
2026-01-07 10:19:37 +00:00
ab1a2546f8 docs: simplify Docker deployment section with link to Gitea official
All checks were successful
CI/CD Pipeline for mengning.com.cn / build (pull_request) Successful in 1m35s
docs
2026-01-07 14:20:14 +08:00
b0d1d94f74 docs: refine DevStar MCP Server documentation
All checks were successful
CI/CD Pipeline for mengning.com.cn / build (pull_request) Successful in 1m15s
2026-01-07 12:32:23 +08:00
d1582d1bb9 更新 .gitea/workflows/mengningsoftware-docs-ci-cd.yaml (#11)
All checks were successful
CI/CD Pipeline for mengning.com.cn / build (push) Successful in 2m24s
Reviewed-on: #11
2025-12-21 09:06:09 +00:00
a9977a6d21 add actions and devcontainer (#10)
Reviewed-on: #10
2025-12-21 08:56:40 +00:00
9cb2780fd6 增加setup_sharebuild_forAOSP14.sh脚本简化安装配置 (#9)
All checks were successful
CI/CD Pipeline for mengning.com.cn / build (push) Successful in 5m4s
Co-authored-by: 孟宁 <mengning@mengning.com.cn>
Reviewed-on: #9
Co-authored-by: YCH241010 <2416006706@qq.com>
Co-committed-by: YCH241010 <2416006706@qq.com>
2025-12-20 07:43:18 +00:00
9fedca93d6 feat:完善ai devops相关文档 (#4)
All checks were successful
CI/CD Pipeline for mengning.com.cn / build (push) Successful in 3m47s
ai-devops.md:DevStar AI+ DevOps 平台整体方案与端到端流程(代码托管 + 私有大模型 + MCP + IDE)
ai-code-reveiw.md:AI Code Review 与 CI/CD 工作流的具体配置和执行流程

Co-authored-by: sgx <1186819569@qq.com>
Co-authored-by: 孟宁 <mengning@mengning.com.cn>
Reviewed-on: #4
Co-authored-by: 潘舒啸23 <chitu438@163.com>
Co-committed-by: 潘舒啸23 <chitu438@163.com>
2025-12-16 07:01:06 +00:00
fdecce139d ci-cd使用crd yaml完成更新mengning.com.cn (#8)
All checks were successful
CI/CD Pipeline for mengning.com.cn / build (push) Successful in 1m51s
Co-authored-by: panshuxiao <panshuxiao@mail.ustc.edu.cn>
Reviewed-on: #8
Co-authored-by: 潘舒啸23 <chitu438@163.com>
Co-committed-by: 潘舒啸23 <chitu438@163.com>
2025-12-09 06:34:44 +00:00
ych
cf4c6754a0 Merge pull request '更改sharebuild-aosp14文档' (#7) from ych/docs:main into main
Some checks failed
CI/CD Pipeline for mengning.com.cn / build (push) Has been cancelled
Reviewed-on: #7
2025-12-08 15:44:23 +00:00
ych
e6d7903174 Merge remote-tracking branch 'origin/ych-patch-2'
Some checks failed
CI/CD Pipeline for mengning.com.cn / build (pull_request) Has been cancelled
2025-12-08 23:00:52 +08:00
ych
f5ad79b162 Merge remote-tracking branch 'origin/ych-patch-1' 2025-12-08 22:38:47 +08:00
ych
8229717c5b merge upstream 2025-12-08 14:19:08 +00:00
ych
62e74a0fb7 更新 src/compile/sharebuild-aosp14.md 2025-12-08 11:46:53 +00:00
ych
3acf6be119 更改sharebuild-aosp14文档 2025-12-08 11:18:16 +00:00
2218eae0fc 初步整理的编译加速相关文档 (#6)
Some checks failed
CI/CD Pipeline for mengning.com.cn / build (push) Has been cancelled
Co-authored-by: 孟宁 <mengning997@163.com>
Reviewed-on: #6
2025-12-08 01:42:53 +00:00
ych
39859809a5 更新 src/compile/sharebuild-aosp14.md
Some checks failed
CI/CD Pipeline for mengning.com.cn / build (pull_request) Has been cancelled
2025-12-07 07:41:29 +00:00
b1afa7d902 更新 src/compile/sharebuild-aosp14.md
Some checks failed
CI/CD Pipeline for mengning.com.cn / build (pull_request) Has been cancelled
2025-12-07 06:39:52 +00:00
ych
855c9b0869 更新 src/compile/sharebuild-aosp14.md
Some checks failed
CI/CD Pipeline for mengning.com.cn / build (pull_request) Has been cancelled
2025-12-06 13:53:36 +00:00
bcaff05d70 初步整理的编译加速相关文档 (#2)
Some checks failed
CI/CD Pipeline for mengning.com.cn / build (push) Has been cancelled
Co-authored-by: 孟宁 <mengning997@163.com>
Reviewed-on: #2
2025-12-05 02:14:25 +00:00
25 changed files with 1000 additions and 269 deletions

View File

@@ -1,53 +1,77 @@
name: CI/CD Pipeline for mengning.com.cn
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
container:
image: gitea/runner-images:ubuntu-latest
steps:
- name: 拉取代码
uses: https://devstar.cn/actions/checkout@v4
with:
fetch-depth: 0
- name: 安装依赖
working-directory:
run: |
npm install
npm add -D vitepress
- name: 构建项目
working-directory:
run: |
chmod +x node_modules/.bin/vitepress
npm run build
- name: 构建 Docker 镜像
run: |
docker build -t devstar-docs:${{ gitea.sha }} .
- name: 登录 Docker Registry 并推送镜像
run: |
echo "${{ secrets.DOCKER_REGISTRY_PASSWORD }}" | docker login -u ${{ secrets.DOCKER_REGISTRY_USERNAME }} ${{ vars.DOCKER_REGISTRY_ADDRESS }} --password-stdin
docker tag devstar-docs:${{ gitea.sha }} ${{ vars.DOCKER_REGISTRY_ADDRESS }}/devstar/devstar-studio-docs:${{ gitea.sha }}
docker tag devstar-docs:${{ gitea.sha }} ${{ vars.DOCKER_REGISTRY_ADDRESS }}/devstar/devstar-studio-docs:latest
docker push ${{ vars.DOCKER_REGISTRY_ADDRESS }}/devstar/devstar-studio-docs:${{ gitea.sha }}
docker push ${{ vars.DOCKER_REGISTRY_ADDRESS }}/devstar/devstar-studio-docs:latest
- name: 📝 Update mengning.com.cn
run: |
curl -LO https://mirrors.ustc.edu.cn/kubernetes/core%3A/stable%3A/v1.28/deb/amd64/kubectl_1.28.0-1.1_amd64.deb
sudo dpkg -i kubectl_1.28.0-1.1_amd64.deb
kubectl config set-cluster remote-cluster --server=${{ secrets.K8S_URL }} --insecure-skip-tls-verify=true
kubectl config set-credentials token-user --token=${{ secrets.K8S_TOKEN }}
kubectl config set-context remote-context --cluster=remote-cluster --user=token-user
kubectl config use-context remote-context
kubectl set image deployment/devstar-docs-app devstar-docs=${{ vars.DOCKER_REGISTRY_ADDRESS }}/devstar/devstar-studio-docs:latest -n app
name: CI/CD Pipeline for mengning.com.cn
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
container:
image: gitea/runner-images:ubuntu-latest
steps:
- name: 拉取代码
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: 安装依赖
working-directory:
run: |
npm install
npm add -D vitepress
- name: 构建项目
working-directory:
run: |
chmod +x node_modules/.bin/vitepress
npm run build
- name: 构建 Docker 镜像
run: |
docker build -t devstar.cn/devstar/devstar-docs:latest .
- name: 登录 Docker Registry 并推送镜像
if: github.event_name != 'pull_request'
run: |
echo "${{ secrets.DOCKER_REGISTRY_PASSWORD }}" | docker login -u ${{ secrets.DOCKER_REGISTRY_USERNAME }} ${{ vars.DOCKER_REGISTRY_ADDRESS }} --password-stdin
docker push devstar.cn/devstar/devstar-docs:latest
- name: 📝 Update mengning.com.cn通过删除/创建 Application CRD
if: github.event_name != 'pull_request'
env:
TLS_CERTIFICATE: ${{ secrets.TLS_CERTIFICATE }}
TLS_PRIVATE_KEY: ${{ secrets.TLS_PRIVATE_KEY }}
run: |
curl -LO https://mirrors.ustc.edu.cn/kubernetes/core%3A/stable%3A/v1.28/deb/amd64/kubectl_1.28.0-1.1_amd64.deb
sudo dpkg -i kubectl_1.28.0-1.1_amd64.deb
kubectl config set-cluster remote-cluster --server=${{ secrets.K8S_URL }} --insecure-skip-tls-verify=true
kubectl config set-credentials token-user --token=${{ secrets.K8S_TOKEN }}
kubectl config set-context remote-context --cluster=remote-cluster --user=token-user
kubectl config use-context remote-context
# 创建或更新 TLS Secret
# Secret 名称: mengningsoftware-tls
echo "$TLS_CERTIFICATE" > /tmp/tls.crt
echo "$TLS_PRIVATE_KEY" > /tmp/tls.key
kubectl create secret tls mengningsoftware-tls \
--cert=/tmp/tls.crt \
--key=/tmp/tls.key \
-n istio-system \
--dry-run=client -o yaml | kubectl apply -f -
rm -f /tmp/tls.crt /tmp/tls.key
# 删除旧的 Application CRD如果存在忽略错误
kubectl delete application mengningsoftware -n web-servers --ignore-not-found=true || true
# 创建新的 Application CRD
kubectl apply -f deploy.yaml
- name: Clean Environment
if: always()
run: |
docker rmi devstar.cn/devstar/devstar-docs:latest || true
docker builder prune -f || true

View File

@@ -93,138 +93,38 @@ function sidebarDevStar(): DefaultTheme.SidebarItem[] {
{ text: 'app.ini配置文件', link: 'src/devstar/install/app-ini' },
]
} as any,
{
text: '管理',
collapsible: true, // 使整个组可折叠
collapsed: true, // 默认展开
items: [
{ text: '命令行', link: 'https://docs.gitea.com/zh-cn/administration/command-line' },
{ text: '认证', link: 'https://docs.gitea.com/zh-cn/administration/authentication' },
{ text: '环境变量清单', link: 'https://docs.gitea.com/zh-cn/administration/environment-variables' },
{ text: '备份与恢复', link: 'https://docs.gitea.com/zh-cn/administration/backup-and-restore' },
{ text: 'Email设置', link: 'https://docs.gitea.com/zh-cn/administration/email-setup' },
{ text: 'Git LFS设置', link: 'https://docs.gitea.com/zh-cn/administration/git-lfs-setup' },
{ text: 'HTTPS配置', link: 'https://docs.gitea.com/zh-cn/administration/https-setup' },
{ text: '设置Fail2ban', link: 'https://docs.gitea.com/zh-cn/administration/fail2ban-setup' },
{ text: '反向代理', link: 'https://docs.gitea.com/zh-cn/administration/reverse-proxies' },
{ text: '嵌入资源提取工具', link: 'https://docs.gitea.com/zh-cn/administration/cmd-embedded' },
{ text: '配置说明', link: 'https://docs.gitea.com/zh-cn/administration/config-cheat-sheet' },
{ text: '日志配置', link: 'https://docs.gitea.com/zh-cn/administration/logging-config' },
{ text: '邮件模板', link: 'https://docs.gitea.com/zh-cn/administration/mail-templates' },
{ text: '仓库索引器', link: 'https://docs.gitea.com/zh-cn/administration/repo-indexer' },
{ text: 'GPG提交签名', link: 'https://docs.gitea.com/zh-cn/administration/signing' },
{ text: '外部渲染器', link: 'https://docs.gitea.com/zh-cn/administration/external-renderers' },
{ text: '搜索引擎索引', link: 'https://docs.gitea.com/zh-cn/administration/search-engines-indexation' },
{ text: '自定义Gitea配置', link: 'https://docs.gitea.com/zh-cn/administration/customizing-gitea' },
{ text: '添加法律页面', link: 'https://docs.gitea.com/zh-cn/administration/adding-legal-pages' }
]
} as any,
{
text: '使用',
collapsible: true, // 使整个组可折叠
collapsed: true, // 默认展开
collapsed: false, // 默认展开
items: [
{ text: 'devcontainer', link: 'src/devstar/usage/quick-start-with-ai' },
{ text: '快速入门AI+', link: 'src/devstar/usage/quick-start-with-ai' },
{
text: 'Actions',
text: 'CI/CD工作流Actions',
collapsible: true, // 使整个组可折叠
collapsed: false, // 默认展开
items: [
{ text: 'Overview', link: 'https://docs.gitea.com/zh-cn/usage/actions/overview' },
{ text: '快速入门', link: 'https://docs.gitea.com/zh-cn/usage/actions/quickstart' },
{ text: '与GitHub Actions的对比', link: 'https://docs.gitea.com/zh-cn/usage/actions/comparison' },
{ text: 'Act Runner', link: 'https://docs.gitea.com/zh-cn/usage/actions/act-runner' },
{ text: '变量', link: 'https://docs.gitea.com/zh-cn/usage/actions/actions-variables' },
{ text: 'Gitea Actions设计', link: 'https://docs.gitea.com/zh-cn/usage/actions/design' },
{ text: '密钥管理', link: 'https://docs.gitea.com/zh-cn/usage/actions/secrets' },
{ text: 'Gitea Actions常见问题解答', link: 'https://docs.gitea.com/zh-cn/usage/actions/faq' },
{ text: 'Badge', link: 'https://docs.gitea.com/zh-cn/usage/actions/badge' }
{ text: 'Overview', link: 'src/devstar/actions/overview' },
{ text: '快速入门', link: 'src/devstar/actions/quickstart' },
]
},
{
text: '软件包',
text: '开发容器DevContainer',
collapsible: true, // 使整个组可折叠
collapsed: true, // 默认展开
collapsed: false, // 默认展开
items: [
{ text: '软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/overview' },
{ text: 'Alpine 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/alpine' },
{ text: 'Arch package registry', link: 'https://docs.gitea.com/zh-cn/usage/packages/arch' },
{ text: 'Cargo 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/cargo' },
{ text: 'Chef 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/chef' },
{ text: '存储', link: 'https://docs.gitea.com/zh-cn/usage/packages/storage' },
{ text: 'Composer 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/composer' },
{ text: 'Conan 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/conan' },
{ text: 'Conda 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/conda' },
{ text: '容器注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/container' },
{ text: 'CRAN 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/cran' },
{ text: 'Go 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/go' },
{ text: 'Helm Chart 注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/helm' },
{ text: 'Maven 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/maven' },
{ text: 'NPM Package Registry', link: 'https://docs.gitea.com/zh-cn/usage/packages/npm' },
{ text: 'NuGet 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/nuget' },
{ text: 'Pub 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/pub' },
{ text: 'PyPI 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/pypi' },
{ text: 'RPM 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/packages/rpm' },
{ text: 'RubyGems 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/rubygems' },
{ text: 'Swift 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/swift' },
{ text: 'Vagrant 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/vagrant' },
{ text: '通用软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/generic' },
{ text: 'Debian 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/debian' }
{ text: 'Overview', link: 'src/devstar/devcontainer/overview' },
{ text: '快速入门', link: 'src/devstar/devcontainer/quickstart' },
]
},
{ text: 'AGit', link: 'https://docs.gitea.com/zh-cn/usage/agit' },
{ text: '个人资料 README', link: 'https://docs.gitea.com/zh-cn/usage/profile-readme' },
{ text: 'Blame File View', link: 'https://docs.gitea.com/zh-cn/usage/blame' },
{ text: '邮件接收', link: 'https://docs.gitea.com/zh-cn/usage/incoming-email' },
{ text: '标签', link: 'https://docs.gitea.com/zh-cn/usage/labels' },
{ text: '合并请求', link: 'https://docs.gitea.com/zh-cn/usage/pull-request' },
{ text: '权限', link: 'https://docs.gitea.com/zh-cn/usage/permissions' },
{ text: '模板仓库', link: 'https://docs.gitea.com/zh-cn/usage/template-repositories' },
{ text: '从模板创建工单与合并请求', link: 'https://docs.gitea.com/zh-cn/usage/issue-pull-request-templates' },
{ text: '自动链接引用', link: 'https://docs.gitea.com/zh-cn/usage/automatically-linked-references' },
{ text: '合并消息模板', link: 'https://docs.gitea.com/zh-cn/usage/merge-message-template' },
{ text: '推送', link: 'https://docs.gitea.com/zh-cn/usage/push' },
{ text: 'Blocking a user', link: 'https://docs.gitea.com/zh-cn/usage/blocking-user' },
{ text: '克隆过滤器 (部分克隆)', link: 'https://docs.gitea.com/zh-cn/usage/clone-filters' },
{ text: 'Code Owners', link: 'https://docs.gitea.com/zh-cn/usage/code-owners' },
{ text: 'Webhooks', link: 'https://docs.gitea.com/zh-cn/usage/webhooks' },
{ text: 'Migration', link: 'https://docs.gitea.com/zh-cn/usage/migration' },
{ text: '受保护的标签', link: 'https://docs.gitea.com/zh-cn/usage/protected-tags' },
{ text: '仓库镜像', link: 'https://docs.gitea.com/zh-cn/usage/repo-mirror' },
{ text: 'Markdown', link: 'https://docs.gitea.com/zh-cn/usage/markdown' },
{ text: 'Multi-factor Authentication (MFA)', link: 'https://docs.gitea.com/zh-cn/usage/multi-factor-authentication' }
]
} as any,
{
text: '开发',
text: '更多帮助',
collapsible: true, // 使整个组可折叠
collapsed: true, // 默认展开
collapsed: false, // 默认展开
items: [
{ text: '玩转 Gitea', link: 'https://docs.gitea.com/zh-cn/development/hacking-on-gitea' },
{ text: 'API 使用指南', link: 'https://docs.gitea.com/zh-cn/development/api-usage' },
{ text: 'OAuth2 提供者', link: 'https://docs.gitea.com/zh-cn/development/oauth2-provider' },
{ text: '迁移接口', link: 'https://docs.gitea.com/zh-cn/development/migrations-interfaces' },
{ text: '集成', link: 'https://docs.gitea.com/zh-cn/development/integrations' }
]
} as any,
{
text: '贡献',
collapsible: true, // 使整个组可折叠
collapsed: true, // 默认展开
items: [
{ text: '后端开发指南', link: 'https://docs.gitea.com/zh-cn/contributing/guidelines-backend' },
{ text: '前端开发指南', link: 'https://docs.gitea.com/zh-cn/contributing/guidelines-frontend' },
{ text: '重构指南', link: 'https://docs.gitea.com/zh-cn/contributing/guidelines-refactoring' },
{ text: '本地化', link: 'https://docs.gitea.com/zh-cn/contributing/localization' }
]
} as any,
{
text: '帮助',
collapsible: true, // 使整个组可折叠
collapsed: true, // 默认展开
items: [
{ text: '常见问题', link: 'https://docs.gitea.com/zh-cn/help/faq' },
{ text: '支持选项', link: 'https://docs.gitea.com/zh-cn/help/support' },
{ text: 'Gitea常见问题', link: 'https://docs.gitea.com/zh-cn/help/faq' },
]
} as any,
]

52
deploy.yaml Normal file
View File

@@ -0,0 +1,52 @@
apiVersion: application.devstar.cn/v1
kind: Application
metadata:
name: mengningsoftware
namespace: web-servers
labels:
app.kubernetes.io/component: web-server
app.kubernetes.io/managed-by: devstar
app.kubernetes.io/name: mengningsoftware
spec:
environment:
NGINX_VERSION: "1.24.0"
expose: true
networkPolicy:
gateway:
enabled: true
hosts:
- "mengning.com.cn"
ports:
- name: http
number: 80
protocol: HTTP
- name: https
number: 443
protocol: HTTPS
tls:
- hosts:
- "mengning.com.cn"
minProtocolVersion: "TLSv1_2"
mode: SIMPLE
secretName: mengningsoftware-tls
secretNamespace: istio-system
replicas: 2
resources:
cpu: "500m"
memory: "512Mi"
service:
enabled: true
type: ClusterIP
ports:
- name: http
port: 80
protocol: TCP
targetPort: http
template:
type: stateless
image: devstar.cn/devstar/devstar-docs:latest
ports:
- name: http
port: 80
protocol: TCP

View File

@@ -1,66 +1,108 @@
# 以AOSP14项目为例ShareBuild分布式编译详细配置方法
## ShareBuild的适用场景
## 编译环境准备
在同一局域网内工作的小型团队,ShareBuild以P2P共享架构将空闲算力贡献给团队其他成员从而为每个团队成员提供编译加速效果。
## ShareBuild QuickStart
* 同一个局域网内的A、B、C等所有节点上安装ninja2:
### 安装 Sharebuild
* 参与编译的同一个局域网内的A、B、C等所有节点上安装ninja2和sharebuild:
```
wget -c https://raw.githubusercontent.com/ninja-cloudbuild/ninja2/refs/heads/main/install.sh && chmod +x install.sh && sudo ./install.sh
```
* 启用ShareBuild的前置要求
* 确保所有节点上均安装配置好了项目的编译环境即所有节点上均能采用ninja成功单机编译项目。
1. 所有节点上均安装配置好了项目编译环境即所有节点上均能采用ninja成功单机编译项目。
<!--
### 安装AOSP项目编译环境
2. 选择任一节点上作为项目开发环境,项目中使用.devcontainer/devcontainer.json 配置了image镜像示例如下依次镜像创建的开发容器中能采用ninja成功单机编译项目。
* 参与编译的同一个局域网内的A、B、C等所有节点上安装编译环境依赖:
```
{
"name": "DevContainer",
"image": "devstar.cn/devstar/DevContainer:latest" # 仅作示例,务必使用您已安装配置好项目编译环境的容器镜像!
}
```
> 注意以上两种方式二选一即可第2种方式省掉了在其他节点上安装配置项目编译环境但是首次ShareBuild模式分布式编译时其他节点会自动下载项目编译环境的容器镜像。
-->
```bash
# 安装核心开发工具和库
sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig
* 选择任一节点上作为项目开发环境开启ShareBuild模式然后进行分布式编译。
# 安装Android 14所需的Java环境
sudo apt-get install openjdk-17-jdk
项目根目录下创建ninja2.conf 文件如下即可开启ShareBuild模式
```
sharebuid:true
```
这时使用ninja编译将自动进入ShareBuild模式分布式编译项目。
> 如果直接使用ninja命令编译项目也可以加上-s参数表示启用ShareBuild模式示例如下
```
ninja -s -r `realpath ../` #启动分布式编译,注意-r 指定项目根目录
ninja -t clean #清除编译产物
````
* 对一些特殊项目的补充说明
除以上常规的ShareBuild配置外对于一些特殊项目需要做一些额外的配置补充说明如下
## 使用ShareBuild编译Android开源项目AOSP
除按照以上方法准备好编译环境和开启ShareBuild模式外以AOSP14项目为例还需要替换ninja和准备.sharebuild.yml来过滤掉一些无法远程编译的命令具体操作如下
```
cp /usr/bin/android_ninja prebuilts/build-tools/linux-x86/bin/ninja
cp /etc/ninja2/aosp14/.sharebuild.yml ./
# 确保Python 3环境正确安装
sudo apt-get install python3 python3-pip
```
然后就可以单机编译一样使用make命令来分布式编译Android开源项目AOSP
<!--
## 使用ShareBuild编译鸿蒙开源项目OpenHarmony
### 下载 AOSP 源码并执行单机编译
todo
-->
* 选择任一节点作为客户端节点下载AOSP14源码:
```bash
mkdir ~/bin && curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo && chmod a+x ~/bin/repo
export PATH=~/bin:$PATH
repo init --depth=1 --partial-clone -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-14.0.0_r2
repo sync -j16
cd android-14.0.0_r2
source build/envsetup.sh # 初始化环境
lunch aosp_arm-eng # 选择目标配置
make # 执行单机编译
```
编译成功后可以看到:
```
[ 99% 130084/130093] out/host/linux-x86/bin/resourceshrinker --output out/soong/.intermediates/frameworks/base/packages/SystemUI/SystemUI
Shrunken apk stored in:
out/soong/.intermediates/frameworks/base/packages/SystemUI/SystemUI/android_common/SystemUI-unsigned.apk.proto.out.apk
[100% 130093/130093] Target vbmeta image: out/target/product/generic/vbmeta.img
#### build completed successfully (02:20:12 (hh:mm:ss)) ####
```
### 配置AOSP项目开启ShareBuild模式
* 到 AOSP 项目根目录下执行 setup_sharebuild_forAOSP14.sh 配置ShareBuild分布式编译
```
cd android-14.0.0_r2
/etc/ninja2/aosp14/setup_sharebuild_forAOSP14.sh
```
* 在项目根目录下执行分布式编译
```bash
source build/envsetup.sh # 初始化环境
lunch aosp_arm-eng # 选择目标配置
make # 执行分布式编译
```
编译成功后可以看到:
* 客户端节点:
```
[ShareBuild] Command will be executed REMOTELY
[ShareBuild] ----------------------------------------
[100% 130093/130093] Target vbmeta image: out/target/product/generic/vbmeta.img
stdout: , stderr:
[16:34:34.063], pending/wanted: 5, ready: 2, running: 0
#### build completed successfully (01:42:17 (hh:mm:ss)) ####
real 102m16.362s
user 1074m56.673s
sys 64m22.863s
```
* 服务端节点sharebuild部分日志
```
{"severity":"INFO","timestamp":"2025-11-24T16:34:38.988708686+08:00","caller":"service/sharebuild_proxy.go:448","message":"Successfully cl
eared environment on executor","component":"proxy","executor":"id:\"12D3KoowBsw2Lrs7FwKkmgrmRt3MYQgNzLa82vjK8tve8gQ95KTk\"ip:\"192.168.1.
12\" port:39077 "}
{"severity":"INFO","timestamp":"2025-11-24T16:34:38.99059505+08:00","caller":"runner/project_runner.go:463","message":"ProjectRunner free.
.. ","component":"runner", "ReceivedtaskCount":0,"PreemptedTaskCount":33291}
[worker-17]Stopping worker
[worker-24]Stopping worker
```
```
make clean # 清除编译目标文件
rm -r out # 清除编译产物
```
## 版权声明
Copyright @ Mengning Software

View File

@@ -0,0 +1,56 @@
# DevStar CI/CD工作流 Actions Overview
DevStar基于Gitea Actions开发了开箱即用的CI/CD工作流解决方案, 兼容Github Actions生态系统。
> - 本站中Actions是指DevStar开箱即用的CI/CD工作流解决方案从不同方面兼容Gitea Actions和Github Actions。
> - 本站中actions/action是指Actions要使用的脚本/插件,比如"actions/checkout@v4" 或 "kekxv/AiReviewPR@v0.0.6"。
## Actions的安装配置方法
- DevStar安装过程中会默认启动一个全局的Actions Runner
- 一键启动Actions Runner
在项目设置、用户设置、组织设置和后台管理中如果当前用户有创建Actions Runner的权限可在工作流Actions板块下点击【创建新运行器】找到【一键启动运行器】可以创建相应作用范围的Actions Runner。
- 手工启动Actions Runner
在项目设置、用户设置、组织设置和后台管理中可以在工作流Actions板块下点击【创建新运行器】可以复制Registration Token。
> 不同位置复制的Registration Token创建的Actions Runner有不同的作用范围。
```
$ docker run --name devstar-runner -d -v /var/run/docker.sock:/var/run/docker.sock \
-e GITEA_INSTANCE_URL=${YOUR_DEVSTAR_URL} \
-e GITEA_RUNNER_REGISTRATION_TOKEN=${YOUR_DEVSTAR_RUNNER_REGISTRATION_TOKEN} \
devstar.cn/devstar/act_runner:latest
```
## 使用actions短链接的好处
在DevStar CI/CD工作流配置文件中如.gitea/workflows/ci-cd.yaml使用不包含域名的actions短链接DevStar会智能判断当前平台上是否有相同名称的仓库或镜像仓库如有则使用当前平台的仓库没有则默认使用github.com上的仓库。
```
- name: 🔍 Check out repository code
uses: actions/checkout@v4
- name: AI Review code
uses: kekxv/AiReviewPR@v0.0.6
- name: Report Test Results
if: always() && github.event_name == 'pull_request'
uses: actions/github-script@v6
```
> 类似以上actions短链接仓库如果在当前DevStar平台上创建相应的镜像仓库可以智能选择拉取本平台上的仓库从而避免github.com网络访问问题影响CI/CD工作流的执行。
## 调试CI/CD工作流
DevStar已支持在线调试CI/CD工作流配置文件脚本调试方法如下
- 在项目仓库页面点击【工作流/Actions】然后选择进入某个工作流右上角【编辑并运行工作流】即可修改脚本再次执行运行成功后可以直接提交到对应的仓库分支。
> 本地配置调试CI/CD工作流的方法参见
> - https://cli.github.com
> - [GitHub Local Actions](https://sanjulaganepola.github.io/github-local-actions-docs/)
> - https://nektosact.com/

View File

@@ -0,0 +1,3 @@
# DevStar CI/CD工作流 Actions 快速入门

View File

@@ -30,3 +30,106 @@ DevStar代码托管平台中项目设置、用户设置和后台管理中都可
### AI Code Review详解
## **一、核心工作流程说明**
AI Code Review 的执行过程如下:
1. **触发条件**
- 当有人新建 PRpull_request/opened
- 或更新了 PRpull_request/synchronize
→ 工作流自动开始执行。
2. **代码检出Checkout**
使用 actions/checkout 拉取 PR 的代码差异,为审查准备上下文。
3. **调用 AiReviewPR Action**
- Action 会读取 PR 的 diff、文件内容与上下文。
- 将这些内容组装为审查提示prompt
- 调用你配置的大模型Ollama、OpenAI 兼容接口等)。
- 获得模型输出后,自动写入 PR 评论区或输出到日志。
4. **输出结果**
- 如果 `REVIEW_PULL_REQUEST=true` → 自动在 PR 下评论。
- 如果为 false → 只在日志输出,便于本地验证。
------
## **二、AiReviewPR 的内部实现机制**
以下是 Action 的实际工作方式(代码见 GitHub
### **1. 自动收集 PR 信息**
Action 会自动读取:
- PR 编号、作者、提交信息
- diff 内容(新增、删除、修改)
- 受影响的文件内容
### **读取 PR Diff**
```
const diff = await octokit.pulls.get({
...github.context.issue,
mediaType: { format: "diff" },
}).then(r => r.data);
```
### 2. 构建审查 Prompt
Prompt 会自动包含:
- 代码变更摘要
- 修改前/修改后的代码片段
- 模型需要回答的格式,例如:
```
1. 潜在Bug
2. 代码风格问题
3. 性能优化
4. 安全风险
5. 重构建议
```
### **3. 调用大模型 API**
AiReviewPR 支持任意 OpenAI API 兼容模型,例如:
- 本地 **Ollama**
- OpenAI、DeepSeek、Qwen 公开服务
- 私有化模型服务
只需提供:
```
vars.MODEL
vars.OLLAMA_HOST
```
Action 会自动发送:
```
{
"model": "qwen2.5:14b",
"messages": [
{"role": "system", "content": "..."},
{"role": "user", "content": "这是PR的代码修改内容..."}
]
}
```
### **4. 返回数据解析**
Action 提取模型的回答内容,将其转换为 Markdown并根据配置输出为
- GitHub/Gitea PR 评论
- 工作流日志(便于调试)
### **发布评论**
```
await octokit.issues.createComment({
...github.context.issue,
body: review,
});
```

View File

@@ -1,3 +1,4 @@
# DevStar AI+ DevOps
DevStar AI+ DevOps 是一个完整的AI驱动研发平台解决方案通过集成 DevStar平台、代码大语言模型、Gitea MCP Server和 AI Code ToolsCursor、Claude Code、iFlow等为开发者提供智能化研发支撑体系。
@@ -13,12 +14,11 @@ wget -c https://devstar.cn/assets/install.sh && chmod +x install.sh && sudo ./in
sudo devstar start
```
安装完成后我们得到DevStar代码托管平台的URL比如http://172.16.94.26:80
安装完成后我们得到DevStar代码托管平台的URL比如http://172.16.94.26:80 ,之后作为 `GITEA_HOST`(给 MCP Server 用)
### 二、Ollama私有部署代码大模型
> 如您使用第三方大模型开放API可以跳过这一部分。
> 比如从[智谱AI开放平台](https://bigmodel.cn/usercenter/proj-mgmt/apikeys) 上注册申请并添加新的API Key以Claude Code为例URL使用https://open.bigmodel.cn/api/anthropic
> 如您使用第三方API及Token比如从[智谱AI开放平台](https://bigmodel.cn/usercenter/proj-mgmt/apikeys) 上注册申请并添加新的API Key可以跳过这一部分。
Ubuntu-20.04下完成安装:
```
@@ -53,7 +53,14 @@ systemctl daemon-reload
systemctl restart ollama
```
安装完成后我们得到API URL,比如http://172.16.94.26:11434/api/tags model比如qwen2.5-coder:32b token比如TOKEN***************
**产出**
- 模型服务地址,例如:`http://172.16.94.26:11434`
- 模型名,例如:`qwen2.5-coder:32b`
**后面用在哪里**
- CI/CD 里的 AI Code Review作为 `vars.MODEL` / `vars.OLLAMA_HOST`
### 三、在项目中使用代码大模型
@@ -82,8 +89,14 @@ jobs:
model: ${{ vars.MODEL }}
host: ${{ vars.OLLAMA_HOST }}
REVIEW_PULL_REQUEST: false
//如果用ai token 则需配置
//ai_token: ${{ vars.AI_TOKEN }}
```
DevStar代码托管平台中项目设置、用户设置和后台管理中都可以设置变量vars.MODEL、vars.OLLAMA_HOST等。
然后在 DevStar 平台上您的项目仓库【设置 > 工作流】 里设置变量或密钥:
- `vars.MODEL`:填入 **第二步中的模型名**,例如 `qwen2.5-coder:32b`
- `vars.OLLAMA_HOST`:填入 **第二步中得到的模型服务地址** 例如 `http://172.16.94.26:11434`
- `vars.AI_TOKEN`:填入 **第二步中第三方获取的API Key token**
#### 安装配置MCP Server
@@ -95,7 +108,6 @@ DevStar代码托管平台中项目设置、用户设置和后台管理中都可
```
{
"mcp": {
"inputs": [
{
"type": "promptString",
@@ -118,21 +130,42 @@ DevStar代码托管平台中项目设置、用户设置和后台管理中都可
"docker.gitea.com/gitea-mcp-server"
],
"env": {
"GITEA_HOST": "--host http://172.16.94.26",
"GITEA_HOST": "<Your Gitea Host>",
"GITEA_ACCESS_TOKEN": "${input:gitea_token}"
}
}
}
}
}
```
#### 配置AI IDE/CLI使用私有大模型及MCP Server
`GITEA_HOST`**第一步中得到的 DevStar 代码托管平台地址**
`gitea_token`:来自 DevStar / Gitea 的「个人访问令牌」
获取方式:
1. 登录 DevStar 平台 `GITEA_HOST` 对应的网站)
2. 进入:右上角用户 【设置 > 应用】中
3. 点击「生成新的令牌」,命名令牌并给予仓库读取等必要权限
4. 复制生成的一串字符串,这就是你的 `gitea_token`
#### 配置 AI IDE/CLI 使用 LLM 及 MCP Server
- **LLM**
- 使用第三方 API/云端模型OpenAI/Anthropic/Azure/Gemini
- **Cursor**:在模型设置中选择对应 Provider配置 **API Key / Base URL / Model**
- **Continue**Add Chat model 选择对应 Provider配置 **API Key / Base URL / Model**
- **Copilot**:在“管理模型”中选择 **Copilot 支持的云端模型**(若需使用自带 Key 的第三方,一般用 Cursor/Continue 接入更直接)
- 使用本地/私有部署Ollama / 内网 LLM
- **Copilot**:在“管理模型”中选择 **ollama**
- **Continue**Add Chat model → Provider 选择 **ollama**
- **Cursor**:若 LLM 在内网且 Cursor 不支持直连,需要做**反向代理/企业网关**提供公网可访问的 **Base URL** 再接入
- **MCP Server与 LLM 选择无关)**
- **CopilotVS Code**:将 MCP 配置添加到 **.vscode/mcp.json**
- **Cursor**Cursor Settings → Tools & MCP → New MCP Server将 MCP 配置写入 **mcp.json**
- **Continue**Settings → Tools → MCP Servers 配置 YAML ,或复用 Cursor 的 MCP 配置:将 **mcp.json** 放到 **.continue/mcpServers/mcp.json**
* Copilot简要文字描述不要上太多图可以提供官方配置链接
* Cursor
* Continue
* ...
## 🚀 DevStar AI+ DevOps演示
@@ -140,22 +173,35 @@ DevStar代码托管平台中项目设置、用户设置和后台管理中都可
### 创建一个项目
使用ai-develops项目模板创建项目
点击右上角创建仓库->DevStar模板中选择Devstar.cn/template/ai-develops
todo
![](./static/template.png)
在项目中创建一个issue
![](./static/issue-1.png)
### AI生成代码
todo
1.请在 Gitea 仓库 owner/repo 中读取 issue #1,帮我用自己的话总结问题、预期行为,并给出一个简单的解决思路。
2.请根据你对 issue #的理解实现这个功能
3.请为这次修复 issue #1 的改动补充或更新测试代码,遵循项目的现有测试风格,并说明每个测试在验证什么行为。
![](./static/exp.png)
### 提交PR
todo
1.请使用 Gitea MCP 为 issue #1创建一个新分支(如 fix/issue-1将本次所有相关修改提交为一个清晰的 commit
2.请使用 Gitea MCP 从你刚才创建的分支向 main 分支发起一个 PR标题中包含 “#1”,描述中简要说明问题、解决方案、主要改动和测试情况,并把 PR 的链接或编号发给我。
![](./static/pr.png)
### AI Code Review
todo
![](./static/code-review.png)
### 合并PR
![](./static/review.png)
todo

View File

@@ -0,0 +1,4 @@
# DevStar DevContainer Overview

View File

@@ -0,0 +1,3 @@
# DevStar DevContainer 快速入门

View File

@@ -1,51 +1,549 @@
---
outline: deep
weight: 6
---
# MCP Server
### 快速安装配置MCP Server
DevStar 内置了 MCP (Model Context Protocol) Server为 AI 编程助手提供对 DevStar 平台的完整访问能力包括代码仓库、Issues、Pull Requests、Actions 等所有核心功能。
在 VS Code 中使用,要快速安装,请使用如下安装按钮。
## 概述
[![在 VS Code 中使用 Docker 安装](https://img.shields.io/badge/VS_Code-Install_Server-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=gitea&inputs=[{%22id%22:%22gitea_token%22,%22type%22:%22promptString%22,%22description%22:%22Gitea%20Personal%20Access%20Token%22,%22password%22:true}]&config={%22command%22:%22docker%22,%22args%22:[%22run%22,%22-i%22,%22--rm%22,%22-e%22,%22GITEA_ACCESS_TOKEN%22,%22docker.gitea.com/gitea-mcp-server%22],%22env%22:{%22GITEA_ACCESS_TOKEN%22:%22${input:gitea_token}%22}}) [![在 VS Code Insiders 中使用 Docker 安装](https://img.shields.io/badge/VS_Code_Insiders-Install_Server-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=gitea&inputs=[{%22id%22:%22gitea_token%22,%22type%22:%22promptString%22,%22description%22:%22Gitea%20Personal%20Access%20Token%22,%22password%22:true}]&config={%22command%22:%22docker%22,%22args%22:[%22run%22,%22-i%22,%22--rm%22,%22-e%22,%22GITEA_ACCESS_TOKEN%22,%22docker.gitea.com/gitea-mcp-server%22],%22env%22:{%22GITEA_ACCESS_TOKEN%22:%22${input:gitea_token}%22}}&quality=insiders)
DevStar MCP Server 是一个基于 [MCP 协议](https://modelcontextprotocol.io) 的服务端实现,允许 AI 编程助手(如 Claude Code、Cursor、VS Code Copilot通过标准化的方式访问 DevStar 平台的各项功能。
也可以在项目中添加到 .vscode/mcp.json 文件如下:
### 核心特性
- **内置集成**无需额外部署DevStar 平台直接提供 MCP Server
- **完整功能覆盖**支持仓库、Issue、PR、Actions、Wiki 等所有核心功能
- **标准协议**:基于 MCP 2024-11-05 协议规范
- **安全认证**:支持 Bearer Token 认证
- **HTTP 传输**:通过标准 HTTP POST 请求进行通信
## 架构设计
```
┌─────────────────────────────────────────────────────────┐
│ MCP 客户端 │
│ (Claude Code / Cursor / VS Code Copilot) │
└─────────────────────┬───────────────────────────────────┘
│ HTTP POST /api/mcp
│ Authorization: Bearer <token>
┌─────────────────────────────────────────────────────────┐
│ DevStar MCP Server │
│ • JSON-RPC 消息处理 │
│ • 方法路由: initialize/tools/list/tools/call │
│ • 工具执行调度 │
└─────────────────────┬───────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ 工具实现层 (10 大类,共 89 个工具) │
│ ┌──────────┬──────────┬─────────┬─────────┬────────┐ │
│ │ actions │ repo │ issue │ pull │ label │ │
│ │ (27个) │ (16个) │ (11个) │ (4个) │ (9个) │ │
│ └──────────┴──────────┴─────────┴─────────┴────────┘ │
│ ┌──────────┬──────────┬─────────┬─────────┬────────┐ │
│ │ milestone│ wiki │ release │user/ │ org │ │
│ │ (5个) │ (6个) │ (5个) │search │ actions │ │
│ │ │ │ │ (5个) │ (12个) │ │
│ └──────────┴──────────┴─────────┴─────────┴────────┘ │
└─────────────────────────────────────────────────────────┘
```
## 快速开始
DevStar MCP Server 提供开箱即用的体验,通过 DevStar VS Code 插件自动配置,无需手动配置。
### 使用 DevStar VS Code 插件(推荐)
**这是最简单的方式,完全自动化配置。**
1. **安装 DevStar VS Code 插件**
- 在 VS Code 扩展市场搜索 "DevStar"
- 点击安装
2. **登录 DevStar 账号**
- 点击 VS Code 左侧的 DevStar 图标
- 输入 DevStar 平台地址(如 `https://devstar.cn`
- 输入用户名和访问令牌
3. **自动配置 MCP Server**
- 登录后,插件会自动检测运行环境并配置 MCP Server
- 容器环境:配置到容器内的 MCP 配置文件(路径因环境而异)
- 本地环境:配置到本地 MCP 配置文件(路径因 IDE 而异)
- 配置内容自动包含正确的认证令牌和 API 地址
4. **开始使用**
- 在 AI 助手中直接对话
- AI 助手可以访问 DevStar 平台的所有功能
### 手动配置(高级用户)
如果你需要手动配置(不使用 DevStar VS Code 插件),请按照以下步骤:
#### 1. 获取访问令牌
在 DevStar 平台创建 Personal Access Token
1. 登录 DevStar 平台
2. 进入 **设置****应用****访问令牌**
3. 点击 **生成新令牌**
4. 设置令牌名称
5. 选择权限范围(建议至少包含 `read:user``read:repository``write:issue` 等)
6. 复制生成的令牌(注意:令牌只显示一次)
#### 2. 根据你的 AI 编程环境配置
**Claude Code**
配置文件位置:
- macOS/Linux: `~/.claude/mcp_servers.json`
- Windows: `%APPDATA%\Claude\mcp_servers.json`
```json
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "gitea_token",
"description": "Gitea 个人访问令牌",
"password": true
}
],
"servers": {
"gitea-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITEA_HOST",
"-e",
"GITEA_ACCESS_TOKEN",
"docker.gitea.com/gitea-mcp-server"
],
"env": {
"GITEA_HOST": "--host http://172.16.94.26",
"GITEA_ACCESS_TOKEN": "${input:gitea_token}"
}
}
}
"mcpServers": {
"devstar": {
"type": "http",
"url": "http://<YOUR_DEVSTAR_HOST>/api/mcp",
"headers": {
"Authorization": "Bearer <YOUR_TOKEN>"
}
}
}
}
```
### MCP Server使用注意事项
**Cursor**
* Copilot简要文字描述不要上太多图可以提供官方配置链接
* Cursor
* Continue
* ...
配置文件位置:
- macOS/Linux: `~/.cursor/mcp.json`
- Windows: `%USERPROFILE%\.cursor\mcp.json`
<!-- TODO: 添加 Cursor 的详细配置说明 -->
```json
{
"mcpServers": {
"devstar": {
"type": "http",
"url": "http://<YOUR_DEVSTAR_HOST>/api/mcp",
"headers": {
"Authorization": "Bearer <YOUR_TOKEN>"
}
}
}
}
```
**Windsurf**
<!-- TODO: 添加 Windsurf 的配置说明 -->
**VS Code Copilot**
VS Code Copilot 的 MCP 配置文件位置:
- **macOS**: `~/Library/Application Support/Code/User/mcp.json`
- **Windows**: `%APPDATA%/Code/User/mcp.json`
配置方式:
1. 使用快捷键 `Ctrl + Shift + P` (Windows/Linux) 或 `Cmd + Shift + P` (macOS)
2. 输入命令 `workbench.mcp.openUserMcpJson` 并执行
3. 在打开的 `mcp.json` 配置文件中添加以下内容:
```json
{
"servers": {
"devstar": {
"type": "http",
"url": "http://<YOUR_DEVSTAR_HOST>/api/mcp",
"headers": {
"Authorization": "Bearer <YOUR_TOKEN>"
}
}
}
}
```
**Trae IDE容器环境**
Trae IDE 运行在容器内部,其 MCP 配置文件位于:
- **容器内路径**: `/root/.trae-server/data/Machine/mcp.json`
由于 Trae IDE 运行在容器内,需要通过 SSH 访问容器来修改配置文件。建议使用 **DevStar VS Code 插件**自动配置,插件会自动处理容器内的配置。
如果需要手动配置SSH 进入容器后,编辑配置文件:
```bash
# SSH 进入容器
ssh root@<container-ip>
# 编辑 MCP 配置文件
vi /root/.trae-server/data/Machine/mcp.json
```
添加以下内容:
```json
{
"mcpServers": {
"devstar": {
"type": "http",
"url": "http://<YOUR_DEVSTAR_HOST>/api/mcp",
"headers": {
"Authorization": "Bearer <YOUR_TOKEN>"
}
}
}
}
```
> **注意**
> - 将 `<YOUR_TOKEN>` 替换为你的访问令牌
> - 将 `https://devstar.cn` 替换为你的 DevStar 实例地址
> - Windows 和 Linux 平台的具体配置路径可能因 IDE 版本而异,请参考对应 IDE 的官方文档
> - 配置完成后需要重启 IDE 以使更改生效
## API 端点
DevStar MCP Server 通过以下端点提供服务:
| 端点 | 方法 | 描述 |
|------|------|------|
| `/api/mcp` | POST | MCP JSON-RPC 请求入口 |
### 认证方式
支持两种认证方式:
**方式 1Authorization Header推荐**
```
Authorization: Bearer <your_token>
```
**方式 2URL 参数**
```
/api/mcp?token=<your_token>
```
## 可用工具
DevStar MCP Server 提供了以下 10 大类工具,共 89 个具体功能:
### 1. Actions 工具 (27个)
**仓库 Actions**
| 工具名称 | 描述 |
|---------|------|
| `list_repo_action_runs` | 列出仓库 Actions 运行记录 |
| `get_repo_action_run` | 获取单个 Action 运行详情 |
| `rerun_repo_action_run` | 重新运行失败的 Action |
| `cancel_repo_action_run` | 取消正在运行的 Action |
| `list_repo_action_run_jobs` | 列出 Action 运行的作业 |
| `get_repo_action_job_log_preview` | 获取 Action 日志预览 |
| `download_repo_action_job_log` | 下载 Action 日志到文件 |
| `list_repo_action_workflows` | 列出仓库 Actions 工作流 |
| `get_repo_action_workflow` | 获取单个工作流详情 |
| `dispatch_repo_action_workflow` | 触发 Actions 工作流 |
| `list_repo_action_jobs` | 列出 Actions 作业 |
| `list_repo_action_secrets` | 列出仓库 Actions 密钥 |
| `list_repo_action_variables` | 列出仓库 Actions 变量 |
| `get_repo_action_variable` | 获取仓库 Actions 变量 |
| `create_repo_action_variable` | 创建仓库 Actions 变量 |
| `update_repo_action_variable` | 更新仓库 Actions 变量 |
| `delete_repo_action_variable` | 删除仓库 Actions 变量 |
| `upsert_repo_action_secret` | 创建或更新仓库 Actions 密钥 |
| `delete_repo_action_secret` | 删除仓库 Actions 密钥 |
**组织 Actions**
| 工具名称 | 描述 |
|---------|------|
| `list_org_action_secrets` | 列出组织 Actions 密钥 |
| `list_org_action_variables` | 列出组织 Actions 变量 |
| `get_org_action_variable` | 获取组织 Actions 变量 |
| `create_org_action_variable` | 创建组织 Actions 变量 |
| `update_org_action_variable` | 更新组织 Actions 变量 |
| `delete_org_action_variable` | 删除组织 Actions 变量 |
| `upsert_org_action_secret` | 创建或更新组织 Actions 密钥 |
| `delete_org_action_secret` | 删除组织 Actions 密钥 |
### 2. 仓库/分支/标签工具 (16个)
| 工具名称 | 描述 |
|---------|------|
| `create_branch` | 创建新分支 |
| `delete_branch` | 删除分支 |
| `list_branches` | 列出所有分支 |
| `create_tag` | 创建标签 |
| `delete_tag` | 删除标签 |
| `get_tag` | 获取标签详情 |
| `list_tags` | 列出所有标签 |
| `list_repo_commits` | 列出仓库提交记录 |
| `create_file` | 创建文件 |
| `update_file` | 更新文件 |
| `delete_file` | 删除文件 |
| `get_file_content` | 获取文件内容和元数据 |
| `get_dir_content` | 获取目录内容列表 |
| `list_my_repos` | 列出我的仓库 |
| `create_repo` | 创建仓库 |
| `fork_repo` | Fork 仓库 |
### 3. Issue 工具 (11个)
| 工具名称 | 描述 |
|---------|------|
| `get_issue_by_index` | 根据索引获取 Issue |
| `list_repo_issues` | 列出仓库 Issues |
| `create_issue` | 创建 Issue |
| `edit_issue` | 编辑 Issue |
| `create_issue_comment` | 创建 Issue 评论 |
| `edit_issue_comment` | 编辑 Issue 评论 |
| `get_issue_comments_by_index` | 获取 Issue 评论 |
| `add_issue_labels` | 添加 Issue 标签 |
| `remove_issue_label` | 移除单个 Issue 标签 |
| `replace_issue_labels` | 替换 Issue 标签 |
| `clear_issue_labels` | 清除 Issue 标签 |
### 4. Pull Request 工具 (4个)
| 工具名称 | 描述 |
|---------|------|
| `get_pull_request_by_index` | 根据索引获取 Pull Request |
| `list_repo_pull_requests` | 列出 Pull Requests |
| `create_pull_request` | 创建 Pull Request |
| `create_pull_request_reviewer` | 添加 PR 审查者 |
### 5. 标签工具 (9个)
**仓库标签:**
| 工具名称 | 描述 |
|---------|------|
| `list_repo_labels` | 列出仓库标签 |
| `get_repo_label` | 获取单个标签 |
| `create_repo_label` | 创建仓库标签 |
| `edit_repo_label` | 编辑仓库标签 |
| `delete_repo_label` | 删除仓库标签 |
**组织标签:**
| 工具名称 | 描述 |
|---------|------|
| `list_org_labels` | 列出组织标签 |
| `create_org_label` | 创建组织标签 |
| `edit_org_label` | 编辑组织标签 |
| `delete_org_label` | 删除组织标签 |
### 6. 里程碑工具 (5个)
| 工具名称 | 描述 |
|---------|------|
| `get_milestone` | 获取里程碑详情 |
| `list_milestones` | 列出所有里程碑 |
| `create_milestone` | 创建里程碑 |
| `edit_milestone` | 编辑里程碑 |
| `delete_milestone` | 删除里程碑 |
### 7. Wiki 工具 (6个)
| 工具名称 | 描述 |
|---------|------|
| `list_wiki_pages` | 列出所有 Wiki 页面 |
| `get_wiki_page` | 获取 Wiki 页面内容 |
| `get_wiki_revisions` | 获取 Wiki 页面修订历史 |
| `create_wiki_page` | 创建 Wiki 页面 |
| `update_wiki_page` | 更新 Wiki 页面 |
| `delete_wiki_page` | 删除 Wiki 页面 |
### 8. Release 工具 (5个)
| 工具名称 | 描述 |
|---------|------|
| `list_releases` | 列出发布版本 |
| `get_release` | 获取发布版本详情 |
| `get_latest_release` | 获取最新发布版本 |
| `create_release` | 创建发布版本 |
| `delete_release` | 删除发布版本 |
### 9. 用户与搜索工具 (5个)
| 工具名称 | 描述 |
|---------|------|
| `get_my_user_info` | 获取当前用户信息 |
| `get_user_orgs` | 获取用户所属组织 |
| `search_users` | 搜索用户 |
| `search_repos` | 搜索仓库 |
| `search_org_teams` | 搜索组织团队 |
### 10. 版本工具 (1个)
| 工具名称 | 描述 |
|---------|------|
| `get_gitea_mcp_server_version` | 获取 MCP Server 版本 |
## 使用示例
### 示例 1创建分支
在 Claude Code 中:
```
请在仓库 devstar/demo 的 main 分支基础上创建一个新分支 feature/new-function
```
### 示例 2创建 Issue
在 Cursor 中:
```
帮我创建一个 Issue
- 仓库devstar/docs
- 标题:更新 MCP Server 文档
- 描述:添加 DevStar 内置 MCP Server 的使用说明
```
### 示例 3查看 PR 状态
在 VS Code Copilot 中:
```
显示 devstar/devstar 仓库 #54 号 PR 的详细信息
```
## 独立部署Gitea MCP ServerDocker
DevStar 平台兼容 Gitea 官方的 Docker 方式独立部署Gitea MCP Server。如果你想使用Gitea MCP Server请参考 [Gitea MCP Server 官方文档](https://docs.gitea.com/usage/mcp-server) 获取详细的部署和配置说明。
## 支持的客户端
DevStar MCP Server 支持所有遵循 MCP 协议的 AI 编程助手。以下是一些常用的客户端:
### Claude Code
- 配置文件:`~/.claude/mcp_servers.json` (macOS/Linux) 或 `%APPDATA%\Claude\mcp_servers.json` (Windows)
- 原生支持 HTTP 传输模式
- [官方文档](https://docs.anthropic.com/claude-code/mcp)
### VS Code Copilot
VS Code Copilot 运行在**本地机器**上(容器外),因此配置文件位于本地文件系统:
- **配置文件路径**
- macOS: `~/Library/Application Support/Code/User/mcp.json`
- Windows: `%APPDATA%/Code/User/mcp.json`
- **配置格式**:使用 `servers` 字段
- **配置方式**:使用 `Ctrl+Shift+P` 输入 `workbench.mcp.openUserMcpJson` 命令打开配置文件
- [官方文档](https://vscode.js.cn/docs/copilot/customization/mcp-servers)
### Cursor
<!-- TODO: 添加 Cursor 的详细说明 -->
- 配置文件:`.cursor/mcp.json``.vscode/mcp.json`
- [官方文档](https://cursor.com/cn/docs/context/mcp)
### Trae IDE
Trae IDE 运行在**容器内部**,因此配置文件位于容器内:
- **容器内配置路径**`/root/.trae-server/data/Machine/mcp.json`
- **配置格式**:使用 `mcpServers` 字段
- **配置方式**:需要 SSH 进入容器后手动配置,或使用 DevStar VS Code 插件自动配置
- **注意**:由于运行在容器内,与 VS Code Copilot本地运行使用不同的配置路径
### Windsurf
<!-- TODO: 添加 Windsurf 的详细说明 -->
## 故障排除
### 常见问题
**Q: DevStar VS Code 插件无法自动配置 MCP**
```
A: 检查以下项:
- 确认已正确登录 DevStar 账号
- 检查配置文件是否有写入权限
- 查看插件日志(输出面板)
- 尝试手动配置(见上方"手动配置"部分)
```
**Q: MCP Server 连接失败**
```
A: 检查以下项:
- DevStar 实例地址是否正确
- 访问令牌是否有效且未过期
- 网络连接是否正常
- 防火墙是否允许访问
- IDE 是否已重启以加载配置
```
**Q: AI 助手无法访问 DevStar 功能**
```
A: 确认:
- MCP Server 配置文件路径正确
- Bearer Token 格式正确(以 "Bearer " 开头)
- 访问令牌具有足够的权限
- IDE 已重启以加载新配置
```
**Q: Token 过期或失效**
```
A: 访问令牌有过期时间。如果过期,需要:
1. 重新生成令牌
2. 更新 MCP 客户端配置
3. 重启 IDE
```
**Q: 配置文件路径在哪里?**
```
A: 配置文件路径取决于你使用的 IDE
- Claude Code: ~/.claude/mcp_servers.json (macOS/Linux) 或 %APPDATA%\Claude\mcp_servers.json (Windows)
- Cursor: ~/.cursor/mcp.json (macOS/Linux) 或 %USERPROFILE%\.cursor\mcp.json (Windows)
- VS Code Copilot: ~/Library/Application Support/Code/User/mcp.json (macOS) 或 %APPDATA%/Code/User/mcp.json (Windows)
- Trae IDE容器内: /root/.trae-server/data/Machine/mcp.json
- Windsurf: <!-- TODO: 添加 Windsurf 配置路径 -->
注:具体路径可能因 IDE 版本而异,请参考对应 IDE 的官方文档
```
**Q: 工具调用失败**
```
A: 确认:
- 访问令牌具有足够的权限
- 仓库名称和所有者名称正确
- 用户有相应操作的权限
```
## 技术实现
DevStar MCP Server 基于 [mcp-go](https://github.com/mark3labs/mcp-go) 库实现,采用以下技术栈:
- **协议版本**: MCP 2024-11-05
- **传输方式**: HTTP POST
- **认证方式**: Bearer Token
- **数据格式**: JSON-RPC 2.0
### 核心组件
```
services/mcp/
├── config.go # MCP 配置
├── context/ # Token 上下文管理
├── gitea/ # Gitea SDK 客户端
├── operation/ # MCP 工具实现
│ ├── actions/ # CI/CD Actions 工具
│ ├── issue/ # Issue 工具
│ ├── pull/ # Pull Request 工具
│ ├── repo/ # 仓库工具
│ └── ...
└── log/ # 日志模块
routers/api/mcp/
├── mcp.go # 请求处理入口
└── server/ # MCP Server 实现
```
## 更多资源
- [MCP 协议规范](https://modelcontextprotocol.io)
- [DevStar 平台文档](https://devstar.cn/devstar/docs)
- [Claude Code 文档](https://docs.anthropic.com/claude-code)
- [Cursor MCP 文档](https://cursor.com/cn/docs/context/mcp)
- [VS Code Copilot MCP 文档](https://vscode.js.cn/docs/copilot/customization/mcp-servers)

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

BIN
src/devstar/static/code.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

BIN
src/devstar/static/exp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

BIN
src/devstar/static/mcp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
src/devstar/static/port.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
src/devstar/static/pr.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 KiB

BIN
src/devstar/static/vars.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB