Snippy

Snippy

🚀 Snippy - 代码片段管理工具

Snippy是一个基于Microsoft Azure构建的代码片段管理工具。它允许用户保存、查看代码片段,还能从存储的代码片段中自动生成项目Wiki和代码风格指南,极大提升了代码管理和文档生成的效率。

🚀 快速开始

本地部署

  1. 环境准备
  2. 代码仓库克隆
    git clone https://github.com/Azure-Samples/snippy.git
    cd snippy
    
  3. 配置本地环境变量
    • 创建local.settings.json文件,并填写以下内容(根据实际情况修改占位符):
    {
    "COSMOS_CONN": "<你的Cosmos连接字符串>",
    "AZURE_OPENAI_ENDPOINT": "<你的OpenAI终结点>",
    "AZURE_OPENAI_KEY": "<你的OpenAI密钥>",
    "PROJECT_CONNECTION_STRING": "<你的项目连接字符串>"
    }
    
  4. 启动本地服务
    func start
    
    服务将在http://localhost:7071上运行。

使用Codespaces

通过以下步骤在Codespaces上运行项目:

  1. 打开项目仓库:Snippy
  2. 点击“Code”按钮,选择“Open in Codespace”。

✨ 主要特性

  • 保存代码片段:将选定的代码片段保存到云存储中。
  • 查看代码片段:通过名称查找并显示已保存的代码片段。
  • 生成文档:从存储的代码片段中自动生成项目Wiki和代码风格指南。

📦 安装指南

本地部署

  1. 环境准备
  2. 代码仓库克隆
    git clone https://github.com/Azure-Samples/snippy.git
    cd snippy
    
  3. 配置本地环境变量
    • 创建local.settings.json文件,并填写以下内容(根据实际情况修改占位符):
    {
    "COSMOS_CONN": "<你的Cosmos连接字符串>",
    "AZURE_OPENAI_ENDPOINT": "<你的OpenAI终结点>",
    "AZURE_OPENAI_KEY": "<你的OpenAI密钥>",
    "PROJECT_CONNECTION_STRING": "<你的项目连接字符串>"
    }
    
  4. 启动本地服务
    func start
    
    服务将在http://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

🔧 技术细节

主要组件

  1. Azure Functions:用于实现RESTful API接口,处理用户的请求。
  2. Durable Functions:用于异步任务处理(如生成文档)。
  3. Cosmos DB:作为存储后端,用于保存代码片段和元数据。
  4. OpenAI Integration:集成OpenAI API,用于生成自然语言文本(如Wiki和风格指南)。

核心功能

代码片段管理

  • API Endpoint: /api/snippets
    • POST: 上传新的代码片段。
    • GET/{name}: 获取指定名称的代码片段。

文档生成

  • API Endpoint: /api/snippets/wiki/api/snippets/code-style
    • POST: 分别用于生成项目Wiki和代码风格指南。

🤝 贡献指南

如何贡献

  1. Fork该项目仓库。
  2. 在自己的分支上进行修改。
  3. 提交并创建Pull Request。

代码规范

📞 支持与反馈

问题报告

如果有任何问题或建议,请在GitHub仓库中创建Issues: Snippy Issues

社区支持

加入我们的Discord社区,与其他开发者交流经验。

📄 许可证

该项目使用MIT License

  • 0 关注
  • 0 收藏,14 浏览
  • system 提出于 2025-09-19 02:00

相似服务问题

相关AI产品