GitLab - 通过跟踪代码存储库中的特定文件来自动管理存储库 Wiki 页面可能吗?

问题描述 投票:0回答:2

我们的 GitLab 实例是免费层,这意味着我们无法访问组模板等。所以我决定创建一个存储库,其中包含

  • 有关创建/修改模板过程的文档
  • 提供通用构造的分支,所有模板都需要从中派生
  • X 个分支,每个分支代表一个项目模板,开发人员可以简单地克隆并开始做自己的事情

就 git 结构而言,我目前拥有:

.
|
+ -- master
|
+ -- template_generic
|
+ -- template_1
|
+ -- template_2
.
.
.
+ -- template_N

哪里

  • master
    包含
    README
    文件,其中描述了与存储库相关的所有流程
  • template_generic
    包含两个文件,即
    template.md
    LICENSE
    ,第一个文件提供通用文档描述(带有占位符,例如titledescriptionusagechangelogexamples等)。 ) 和后者 - 许可信息
  • template_X
    包含适合其描述的项目的构建块(代码片段、环境设置等)。通常源自
    template_generic
    ,但也可以源自多个其他
    template_X
    分支(如果这些是更大模板设置的要求)。

示例:

如果我想使用 UI 文件编写 PySide2 项目,我将以

template_pyside2_with_ui_file
作为我的起点并从那里开始开发。

如果我想使用 CMake 编写 OpenCV C++ 应用程序,我将以

template_opencv_c++_with_cmake
作为我的起点并从那里开始开发。


由于我们在记录内容(一致性、跟踪更改等)时遇到问题,我试图以一种更温和的方式“强制”这一点,即向人们提供描述模板在

template.md
文件中执行的操作的文档框架,并且只需要遵循它即可。

GitLab 提供项目 wiki,这是收集信息的非常好的方式,而且最重要的是通过它进行搜索。我要求每个模板都需要有一个 Wiki 页面条目。这就是

template.md
的用途(至少我希望如此)。

我的想法如下:

  • 每当开发人员想要创建新模板时,他们需要分叉主存储库,创建自己的
    template_X
    分支(源自
    template_generic
    )并创建标记为
    new template
    的合并请求。成功合并后(成功定义为请求获得批准、合并并关闭),Wiki 存储库中将创建一个具有相同名称
    template_X
    的新分支,并且仅包含
    template.md
    文件。该分支将在 Wiki 中创建一个新页面,显示该文件的内容
  • 每当开发人员想要修改现有模板时,他们需要分叉主存储库,修改
    template_X
    分支并创建标记为
    change template
    的合并请求。合并成功后,Wiki 存储库中的相应分支将被修改,页面将显示
    template.md
    的更新内容。
  • 维基的
  • 有限的上游推送意味着没有人能够推送到存储库,并且对其的唯一更新将直接来自代码存储库中的更改。因此,wiki 存储库可以(在某种程度上)被限定为代码存储库的部分镜像存储库,并且分支受到保护。这将确保两个存储库之间不存在差异,否则如果人们可以在两个存储库中编辑内容,则可能会发生这种情况。如果有人想要更改 wiki 页面,他们需要 fork、修改
    template.md
    并向代码存储库提交合并请求。

如果我们采用我之前提到的 git 结构,我们将会有

(code repo)                  (wiki repo)
     .                           .
     |                           |
     + -- master                 + -- master
     |                           |
     + -- template_generic       + -- template_1
     |                           |
     + -- template_1             + -- template_2
     |                           .
     + -- template_2             .     
     .                           .
     .                           + -- template_N
     .
     + -- template_N
 

我的问题是这是否可能,如果是,如何实现它(同样 - 我们有 GitLab 的免费层)?我是 GitLab 菜鸟。

git gitlab documentation wiki gitlab-api
2个回答
0
投票

gitlab wiki 仅显示主分支中的内容,但您可以通过 git 子树控制您的文档正如我在此链接中回答的那样


0
投票

GitLab 16.10(2024 年 3 月)添加了一项可以帮助您解决问题的功能:
(是的,包括免费套餐)

维基模板

此版本的 GitLab 向 Wiki 引入了全新模板。现在,您可以创建模板来简化新页面的创建或现有页面的修改。模板是存储在 wiki 存储库的 templates 目录中的 wiki 页面。

通过此增强功能,您可以使 Wiki 页面布局更加一致,更快地创建或重组页面,并确保信息在您的知识库中清晰、连贯地呈现。

请参阅文档问题

© www.soinside.com 2019 - 2024. All rights reserved.