bitbucket/client

PHP 的 Bitbucket API 2.0 客户端


README

我们提供了一个现代的 Bitbucket API 2.0 PHP 客户端。

Banner

Build Status StyleCI Status Software License Packagist Downloads Latest Version

这个客户端基于 php-github-api,由 KnpLabs 开发。因此,我们现在有 非常相似 的客户端用于

请查看 变更日志发布版本安全策略许可协议行为准则贡献指南

安装

此版本支持 PHP 7.4-8.3。要开始使用,只需使用 Composer 需求此项目。您还需要安装提供 psr/http-client-implementationpsr/http-factory-implementation 的包。

标准安装

$ composer require "bitbucket/client:^4.7" \
  "guzzlehttp/guzzle:^7.8" "http-interop/http-factory-guzzle:^1.2"

框架集成

Laravel

$ composer require "graham-campbell/bitbucket:^10.4"

我们使用 PSR-7PSR-17PSR-18HTTPlug 与任何 HTTP 消息客户端解耦。您可以访问 HTTPlug for library users 获取有关安装 HTTPlug 相关包的更多信息。框架集成 graham-campbell/bitbucketGraham Campbell 提供。

使用方法

主要入口点是Bitbucket\Client类。只需创建该类的一个新实例,进行认证,就可以使用了!截至撰写本文时(2020年6月29日星期二),Bitbucket API 2.0上的每个端点(不包括问题导出和导入以及各种已弃用的端点)都可通过此PHP客户端访问。我们建议查看Bitbucket文档,以及源代码,以全面了解可以使用的内容。

认证

我们有三种方式认证我们的客户端

OAuth 2 Token

最常见的认证方法是使用OAuth 2令牌。您需要通过某种方式在库外部生成此令牌,然后如下提供

$client = new Bitbucket\Client();

$client->authenticate(
    Bitbucket\Client::AUTH_OAUTH_TOKEN,
    'your-token-here'
);

HTTP密码

您可以使用用户名和密码组合进行登录。此方法不推荐在生产环境中使用,但您可能仍然会找到它很有用

$client = new Bitbucket\Client();

$client->authenticate(
    Bitbucket\Client::AUTH_HTTP_PASSWORD,
    'your-username-here',
    'your-password-here'
);

如果您已在您的账户中启用了两步验证,那么您必须使用应用程序密码

JSON Web Token

最后,我们支持使用JSON Web令牌(JWT)进行登录。此方法是Bitbucket的一些API端点(如插件API)所必需的。使用lcobucci/jwt生成您的JWT,然后如下提供

$client = new Bitbucket\Client();

$client->authenticate(
    Bitbucket\Client::AUTH_JWT,
    'your-jwt-here'
);

示例

在以下示例中,$client将是一个已认证的客户端,如上所述。

示例1

可以显示当前登录用户的基本信息

$currentUser = $client->currentUser()->show();

示例2

可以按如下方式获取仓库

$repository = $client->repositories()
    ->workspaces('atlassian')
    ->show('stash-example-plugin');

示例3

我们支持自动分页,您无需做任何事情。以下示例获取一个仓库的所有分支

$paginator = new Bitbucket\ResultPager($client);

$branchesClient = $client->repositories()
    ->workspaces('atlassianlabs')
    ->refs('stash-log-parser'])
    ->branches();

$branches = $paginator->fetchAll($branchesClient, 'list');

贡献

我们非常欢迎收到问题报告和审查并接受拉取请求,我们将遵守我们的行为准则贡献指南

$ make install
$ make test

安全性

如果您在此软件包中发现安全漏洞,请发送电子邮件至[email protected]。所有安全漏洞都将得到及时解决。您可以在此查看我们的完整安全策略。

许可

Bitbucket PHP API客户端遵循MIT许可(MIT)

对于企业

作为Tidelift订阅的一部分提供

bitbucket/client的维护者以及成千上万的其他包维护者正在与Tidelift合作,为构建应用程序时使用的开源依赖项提供商业支持和维护。节省时间,降低风险,提高代码健康性,同时支付您确切使用的依赖项的维护者。了解更多信息:点击这里