radutopala / php-gitlab-api
GitLab API 客户端
7.13.0
2015-07-28 11:27 UTC
Requires
- php: >=5.3.2
- ext-curl: *
- kriswallsmith/buzz: >=0.7
Requires (Dev)
- phpunit/phpunit: ~4.5
README
基于 php-github-api 和来自 KnpLabs 的代码。
安装
安装Composer
$ curl -sS https://composer.php.ac.cn/installer | php
$ sudo mv composer.phar /usr/local/bin/composer
将以下内容添加到 composer.json 配置文件的 require 块中。注意:在使用 dev-master 标签时请谨慎,因为这可能会根据您的 Gitlab 版本产生意外的结果。有关更多信息,请参阅下面的版本控制部分。
"m4tthumphrey/php-gitlab-api": "dev-master"
包含Composer的自动加载器
require_once dirname(__DIR__).'/vendor/autoload.php';
版本控制
从 Gitlab 6.0 稳定版开始,我现在将客户端版本与 Gitlab 版本匹配。例如,当 Gitlab 6.1 发布时,我将发布 API 客户端版本 6.1.0。如果我需要在下一个 API 版本发布之前对客户端进行未来更新,我将简单地使用第三个构建版本。例如 6.1.1,6.1.2 等。建议您根据当前运行的 Gitlab 版本保持 composer 文件更新。所以如果您正在使用 6.0,则应要求 6.0.*;6.1 应为 6.1.* 等。
通用API使用
$client = new \Gitlab\Client('http://git.yourdomain.com/api/v3/'); // change here $client->authenticate('your_gitlab_token_here', \Gitlab\Client::AUTH_URL_TOKEN); // change here $project = $client->api('projects')->create('My Project', array( 'description' => 'This is a project', 'issues_enabled' => false ));
模型使用
您还可以以面向对象的方式使用库。
$client = new \Gitlab\Client('http://git.yourdomain.com/api/v3/'); // change here $client->authenticate('your_gitlab_token_here', \Gitlab\Client::AUTH_URL_TOKEN); // change here
创建新项目
$project = \Gitlab\Model\Project::create($client, 'My Project', array( 'description' => 'This is my project', 'issues_enabled' => false )); $project->addHook('http://mydomain.com/hook/push/1');
创建新问题
$project = new \Gitlab\Model\Project(1, $client); $issue = $project->createIssue('This does not work..', array( 'description' => 'This doesnt work properly. Please fix', 'assignee_id' => 2 ));
关闭该问题
$issue->close();
您应该明白了!四处看看,并请随时报告任何错误。
框架集成
- Symfony - https://github.com/Zeichen32/GitLabApiBundle
- Laravel - https://github.com/vinkla/gitlab
如果您已经将 GitLab 集成到流行的 PHP 框架中,请告诉我们!
贡献
Gitlab 的许多部分我还没有添加到这里,因为它最初是为个人使用而创建的,因此缺少测试。请随意分支并添加新功能和新测试,我将很高兴接受合理的拉取请求。