1

readmeTest.txt我想通过 Invantive SQL检索文件的提交 ID,如下所示:

select * from repository_files(29, file-path, 'master') 

但要让它工作,我需要一个project-id,file-path和一个ref.

我知道我的project-id(我从select * from projects)和我的refmaster分支),但我不知道在哪里可以找到我想要检索信息的文件的路径。

那么在哪里可以找到file-pathand的值ref呢?

这是我的存储库目录树,我可以在其中看到文件存在:

目录树

目录树

4

1 回答 1

1

您需要加入 GitLab 中的多个实体以获取所需的信息。

表函数中的字段repository_files及其含义:

  • project-id如您所知,可以idprojects实体中找到;
  • ref-name可以在中name找到repositories
  • ref是一个分支、一个标签或一个提交的名称,所以让我们假设你master现在想要。

提供此信息,您需要以下查询来获取项目中的所有存储库文件及其内容(我现在将其缩小到单个项目):

select pjt.name project_name
,      rpe.name repository_name
,      rpf.content file
from   projects pjt
join   repositories(pjt.id) rpe
on     1=1
and    rpe.name like '%.%'
join   repository_files(pjt.id, rpe.name, 'master') rpf
on     1=1
where  pjt.id = 1
于 2016-10-14T11:53:14.110 回答