跳转到主要内容

将软件生命周期最佳实践自动化应用于您的GitHub仓库

项目描述


SLIM CLI工具

Automate the application of best practices to your git repositories

SLIM

slim-cli-screen

SLIM CLI是一款命令行工具,旨在无缝地将SLIM最佳实践与您的开发工作流程结合。它从您的Git仓库中获取并应用结构化的SLIM最佳实践。该工具利用人工智能能力根据您的仓库特定情况定制和调整SLIM最佳实践的应用。

网站 | 文档/Wiki | 讨论板 | 问题追踪器

特性

  • 适用于将SLIM最佳实践应用于Git开发工作流程的命令行界面。
  • 从SLIM注册表中动态获取最新的SLIM最佳实践。
  • 允许在将最佳实践应用于存储库之前,使用高级AI模型进行自定义。
  • 部署(或git添加),提交并推送到您的存储库的远程端。

内容

快速入门

本指南提供了快速开始我们项目的简单方法。请参阅我们的文档,以获取更全面的概述。

要求

  • Python 3.7+
  • Git
  • .env文件,用于正确配置Azure和OpenAI API的环境
    # .env for Azure
    AZURE_TENANT_ID=<Your-Azure-Tenant-ID>
    AZURE_CLIENT_ID=<Your-Azure-Client-ID>
    AZURE_CLIENT_SECRET=<Your-Azure-Client-Secret>
    API_ENDPOINT=<Your-Azure-OpenAI-API-Endpoint>
    API_VERSION=<Azure-OpenAI-API-Version>
    APIM_SUBSCRIPTION_KEY=<Your-Azure-Subscription-Key>
    
    # .env for OpenAI
    OPENAI_API_KEY=<Your-OpenAI-API-Key>
    

设置说明

由于SLIM CLI是用Python编写的,因此您需要Python 3.7或更高版本。通常,您会想要创建一个虚拟环境,以便将SLIM的依赖项与其他使用Python的应用程序隔离开。使用pip在该环境中安装

pip install slim-cli

这将从Python包索引安装最新的SLIM CLI及其依赖项。新的控制台脚本slim现在可供使用。通过运行以下命令进行确认

slim --version
slim --help

要升级

pip install --upgrade slim-cli

或选择特定版本,例如X.Y.Z

pip install slim-cli==X.Y.Z

运行说明

本节提供了与SLIM CLI交互的详细命令。每个命令都包含各种选项,您可以根据需要指定这些选项以调整工具的行为。

  1. 列出所有可用的最佳实践

    • 此命令列出从SLIM注册表中获取的所有最佳实践。
    slim list
    
  2. 将最佳实践应用于存储库

    • 此命令将指定的最佳实践应用于一个或多个存储库。它支持同时跨多个存储库应用多个实践,并提供AI自定义选项。
    • --best-practice-ids:要应用的最佳实践ID列表。
    • --repo-urls:要应用最佳实践的存储库URL列表;如果指定了--repo-dir,则不使用。
    • --repo-dir:应用最佳实践存储库的本地目录路径。
    • --clone-to-dir:如果本地不存在,则将存储库克隆到的路径。与--repo-urls兼容。
    • --use-ai:启用AI功能,根据项目的特定需求自定义最佳实践的应用。将模型提供商和模型名称作为参数指定(例如,azure/gpt-4o)。
    slim apply --best-practice-ids SLIM-123 SLIM-456 --repo-urls https://github.com/your-username/your-repo1 https://github.com/your-username/your-repo2 
    
    • 使用AI自定义应用最佳实践
    # Apply a specific best practice using AI customization
    slim apply --best-practice-ids SLIM-123 --repo-urls https://github.com/your_org/your_repo.git --use-ai <model provider>/<model name>
    

    示例用法

    # Apply and deploy a best practice using Azure's GPT-4o model
    slim apply --best-practice-ids SLIM-3.1 --repo-urls https://github.com/riverma/terraformly/ --use-ai azure/gpt-4o
    
    # Apply and deploy a best practice using Ollama's LLaMA 3.1 model
    slim apply --best-practice-ids SLIM-3.1 --repo-urls https://github.com/riverma/terraformly/ --use-ai ollama/llama3.1:405b
    
  3. 部署最佳实践

    • 在应用最佳实践后,您可能希望将它们部署(提交并推送)到远程存储库。
    • --best-practice-ids:已应用并准备好部署的最佳实践ID列表。
    • --repo-dir:将更改提交和推送的存储库的本地目录。
    • --remote-name:指定要推送更改的git配置中的远程名称。
    • --commit-message:描述更改的提交信息。
    slim deploy --best-practice-ids SLIM-123 SLIM-456 --repo-dir /path/to/repo --remote-name origin --commit-message "Apply SLIM best practices"
    
  4. 应用并部署最佳实践

    • 将最佳实践的应用和部署合并为一步。
    • --best-practice-ids:要应用和部署的最佳实践ID列表。
    • --repo-urls:如果尚未克隆,则用于克隆的存储库URL列表;如果指定了--repo-dir,则不使用。
    • --repo-dir:指定应用最佳实践和提交更改的存储库目录。
    • --remote-name:指定要推送更改的远程。格式应该是类似于GitHub的URL基础。例如 https://github.com/my_github_user
    • --commit-message:描述更改的提交信息。
    • --use-ai:如果指定,则在应用之前启用AI定制最佳实践。默认为False。
    slim apply-deploy --best-practice-ids SLIM-123 --repo-urls https://github.com/your-username/your-repo1 https://github.com/your-username/your-repo2 --remote-name origin --commit-message "Integrated SLIM best practice with AI customization"
    

    示例输出

    AI features disabled
    Applied best practice SLIM-123 and committed to branch slim-123
    Pushed changes to remote origin on branch slim-123
    

每个命令可以根据需要使用额外的标志进行修改,以适应更具体的任务或环境。

变更日志

有关我们的变更历史,请参阅CHANGELOG.md

有关我们的关键版本发布,请参阅发布页面

常见问题(FAQ)

关于我们的项目有任何疑问?请参阅我们的:常见问题解答

贡献

有兴趣为我们的项目做出贡献?请参阅我们的:CONTRIBUTING.md

有关如何与我们的团队互动的指南,请参阅我们位于CODE_OF_CONDUCT.md的行为准则

有关我们的治理方法,包括决策过程和我们的各种角色,请参阅我们位于GOVERNANCE.md的治理模型

本地开发

对于SLIM CLI的本地开发,请克隆GitHub仓库,创建虚拟环境,然后将包以可编辑模式安装到其中

git clone --quiet https://github.com/NASA-AMMOS/slim-cli.git
cd slim-cli
python3 -m venv .venv
source .venv/bin/activate
pip install --editable .

现在slim控制台脚本以可编辑模式准备就绪;您对src目录下源文件的更改在运行时将立即反映出来。

运行测试

我们使用pytest进行测试。测试文件位于tests子目录中。要运行测试,请确保您位于项目的根目录(其中包含pyproject.tomlsetup.py)并且已安装pytest。您可以通过pip安装pytest

pip install pytest

要执行所有测试,只需运行

pytest

如果您想运行特定的测试文件,您可以指定测试文件的路径

pytest tests/jpl/slim/test_cli.py

这将运行指定文件中的所有测试。您还可以使用pytest选项,例如-v用于详细输出或-s以在输出中查看打印语句

pytest -v -s

发布新版本

要将SLIM CLI的新版本发布到Python包索引,通常您会更新VERSION.txt文件;然后执行

pip install build wheel twine
python3 -m build .
twine upload dist/*

(注意:这最终可以通过GitHub Actions自动化。)

许可

请参阅我们的:LICENSE

支持

主要联系方式是:@riverma@yunks128

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

slim_cli-0.0.4.tar.gz (36.7 kB 查看散列值)

构建分发

slim_cli-0.0.4-py3-none-any.whl (24.1 kB 查看散列值)

Python 3

支持者

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF赞助商 PingdomPingdom 监控 SentrySentry 错误日志 StatusPageStatusPage 状态页面