sensiolabs / insight
SymfonyInsight SDK
Requires
- php: >=7.2
- ext-json: *
- doctrine/annotations: ^1.14|^2.0
- jms/serializer: ^3.29
- psr/log: ^1.0
- symfony/console: ^5.4|^6.4|^7.0
- symfony/expression-language: ^5.4|^6.4|^7.0
- symfony/http-client: ^5.4|^6.4|^7.0
Requires (Dev)
- monolog/monolog: ^1.4
- symfony/phpunit-bridge: ^5.4|^6.4|^7.0
- symfony/var-dumper: ^5.4|^6.4|^7.0
Suggests
- monolog/monolog: Will add some log capability to this library
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.
-
在您的 账户页面 上检索您的
SymfonyInsight API 令牌
、用户 UUID
和项目 UUID
-
安装 Jenkins
PMD 插件
:如何安装 Jenkins 插件 -
可选地,您也可以安装
EnvInject 插件
-
编辑您的项目配置
-
如果您已安装 EnvInject 插件,请启用
设置环境变量
然后添加并修改以下行以变量名称INSIGHT_API_TOKEN="Your API Token" INSIGHT_USER_UUID="Your user UUID" INSIGHT_PROJECT_UUID="Your project UUID"
-
添加一个
执行 shell
构建步骤 -
在新 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
-
启用
发布 PMD 分析结果
使用insight-pmd.xml
作为 PMD 结果文件名 -
可选地,您可以将
insight-pmd.xml
文件添加到存档的工件中 -
保存并构建!
许可证
此库根据 MIT 许可证授权。