sensiolabs/insight

SymfonyInsight SDK

资助包维护!
Tidelift

v1.11.0 2024-06-25 07:23 UTC

README

关于

这是 SymfonyInsight API 的官方 SDK。

安装

要安装 SDK,请运行以下命令,您将获得最新版本

composer require sensiolabs/insight

命令行工具

使用 SymfonyInsight API 最简单的方法是通过内置的命令行工具。

存在命令行工具的 phar 版本,以避免安装此项目。下载它,然后像命令行工具一样使用它

$ curl -o insight.phar -s https://get.insight.symfony.com/insight.phar
# or
$ wget https://get.insight.symfony.com/insight.phar

# Then
$ php insight.phar

列出您的账户中的所有项目

$ php insight.phar projects

第一次运行时,您将需要输入您的 SymfonyInsight API 密钥和用户 UUID(可在网站上的“账户”部分找到)。

然后这些信息将被存储在本地,但仍然可以通过 --api-token--user-uuid 选项进行覆盖。

要运行分析

$ php insight.phar analyze UUID

其中 UUID 是您要分析的项目 UUID(UUID 由 projects 命令列出)。

要导出分析报告

$ php insight.phar analysis UUID --format="xml" # or --format="json" or --format="pmd"

配置

use SensioLabs\Insight\Sdk\Api;

$api = new Api(array(
    'api_token' => 'your api token',
    'user_uuid' => 'your user uuid',
));

使用方法

列出所有项目

$api->getProjects();
$api->getProjects(2); // For the second page

获取一个项目

$project = $api->getProject('project uuid');

更新一个项目

$api->updateProject($project);

注意:如果出现问题,请参阅 错误管理 部分

发布一个项目

use SensioLabs\Insight\Sdk\Model\Project;

$project = new Project();
$project
    ->setName('Foo')
    ->setDescription('Foo')
    ->setType(TYPE_WEBSITE::TYPE_WEBSITE)
;

$api->createProject($project)

注意:如果出现问题,请参阅 错误管理 部分

运行分析

// on the default branch
$api->analyze('project uuid', 'master');

// for a specific branch or reference
$api->analyze('project uuid', '1.0');

获取所有分析

$api->getAnalyses('project uuid');

// for a specific branch
$api->getAnalyses('project uuid', 'branch name');

获取一个分析

$api->getAnalysis('project uuid', 'analysis id');

获取状态分析

$api->getAnalysisStatus('project uuid', 'analysis id');

错误管理

如果出现问题,将抛出 SensioLabs\Insight\Sdk\Exception\ExceptionInterface

  • ApiClientException 如果您犯了错误。此异常包含由 guzzle 抛出的上一个异常。您可以轻松检查它是否是
    • 403:在这种情况下,检查您的凭据
    • 404:在这种情况下,检查您的请求
    • 400:在这种情况下,检查发送的数据。在这种情况下,异常将包含一个 SensioLabs\Insight\Sdk\Model\Error 对象,其中将包含所有表单错误。
  • ApiServerException 如果 API 出了问题。

Jenkins/Hudson 集成

感谢 Jenkins PMD 插件 和 SymfonyInsight SDK PMD 输出,您可以轻松地将 SymfonyInsight 报告嵌入到构建工作流程中,按照以下步骤进行

假设您已经将项目部署到 Jenkins 并安装了 SymfonyInsight SDK.

  1. 在您的 账户页面 上检索您的 SymfonyInsight API 令牌用户 UUID项目 UUID

  2. 安装 Jenkins PMD 插件:如何安装 Jenkins 插件

  3. 可选地,您也可以安装 EnvInject 插件

  4. 编辑您的项目配置

  5. 如果您已安装 EnvInject 插件,请启用 设置环境变量 然后添加并修改以下行以变量名称

     INSIGHT_API_TOKEN="Your API Token"
     INSIGHT_USER_UUID="Your user UUID"
     INSIGHT_PROJECT_UUID="Your project UUID"
    
  6. 添加一个 执行 shell 构建步骤

  7. 在新 shell 步骤中添加并修改以下命令(如果您没有 EnvInject 插件,请将变量替换为纯文本值)

     /path/to/insight-sdk/bin/insight analysis \
     --user-uuid $INSIGHT_USER_UUID \
     --api-token $INSIGHT_API_TOKEN \
     $INSIGHT_PROJECT_UUID --format=pmd > insight-pmd.xml
    
  8. 启用 发布 PMD 分析结果 使用 insight-pmd.xml 作为 PMD 结果文件名

  9. 可选地,您可以将 insight-pmd.xml 文件添加到存档的工件中

  10. 保存并构建!

许可证

此库根据 MIT 许可证授权。