testmonitor / devops-client
TestMonitor Azure DevOps 客户端。
v2.2.0
2024-07-01 13:38 UTC
Requires
- php: ^8.1
- ext-json: *
- guzzlehttp/guzzle: ^7.0
- thenetworg/oauth2-azure: ^2.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.1
- mockery/mockery: ~1.0
- phpunit/phpunit: ^10.0
- scrutinizer/ocular: ^1.9
- squizlabs/php_codesniffer: ^3.7
README
本软件包提供了一个非常基本、方便和统一的包装,用于Microsoft Azure DevOps。
目录
安装
要安装客户端,您需要使用 composer 需求该软件包
$ composer require testmonitor/devops-client
使用 composer 的自动加载
require __DIR__.'/../vendor/autoload.php';
现在您已经设置好了!
使用
此客户端仅支持 OAuth 认证。您需要 Microsoft Entra ID OAuth 应用程序才能继续。如果您还没有这样做,请阅读有关如何在 Azure DevOps 认证文档 中创建应用程序并设置正确权限的说明。
当您的 OAuth 应用程序运行时,请从 OAuth 授权开始
$oauth = [ 'clientId' => '12345', 'clientSecret' => 'abcdef', 'appId' => '12345', 'redirectUrl' => 'https://redirect.myapp.com/', ]; $devops = new \TestMonitor\DevOps\Client($oauth); header('Location: ' . $devops->authorizationUrl()); exit();
这会将用户重定向到要求确认您的应用程序访问 Azure DevOps 的页面。确保您的 redirectUrl 指向您的应用程序。此 URL 应指向以下代码
$oauth = [ 'clientId' => '12345', 'clientSecret' => 'abcdef', 'appId' => '12345', 'redirectUrl' => 'https://redirect.myapp.com/', ]; $devops = new \TestMonitor\DevOps\Client($oauth); $token = $devops->fetchToken($_REQUEST['code']);
如果一切顺利,您应该有一个访问令牌(通过 Token 对象可用)。它将有效期为 一小时。之后,您将不得不刷新令牌以重新获得访问权限
$oauth = ['clientId' => '12345', 'clientSecret' => 'abcdef', 'appId' => '12345', 'redirectUrl' => 'https://redirect.myapp.com/']; $token = new \TestMonitor\DevOps\AccessToken('eyJ0...', '0/34ccc...', 1574601877); // the token you got last time $organization = 'MyOrg'; $devops = new \TestMonitor\DevOps\Client($oauth, $organization, $token); if ($token->expired()) { $newToken = $devops->refreshToken(); }
新的令牌将再次有效一小时。
示例
获取 Azure DevOps 账户列表
$accounts = $devops->accounts();
或者创建一个工作项,例如(使用工作项类型 'Bug' 和 ID 为 12345 的示例项目)
$workItem = $devops->createWorkItem(new \TestMonitor\DevOps\Resources\WorkItem([ 'title' => 'Summary of the item', 'description' => 'Some description', 'workItemType' => 'Bug', 'stepsToReproduce' => 'Repro steps', ]), '12345');
测试
本软件包包含集成测试。您可以使用 PHPUnit 运行它们。
$ vendor/bin/phpunit
变更日志
有关更多信息,请参阅 变更日志。
贡献
有关贡献详情,请参阅 贡献指南。
鸣谢
- Thijs Kok - 首席开发者 - ThijsKok
- Stephan Grootveld - 开发者 - Stefanius
- Frank Keulen - 开发者 - FrankIsGek
- Muriel Nooder - 开发者 - ThaNoodle
许可协议
MIT 许可协议(MIT)。有关更多信息,请参阅 许可协议。