premekkoch/github-service

Nette 框架服务,用于从 GitHub 获取文件最后修改日期

0.2.0 2020-03-10 07:56 UTC

This package is auto-updated.

Last update: 2024-09-10 17:28:21 UTC


README

如果您想找到在 GitHub 上您的仓库文件的最后修改日期,请使用此服务。出于性能原因,服务使用缓存。

安装

composer require premekkoch/github-service

配置

1. 在 config.neonparameters 部分添加 "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);
  }