article
README
🚀 Snippy - 代码片段管理工具
Snippy是一个基于Microsoft Azure构建的代码片段管理工具。它允许用户保存、查看代码片段,还能从存储的代码片段中自动生成项目Wiki和代码风格指南,极大提升了代码管理和文档生成的效率。
🚀 快速开始
本地部署
- 环境准备:
- 安装Docker(用于本地开发)。
- 安装Azurite和Cosmos Emulator(用于模拟云服务)。
- 代码仓库克隆:
git clone https://github.com/Azure-Samples/snippy.git cd snippy - 配置本地环境变量:
- 创建
local.settings.json文件,并填写以下内容(根据实际情况修改占位符):
{ "COSMOS_CONN": "<你的Cosmos连接字符串>", "AZURE_OPENAI_ENDPOINT": "<你的OpenAI终结点>", "AZURE_OPENAI_KEY": "<你的OpenAI密钥>", "PROJECT_CONNECTION_STRING": "<你的项目连接字符串>" } - 创建
- 启动本地服务:
服务将在func starthttp://localhost:7071上运行。
使用Codespaces
通过以下步骤在Codespaces上运行项目:
- 打开项目仓库:Snippy
- 点击“Code”按钮,选择“Open in Codespace”。
✨ 主要特性
- 保存代码片段:将选定的代码片段保存到云存储中。
- 查看代码片段:通过名称查找并显示已保存的代码片段。
- 生成文档:从存储的代码片段中自动生成项目Wiki和代码风格指南。
📦 安装指南
本地部署
- 环境准备:
- 安装Docker(用于本地开发)。
- 安装Azurite和Cosmos Emulator(用于模拟云服务)。
- 代码仓库克隆:
git clone https://github.com/Azure-Samples/snippy.git cd snippy - 配置本地环境变量:
- 创建
local.settings.json文件,并填写以下内容(根据实际情况修改占位符):
{ "COSMOS_CONN": "<你的Cosmos连接字符串>", "AZURE_OPENAI_ENDPOINT": "<你的OpenAI终结点>", "AZURE_OPENAI_KEY": "<你的OpenAI密钥>", "PROJECT_CONNECTION_STRING": "<你的项目连接字符串>" } - 创建
- 启动本地服务:
服务将在func starthttp://localhost:7071上运行。
💻 使用示例
代码片段操作
保存代码片段
通过以下命令将代码片段保存到云存储:
curl -X POST "http://localhost:7071/api/snippets" \
-H "Content-Type: text/plain" \
-d "<你的代码片段>"
查看代码片段
通过以下命令查找并显示已保存的代码片段:
curl "http://localhost:7071/api/snippets/<片段名称>"
文档生成
生成Wiki
通过以下命令生成项目Wiki:
curl -X POST "http://localhost:7071/api/snippets/wiki" \
-H "Content-Type: application/json" \
-d '{"title":"<你的标题>", "content":"<你的内容>"}'
生成风格指南
通过以下命令生成代码风格指南:
curl -X POST "http://localhost:7173/api/snippets/code-style" \
-H "Content-Type: application/json" \
-d '{"language":"<语言>", "styles":"<样式说明>"}'
📚 详细文档
MCP配置
快速创建mcp.json
mkdir -p .vscode && cat > .vscode/mcp.json <<'EOF'
{
"inputs": [
{
"type": "promptString",
"id": "functions-mcp-extension-system-key",
"description": "Azure Functions MCP系统密钥",
"password": true
},
{
"type": "promptString",
"id": "functionapp-name",
"description": "部署的函数应用名称"
}
],
"servers": {
"local-snippy": {
"type": "sse",
"url": "http://localhost:7071/runtime/webhooks/mcp/sse"
},
"remote-snippy": {
"type": "sse",
"url": "https://${input:functionapp-name}.azurewebsites.net/runtime/webhooks/mcp/sse",
"headers": { "x-functions-key": "${input:functions-mcp-extension-system-key}" }
}
}
}
EOF
获取系统密钥:
az functionapp keys list -g <资源组名> -n <函数应用名称> --query [0].value
🔧 技术细节
主要组件
- Azure Functions:用于实现RESTful API接口,处理用户的请求。
- Durable Functions:用于异步任务处理(如生成文档)。
- Cosmos DB:作为存储后端,用于保存代码片段和元数据。
- OpenAI Integration:集成OpenAI API,用于生成自然语言文本(如Wiki和风格指南)。
核心功能
代码片段管理
- API Endpoint:
/api/snippets- POST: 上传新的代码片段。
- GET/{name}: 获取指定名称的代码片段。
文档生成
- API Endpoint:
/api/snippets/wiki和/api/snippets/code-style- POST: 分别用于生成项目Wiki和代码风格指南。
🤝 贡献指南
如何贡献
- Fork该项目仓库。
- 在自己的分支上进行修改。
- 提交并创建Pull Request。
代码规范
- 遵循Microsoft Azure的代码规范。
- 保持代码简洁和可维护性。
📞 支持与反馈
问题报告
如果有任何问题或建议,请在GitHub仓库中创建Issues: Snippy Issues
社区支持
加入我们的Discord社区,与其他开发者交流经验。
📄 许可证
该项目使用MIT License。
微信扫一扫