From 03e6d20ece5d9a13bb4552859dac64ec8c473202 Mon Sep 17 00:00:00 2001 From: "huanyang@alauda.io" Date: Wed, 5 Nov 2025 11:30:20 +0800 Subject: [PATCH 1/2] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0=20TEMPLATE.md=20?= =?UTF-8?q?=E6=96=87=E6=A1=A3=EF=BC=8C=E6=B7=BB=E5=8A=A0=20ProjectPath=20?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在模板文档中添加新增的 ProjectPath 字段的说明和使用示例。 变更内容: - 更新数据结构说明,说明 Path 和 ProjectPath 的区别 - 更新模板示例,展示如何使用 ProjectPath 字段 --- docs/TEMPLATE.md | 8 ++++++-- examples/template-example.yaml | 2 ++ internal/processor/processor.go | 2 ++ pkg/types/types.go | 3 ++- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/docs/TEMPLATE.md b/docs/TEMPLATE.md index f59183a..60d8a45 100644 --- a/docs/TEMPLATE.md +++ b/docs/TEMPLATE.md @@ -50,14 +50,16 @@ GitLab CLI 支持使用自定义模板来格式化输出结果,让你可以按 │ ├── .Visibility // 可见性 │ └── .Projects // 组下的项目数组 │ ├── .Name // 项目名 - │ ├── .Path // 项目路径 + │ ├── .Path // 完整路径,如 group/project + │ ├── .ProjectPath // 项目本身的路径,不含 group │ ├── .ProjectID // 项目 ID │ ├── .Description // 描述 │ ├── .Visibility // 可见性 │ └── .WebURL // Web URL └── .Projects // 用户级项目数组(不属于任何组) ├── .Name // 项目名 - ├── .Path // 项目路径 + ├── .Path // 完整路径,如 username/project + ├── .ProjectPath // 项目本身的路径,不含 username ├── .ProjectID // 项目 ID ├── .Description // 描述 ├── .Visibility // 可见性 @@ -175,6 +177,8 @@ toolchains: projects: {{- range .Projects }} - name: {{ .Name }} + path: {{ .Path }} # 完整路径,如 group/project + project_path: {{ .ProjectPath }} # 项目本身的路径,不含 group project_id: {{ .ProjectID }} web_url: {{ .WebURL }} {{- end }} diff --git a/examples/template-example.yaml b/examples/template-example.yaml index 930a261..9ba7605 100644 --- a/examples/template-example.yaml +++ b/examples/template-example.yaml @@ -45,6 +45,8 @@ toolchains: projects: {{- range .Projects }} - name: {{ .Name }} + path: {{ .Path }} # 完整路径,如 group/project + project_path: {{ .ProjectPath }} # 项目本身的路径,不含 group {{- end }} {{- end }} {{- end }} diff --git a/internal/processor/processor.go b/internal/processor/processor.go index edb7c8e..da3216e 100644 --- a/internal/processor/processor.go +++ b/internal/processor/processor.go @@ -308,6 +308,7 @@ func (p *ResourceProcessor) createUserProjectsWithOutput(username string, projec projectOutputs = append(projectOutputs, types.ProjectOutput{ Name: projSpec.Name, Path: fullPath, + ProjectPath: actualProjectPath, ProjectID: projectID, Description: projSpec.Description, Visibility: projSpec.Visibility, @@ -379,6 +380,7 @@ func (p *ResourceProcessor) createProjectsWithOutput(username string, groupID in projectOutputs = append(projectOutputs, types.ProjectOutput{ Name: projSpec.Name, Path: fullPath, + ProjectPath: actualProjectPath, ProjectID: projectID, Description: projSpec.Description, Visibility: projSpec.Visibility, diff --git a/pkg/types/types.go b/pkg/types/types.go index 21f5994..bc318a5 100644 --- a/pkg/types/types.go +++ b/pkg/types/types.go @@ -85,7 +85,8 @@ type GroupOutput struct { // ProjectOutput 项目输出结果 type ProjectOutput struct { Name string `yaml:"name"` - Path string `yaml:"path"` + Path string `yaml:"path"` // 完整路径,如 group/project 或 username/project + ProjectPath string `yaml:"project_path"` // 项目本身的路径,不包含 group 或 username ProjectID int `yaml:"project_id"` Description string `yaml:"description"` Visibility string `yaml:"visibility"` From 844d4bf1ea234398df168dd27f7c940fd8b989dc Mon Sep 17 00:00:00 2001 From: "huanyang@alauda.io" Date: Wed, 5 Nov 2025 11:31:08 +0800 Subject: [PATCH 2/2] =?UTF-8?q?docs:=20=E6=B7=BB=E5=8A=A0=20nameMode=20?= =?UTF-8?q?=E5=92=8C=E8=B7=AF=E5=BE=84=E5=AD=97=E6=AE=B5=E7=9A=84=E8=AF=A6?= =?UTF-8?q?=E7=BB=86=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在 TEMPLATE.md 中添加: - Path 与 ProjectPath 字段的区别说明 - nameMode 对路径的影响说明 - 具体示例展示两种模式的效果 --- docs/TEMPLATE.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/docs/TEMPLATE.md b/docs/TEMPLATE.md index 60d8a45..418c8fe 100644 --- a/docs/TEMPLATE.md +++ b/docs/TEMPLATE.md @@ -30,6 +30,23 @@ GitLab CLI 支持使用自定义模板来格式化输出结果,让你可以按 模板使用 Go 的 `text/template` 语法,支持访问以下数据结构: +### 重要说明:Path 与 ProjectPath 字段 + +在输出数据中,项目有两个路径字段: + +- **Path**: 完整路径,包含 group 或 username 前缀 + - 组级项目:`backend-group-20251105112212/demo-20251105112213` + - 用户级项目:`tektoncd-20251105112211/my-personal-project-20251105112216` + +- **ProjectPath**: 项目本身的路径,不包含前缀 + - 组级项目:`demo-20251105112213` + - 用户级项目:`my-personal-project-20251105112216` + +**关于时间戳后缀**: +- 当使用 `nameMode: prefix` 时(默认),路径会自动添加时间戳后缀 +- 当使用 `nameMode: name` 时,路径保持与配置文件中一致,不添加时间戳 +- **注意**:nameMode 只影响路径(Path),不影响项目的显示名称(Name) + ### 可用数据 ```go