premekkoch / github-service
Nette 框架服务,用于从 GitHub 获取文件最后修改日期
0.2.0
2020-03-10 07:56 UTC
Requires
- php: >=7.1
- nette/application: ^3.0
- nette/caching: ^3.0
README
如果您想找到在 GitHub 上您的仓库文件的最后修改日期,请使用此服务。出于性能原因,服务使用缓存。
安装
composer require premekkoch/github-service
配置
1. 在 config.neon 的 parameters 部分添加 "Github" 部分
parameters:
GitHub:
user: GITHUB_USER
repo: REPOSITORY_NAME
subdir: REPOSITORY_SUBDIRECTORY
client_id: CLIENT_ID
client_secret: CLIENT_SECRET
subdir 项可以留空 - 如果您只与一个仓库目录一起工作,请使用它。
2. 在 config.neon 中注册服务
services:
githubService: PremekKoch\GitHub\GitHubService(%GitHub.user%, %GitHub.repo%, %GitHub.subdir%, %GitHub.client_id%, %GitHub.client_secret%)
如何使用
1. 简单使用
将服务注入到演示者中
/** @var PremekKoch\GitHub\GitHubService @inject */
public $githubService;
然后调用服务方法
:
$file = 'test.md';
$this->githubService->getFileLastCommit($file, TRUE);
:
通过设置第二个参数 "useCache",您可以决定是获取缓存数据还是实时数据。如果此参数设置为 FALSE,则会调用 GitHub API 并自动刷新此文件的缓存。
2. 缓存刷新
只需调用
$this->githubService->refreshGithubCache();
即可刷新所有文件的缓存。或者,您可以这样做来仅刷新 .md 文件缓存
$tree = $this->gitHubService->getFilesTree();
foreach ($tree as $file) {
if (strpos($file->path, '.md')) {
$this->gitHubService->getFileLastCommit($file->path, FALSE);
}