mirror of
https://github.com/kubevela/kubevela.git
synced 2026-05-14 13:26:44 +00:00
* Feat: support to manage the integrations by the CLI and the workflow Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Fix: remove the xml Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Fix: add the unit test for the nacos writer Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Feat: add the integration API Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Feat: make the provider commands to be deprecated Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Fix: make the unit test work Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Feat: rename the integration to the config Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Fix: make the unit test cases work Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Feat: refactor the config commands Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Feat: add the distribution status for the config Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Fix: sort the import packages Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Fix: refine the code style Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Fix: refine the code style Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Fix: get the content format before render the content Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Feat: add some examples Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Fix: the command test cases Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Feat: add the definitions of the workflow step Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Fix: add some tests Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Fix: add some tests Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Fix: change the name Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Fix: retry the CI Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Fix: refine some words Signed-off-by: barnettZQG <barnett.zqg@gmail.com> Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
78 lines
2.2 KiB
Go
78 lines
2.2 KiB
Go
/*
|
|
Copyright 2022 The KubeVela Authors.
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
*/
|
|
|
|
package docgen
|
|
|
|
import (
|
|
"bytes"
|
|
"fmt"
|
|
"strings"
|
|
|
|
"github.com/getkin/kin-openapi/openapi3"
|
|
"github.com/olekukonko/tablewriter"
|
|
)
|
|
|
|
// GenerateConsoleDocument generate the document shown on the console.
|
|
func GenerateConsoleDocument(title string, schema *openapi3.Schema) (string, error) {
|
|
var buffer = &bytes.Buffer{}
|
|
var printSubProperties []*openapi3.Schema
|
|
if len(schema.Properties) > 0 {
|
|
var propertiesTable = tablewriter.NewWriter(buffer)
|
|
propertiesTable.SetHeader([]string{"NAME", "TYPE", "DESCRIPTION", "REQUIRED", "OPTIONS", "DEFAULT"})
|
|
for key, subSchema := range schema.Properties {
|
|
name := subSchema.Value.Title
|
|
if title != "" {
|
|
name = fmt.Sprintf("(%s).%s", title, name)
|
|
}
|
|
defaultValue := fmt.Sprintf("%v", subSchema.Value.Default)
|
|
if subSchema.Value.Default == nil {
|
|
defaultValue = ""
|
|
}
|
|
var options = ""
|
|
for _, enum := range subSchema.Value.Enum {
|
|
options += fmt.Sprintf("%v", enum)
|
|
}
|
|
propertiesTable.Append([]string{
|
|
name,
|
|
subSchema.Value.Type,
|
|
subSchema.Value.Description,
|
|
fmt.Sprintf("%t", strings.Contains(strings.Join(schema.Required, "/"), subSchema.Value.Title)),
|
|
options,
|
|
defaultValue,
|
|
})
|
|
if len(subSchema.Value.Properties) > 0 {
|
|
printSubProperties = append(printSubProperties, schema.Properties[key].Value)
|
|
}
|
|
}
|
|
buffer.WriteString(title + "\n")
|
|
propertiesTable.Render()
|
|
}
|
|
|
|
for _, sub := range printSubProperties {
|
|
next := strings.Join([]string{title, sub.Title}, ".")
|
|
if title == "" {
|
|
next = sub.Title
|
|
}
|
|
re, err := GenerateConsoleDocument(next, sub)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
buffer.WriteString(re)
|
|
}
|
|
|
|
return buffer.String(), nil
|
|
}
|