buddy-works / buddy-works-php-api
Buddy Works SDK for PHP
Requires
- php: ^8.0
- ext-mbstring: *
- guzzlehttp/guzzle: ~6.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- phpstan/phpstan: ^0.12
- phpunit/phpunit: ^9.5
- rector/rector: ^0.11
This package is auto-updated.
Last update: 2024-09-20 00:03:12 UTC
README
官方PHP客户端库,用于Buddy Build Server with CI。
安装
此库在 packagist
上分发,并使用 composer
。要将它作为依赖项添加,请运行以下命令
composer require buddy-works/buddy-works-php-api
兼容性
OAuth的使用
首先,您需要在您的Buddy ID中添加应用程序。
然后,您将获得用于执行此代码的clientId & clientSecret
$buddy = new Buddy\Buddy([ 'clientId' => 'your-client-id', 'clientSecret' => 'your-client-secret' ]); try { $url = $buddy->getOAuth()->getAuthorizeUrl([ Buddy\BuddyOAuth::SCOPE_MANAGE_EMAILS ], 'state', 'redirectUrl'); } catch(Buddy\Exceptions\BuddySDKException $e) { echo 'Buddy SDK return an error: ' . $e->getMessage(); exit; }
scopes
是字符串数组 - 帮助
state
应该是一个不可预测的随机字符串。它用于防止跨站请求伪造攻击。
redirectUrl
是可选的 更多信息
您应该将用户重定向到创建的URL。在授权后,用户应该返回到您的页面(在应用程序中配置或传递给方法的页面)
查询参数
将为您提供代码 & state。State应与您之前传递的相同。代码在下一步用于交换访问令牌
$buddy = new Buddy\Buddy([ 'clientId' => 'your-client-id', 'clientSecret' => 'your-client-secret' ]); try { $auth = $buddy->getOAuth()->getAccessToken('state'); } catch(Buddy\Exceptions\BuddyResponseException $e) { echo 'Buddy API return an error: ' . $e->getMessage(); exit; } catch(Buddy\Exceptions\BuddySDKException $e) { echo 'Buddy SDK return an error: ' . $e->getMessage(); exit; } var_dump($auth);
State应与getAuthorizeUrl方法中的相同。
直接令牌的使用
您还可以使用API令牌。
此功能仅用于测试目的,并且只为每个用户生成的单个令牌工作。
所有请求都将代表提供令牌的用户调用。
API
有关发送哪个方法、错误代码、速率和限制的详细信息,请参阅Buddy文档
要开始使用API,您应将获得的访问令牌传递给Buddy构造函数。
$buddy = new Buddy\Buddy([ 'accessToken' => 'your access token' ]);
工作空间
获取工作空间
try { $resp = $buddy->getApiWorkspaces()->getWorkspaces([$accessToken]); var_dump($resp); exit; } catch (Buddy\Exceptions\BuddyResponseException $e) { echo $e->getMessage(); exit; } catch (Buddy\Exceptions\BuddySDKException $e) { echo $e->getMessage(); exit; }
获取工作空间
$buddy->getApiWorkspaces()->getWorkspace($domain, [$accessToken]);
Webhooks
获取webhooks
$buddy->getApiWebhooks()->getWebhooks($domain, [$accessToken]);
添加webhook
$buddy->getApiWebhooks()->addWebhook($data, $domain, [$accessToken]);
获取webhook
$buddy->getApiWebhooks()->getWebhook($domain, $webhookId, [$accessToken]);
编辑webhook
$buddy->getApiWebhooks()->editWebhook($data, $domain, $webhookId, [$accessToken]);
删除webhook
$buddy->getApiWebhooks()->deleteWebhook($domain, $webhookId, [$accessToken]);
标签
获取标签
$buddy->getApiTags()->getTags($domain, $projectName, [$accessToken]);
获取标签
$buddy->getApiTags()->getTag($domain, $projectName, $name, [$accessToken]);
SSH密钥
获取密钥
$buddy->getApiSshKeys()->getKeys([$accessToken]);
添加密钥
$buddy->getApiSshKeys()->addKey($data, [$accessToken]);
删除密钥
$buddy->getApiSshKeys()->deleteKey($keyId, [$accessToken]);
获取密钥
$buddy->getApiSshKeys()->getKey($keyId, [$accessToken]);
源代码
获取内容
$buddy->getApiSource()->getContents($domain, $projectName, [$path], [$filters], [$accessToken]);
添加文件
$buddy->getApiSource()->addFile($data, $domain, $projectName, [$accessToken]);
编辑文件
$buddy->getApiSource()->editFile($data, $domain, $projectName, $path, [$accessToken]);
删除文件
$buddy->getApiSource()->deleteFile($data, $domain, $projectName, $path, [$accessToken]);
项目
获取项目
$buddy->getApiProjects()->getProjects($domain, [$filters], [$accessToken]);
添加项目
$buddy->getApiProjects()->addProject($data, $domain, [$accessToken]);
获取项目
$buddy->getApiProjects()->getProject($domain, $projectName, [$accessToken]);
编辑项目
$buddy->getApiProjects()->editProject($data, $domain, $projectName, [$accessToken]);
删除项目
$buddy->getApiProjects()->deleteProject($domain, $projectName, [$accessToken]);
获取项目成员
$buddy->getApiProjects()->getProjectMembers($domain, $projectName, [$filters], [$accessToken]);
添加项目成员
$buddy->getApiProjects()->addProjectMember($domain, $projectName, $userId, $permissionId, [$accessToken]);
获取项目成员
$buddy->getApiProjects()->getProjectMember($domain, $projectName, $userId, [$accessToken]);
编辑项目成员
$buddy->getApiProjects()->editProjectMember($domain, $projectName, $userId, $permissionId, [$accessToken]);
删除项目成员
$buddy->getApiProjects()->deleteProjectMember($domain, $projectName, $userId, [$accessToken]);
个人资料
获取用户
$buddy->getApiProfile()->getAuthenticatedUser([$accessToken]);
编辑用户
$buddy->getApiProfile()->editAuthenticatedUser($data, [$accessToken]);
流水线
获取流水线
$buddy->getApiPipelines()->getPipelines($domain, $projectName, [$filters], [$accessToken]);
添加流水线
$buddy->getApiPipelines()->addPipeline($data, $domain, $projectName, [$accessToken]);
获取流水线
$buddy->getApiPipelines()->getPipeline($domain, $projectName, $pipelineId, [$accessToken]);
编辑流水线
$buddy->getApiPipelines()->editPipeline($data, $domain, $projectName, $pipelineId, [$accessToken]);
删除流水线
$buddy->getApiPipelines()->deletePipeline($domain, $projectName, $pipelineId, [$accessToken]);
获取流水线操作
$buddy->getApiPipelines()->getPipelineActions($domain, $projectName, $pipelineId, [$accessToken]);
添加流水线操作
$buddy->getApiPipelines()->addPipelineAction($data, $domain, $projectName, $pipelineId, [$accessToken]);
获取流水线操作
$buddy->getApiPipelines()->getPipelineAction($domain, $projectName, $pipelineId, $actionId, [$accessToken]);
编辑流水线操作
$buddy->getApiPipelines()->editPipelineAction($data, $domain, $projectName, $pipelineId, $actionId, [$accessToken]);
删除流水线操作
$buddy->getApiPipelines()->deletePipelineAction($domain, $projectName, $pipelineId, $actionId, [$accessToken]);
权限
获取权限
$buddy->getApiPermissions()->getWorkspacePermissions($domain, [$accessToken]);
添加权限
$buddy->getApiPermissions()->addWorkspacePermission($data, $domain, [$accessToken]);
获取权限
$buddy->getApiPermissions()->getWorkspacePermission($domain, $permissionId, [$accessToken]);
编辑权限
$buddy->getApiPermissions()->editWorkspacePermission($data, $domain, $permissionId, [$accessToken]);
删除权限
$buddy->getApiPermissions()->deleteWorkspacePermission($domain, $permissionId, [$accessToken]);
成员
获取成员
$buddy->getApiMembers()->getWorkspaceMembers($domain, [$filters], [$accessToken]);
添加成员
$buddy->getApiMembers()->addWorkspaceMember($domain, $email, [$accessToken]);
获取成员
$buddy->getApiMembers()->getWorkspaceMember($domain, $userId, [$accessToken]);
编辑成员
$buddy->getApiMembers()->editWorkspaceMember($domain, $userId, $isAdmin, [$accessToken]);
删除成员
$buddy->getApiMembers()->deleteWorkspaceMember($domain, $userId, [$accessToken]);
获取成员项目
$buddy->getApiMembers()->getWorkspaceMemberProjects($domain, $userId, [$filters], [$accessToken]);
集成
获取集成
$buddy->getApiIntegrations()->getIntegrations([$accessToken]);
获取集成
$buddy->getApiIntegrations()->getIntegration($integrationId, [$accessToken]);
组
获取组
$buddy->getApiGroups()->getGroups($domain, [$accessToken]);
添加组
$buddy->getApiGroups()->addGroup($data, $domain, [$accessToken]);
获取组
$buddy->getApiGroups()->getGroup($domain, $groupId, [$accessToken]);
编辑组
$buddy->getApiGroups()->editGroup($data, $domain, $groupId, [$accessToken]);
删除组
$buddy->getApiGroups()->deleteGroup($domain, $groupId, [$accessToken]);
获取组成员
$buddy->getApiGroups()->getGroupMembers($domain, $groupId, [$accessToken]);
添加组成员
$buddy->getApiGroups()->addGroupMember($domain, $groupId, $userId, [$accessToken]);
获取组成员
$buddy->getApiGroups()->getGroupMember($domain, $groupId, $userId, [$accessToken]);
删除群组成员
$buddy->getApiGroups()->deleteGroupMember($domain, $groupId, $userId, [$accessToken]);
执行
获取执行
$buddy->getApiExecutions()->getExecutions($domain, $projectName, $pipelineId, [$filters], [$accessToken]);
运行执行
$buddy->getApiExecutions()->runExecution($data, $domain, $projectName, $pipelineId, [$accessToken]);
获取执行
$buddy->getApiExecutions()->getExecution($domain, $projectName, $pipelineId, $executionId, [$accessToken]);
取消执行
$buddy->getApiExecutions()->cancelExecution($domain, $projectName, $pipelineId, $executionId, [$accessToken]);
重试执行
$buddy->getApiExecutions()->retryRelease($domain, $projectName, $pipelineId, $executionId, [$accessToken]);
电子邮件
获取电子邮件
$buddy->getApiEmails()->getAuthenticatedUserEmails([$accessToken]);
添加电子邮件
$buddy->getApiEmails()->addAuthenticatedUserEmail($email, [$accessToken]);
删除电子邮件
$buddy->getApiEmails()->deleteAuthenticatedUserEmail($email, [$accessToken]);
提交
获取提交
$buddy->getApiCommits()->getCommits($domain, $projectName, [$filters], [$accessToken]);
获取提交
$buddy->getApiCommits()->getCommit($domain, $projectName, $revision, [$accessToken]);
比较提交
$buddy->getApiCommits()->getCompare($domain, $projectName, $base, $head, [$filters], [$accessToken]);
分支
获取分支
$buddy->getApiBranches()->getBranches($domain, $projectName, [$accessToken]);
获取分支
$buddy->getApiBranches()->getBranch($domain, $projectName, $name, [$accessToken]);
添加分支
$buddy->getApiBranches()->addBranch($data, $domain, $projectName, [$accessToken]);
删除分支
$buddy->getApiBranches()->deleteBranch($domain, $projectName, $name, [$force], [$accessToken]);
许可
请参阅许可文件获取更多信息。