buddy-works/buddy-works-php-api

Buddy Works SDK for PHP

1.4.0 2021-08-26 08:05 UTC

README

Minimum PHP Version buddy branch Latest Stable Version GitHub

官方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]);

许可

请参阅许可文件获取更多信息。