mborne/remote-git
最新稳定版本:v0.10.0
Composer 安装命令:
composer require mborne/remote-git
包简介
A lightweight PHP client providing a consistent way to find hosted and self-hosted git repositories (github, gitlab,...)
README 文档
README
Description
A lightweight PHP client providing a consistent access to hosted and self-hosted git repositories (github, gitlab, gogs and gitea).
Use cases
Note that a small set of features is prefered here to a rich API integration to allow homogenous access to remote hosting services.
The original development has been realized in mborne/satis-gitlab repository to generate a config file referencing git repositories.
This module is also used by mborne/git-manager to backup and analyse git repositories (for example that following files are present : README.md, LICENSE,...)
Features
- List repositories from multiple GIT hosting services filtering by
- usernames
- organizations/groups
- Get raw files from repositories
- Apply custom filter
- Project contains a given file (
RequiredFileFilter) - Project is a composer project (
ComposerProjectFilter) - Project name doesn't match a given regexp (
IgnoreRegexpFilter)
- Project contains a given file (
Requirements
Supported GIT hosting services
| Type | Description |
|---|---|
| gitlab-v4 | gitlab.com and self hosted gitlab instances |
| github | github.com |
| gogs-v1 | Gogs or Gitea |
Usage
Create a client
// configure client $clientOptions = new ClientOptions(); $clientOptions ->setUrl('https://github.com') ->setToken($token) ; // create client $client = ClientFactory::createClient( $clientOptions, new NullLogger() );
Filter by usernames or orgs/groups
$options = new FindOptions(); // Use '_me_' on github to include private repositories $options->setUsers(array('mborne')); $options->setOrganizations(array('symfony','FriendsOfSymfony')); $projects = $client->find($options);
Filter according to composer.json
$options = new FindOptions(); $options->setUsers(array('mborne')); $filter = new ComposerProjectFilter($client); $filter->setType('library'); $options->setFilter($filter); $projects = $client->find($options);
Compose filters
$options = new FindOptions(); $options->setUsers(array('mborne')); $filterCollection = new FilterCollection(); // filter according to composer.json $composerFilter = new ComposerProjectFilter($client); $composerFilter->setType('library'); $filterCollection->addFilter($composerFilter); // filter according to README.md $filterCollection->addFilter(new RequiredFileFilter( $client, 'README.md' )); $options->setFilter($filterCollection); $projects = $client->find($options);
Dependencies
License
Testing
- Configure access token for github.com and gitlab.com APIs (optional) :
# see https://github.com/settings/tokens export GITHUB_TOKEN=AnyGithubToken # see https://gitlab.com/-/profile/personal_access_tokens export GITLAB_TOKEN=AnyGitlabToken # see https://gitea.com/user/settings/applications export GITEA_TOKEN=AnyGiteaToken
- Install dependencies and run tests :
make test # Alternative : # composer install # vendor/bin/phpunit -c phpunit.xml.dist
Note that an HTML coverage report is generated to output/coverage/index.html
统计信息
- 总下载量: 7.54k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 1
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2018-11-25