Skip to content

Introduce variable validation output into markdown table output. #675

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 17 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 25 additions & 25 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -113,28 +113,28 @@ jobs:
push: true
tags: quay.io/${{ github.event.repository.name }}/terraform-docs:edge

publish:
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, '[ci skip]')"
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Prepare docs
if: contains(github.ref, 'refs/heads/master')
run: ./scripts/docs/prepare-site.sh

- name: Publish to website
uses: drud/action-cross-commit@master
if: contains(github.ref, 'refs/heads/master')
with:
source-folder: site/content
destination-repository: https://${{ secrets.COMMITTER_USERNAME }}:${{ secrets.COMMITTER_TOKEN }}@github.com/terraform-docs/website
destination-folder: content
destination-branch: main
git-user: terraform-docs-bot
git-user-email: bot@terraform-docs.io
git-commit-message: |-
Update website content

from: https://github.com/terraform-docs/terraform-docs/commit/${{ github.sha }}
# publish:
# runs-on: ubuntu-latest
# if: "!contains(github.event.head_commit.message, '[ci skip]')"
# steps:
# - name: Checkout
# uses: actions/checkout@v4
#
# - name: Prepare docs
# if: contains(github.ref, 'refs/heads/master')
# run: ./scripts/docs/prepare-site.sh
#
# - name: Publish to website
# uses: drud/action-cross-commit@master
# if: contains(github.ref, 'refs/heads/master')
# with:
# source-folder: site/content
# destination-repository: https://${{ secrets.COMMITTER_USERNAME }}:${{ secrets.COMMITTER_TOKEN }}@github.com/terraform-docs/website
# destination-folder: content
# destination-branch: main
# git-user: terraform-docs-bot
# git-user-email: bot@terraform-docs.io
# git-commit-message: |-
# Update website content
#
# from: https://github.com/terraform-docs/terraform-docs/commit/${{ github.sha }}
1 change: 1 addition & 0 deletions cmd/asciidoc/asciidoc.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ func NewCommand(runtime *cli.Runtime, config *print.Config) *cobra.Command {
cmd.PersistentFlags().BoolVar(&config.Settings.Required, "required", true, "show Required column or section")
cmd.PersistentFlags().BoolVar(&config.Settings.Sensitive, "sensitive", true, "show Sensitive column or section")
cmd.PersistentFlags().BoolVar(&config.Settings.Type, "type", true, "show Type column or section")
cmd.PersistentFlags().BoolVar(&config.Settings.Validation, "validation", true, "show Validation column or section")

// subcommands
cmd.AddCommand(document.NewCommand(runtime, config))
Expand Down
1 change: 1 addition & 0 deletions cmd/markdown/markdown.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ func NewCommand(runtime *cli.Runtime, config *print.Config) *cobra.Command {
cmd.PersistentFlags().BoolVar(&config.Settings.Required, "required", true, "show Required column or section")
cmd.PersistentFlags().BoolVar(&config.Settings.Sensitive, "sensitive", true, "show Sensitive column or section")
cmd.PersistentFlags().BoolVar(&config.Settings.Type, "type", true, "show Type column or section")
cmd.PersistentFlags().BoolVar(&config.Settings.Validation, "validation", true, "show Validation column or section")

// subcommands
cmd.AddCommand(document.NewCommand(runtime, config))
Expand Down
1 change: 1 addition & 0 deletions cmd/tfvars/hcl/hcl.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,6 @@ func NewCommand(runtime *cli.Runtime, config *print.Config) *cobra.Command {
RunE: runtime.RunEFunc,
}
cmd.PersistentFlags().BoolVar(&config.Settings.Description, "description", false, "show Descriptions on variables")
cmd.PersistentFlags().BoolVar(&config.Settings.Description, "validation", false, "show Validations on variables")
return cmd
}
32 changes: 32 additions & 0 deletions docs/reference/asciidoc-document.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ terraform-docs asciidoc document [PATH] [flags]
--sort sort items (default true)
--sort-by string sort items by criteria [name, required, type] (default "name")
--type show Type column or section (default true)
--validation show Validation column or section (default true)
```

## Example
Expand Down Expand Up @@ -210,6 +211,17 @@ generates the following output:

Type: `any`

=== [[input_variable_with_two_validations]] <<input_variable_with_two_validations,variable_with_two_validations>>

Description: This variable has two validations

Type: `string`

Validations:

- var.variable_with_two_validations must be 10 characters long.
- var.variable_with_two_validations must start with 'magic'.

== Optional Inputs

The following input variables are optional (have default values):
Expand Down Expand Up @@ -457,6 +469,26 @@ generates the following output:

Default: `null`

=== [[input_variable_with_no_validation]] <<input_variable_with_no_validation,variable_with_no_validation>>

Description: This variable has no validation

Type: `string`

Default: `""`

=== [[input_variable_with_one_validation]] <<input_variable_with_one_validation,variable_with_one_validation>>

Description: This variable has one validation

Type: `string`

Validations:

- var.variable_with_one_validation must be empty or 10 characters long.

Default: `""`

=== [[input_with-url]] <<input_with-url,with-url>>

Description: The description contains url. https://www.domain.com/foo/bar_baz.html
Expand Down
55 changes: 54 additions & 1 deletion docs/reference/asciidoc-table.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ terraform-docs asciidoc table [PATH] [flags]
--sort sort items (default true)
--sort-by string sort items by criteria [name, required, type] (default "name")
--type show Type column or section (default true)
--validation show Validation column or section (default true)
```

## Example
Expand Down Expand Up @@ -150,28 +151,32 @@ generates the following output:

[cols="a,a,a,a,a",options="header,autowidth"]
|===
|Name |Description |Type |Default |Required
|Name |Description |Type |Validation |Default |Required
|[[input_bool-1]] <<input_bool-1,bool-1>>
|It's bool number one.
|`bool`
|None
|`true`
|no

|[[input_bool-2]] <<input_bool-2,bool-2>>
|It's bool number two.
|`bool`
|None
|`false`
|no

|[[input_bool-3]] <<input_bool-3,bool-3>>
|n/a
|`bool`
|None
|`true`
|no

|[[input_bool_default_false]] <<input_bool_default_false,bool_default_false>>
|n/a
|`bool`
|None
|`false`
|no

Expand All @@ -186,6 +191,7 @@ generates the following output:
----

|`list`
|None
|

[source]
Expand All @@ -200,18 +206,21 @@ generates the following output:
|[[input_input-with-pipe]] <<input_input-with-pipe,input-with-pipe>>
|It includes v1 \| v2 \| v3
|`string`
|None
|`"v1"`
|no

|[[input_input_with_underscores]] <<input_input_with_underscores,input_with_underscores>>
|A variable with underscores.
|`any`
|None
|n/a
|yes

|[[input_list-1]] <<input_list-1,list-1>>
|It's list number one.
|`list`
|None
|

[source]
Expand All @@ -228,18 +237,21 @@ generates the following output:
|[[input_list-2]] <<input_list-2,list-2>>
|It's list number two.
|`list`
|None
|n/a
|yes

|[[input_list-3]] <<input_list-3,list-3>>
|n/a
|`list`
|None
|`[]`
|no

|[[input_list_default_empty]] <<input_list_default_empty,list_default_empty>>
|n/a
|`list(string)`
|None
|`[]`
|no

Expand All @@ -261,6 +273,7 @@ generates the following output:
})
----

|None
|

[source]
Expand Down Expand Up @@ -288,6 +301,7 @@ generates the following output:
|[[input_map-1]] <<input_map-1,map-1>>
|It's map number one.
|`map`
|None
|

[source]
Expand All @@ -304,108 +318,147 @@ generates the following output:
|[[input_map-2]] <<input_map-2,map-2>>
|It's map number two.
|`map`
|None
|n/a
|yes

|[[input_map-3]] <<input_map-3,map-3>>
|n/a
|`map`
|None
|`{}`
|no

|[[input_no-escape-default-value]] <<input_no-escape-default-value,no-escape-default-value>>
|The description contains `something_with_underscore`. Defaults to 'VALUE_WITH_UNDERSCORE'.
|`string`
|None
|`"VALUE_WITH_UNDERSCORE"`
|no

|[[input_number-1]] <<input_number-1,number-1>>
|It's number number one.
|`number`
|None
|`42`
|no

|[[input_number-2]] <<input_number-2,number-2>>
|It's number number two.
|`number`
|None
|n/a
|yes

|[[input_number-3]] <<input_number-3,number-3>>
|n/a
|`number`
|None
|`"19"`
|no

|[[input_number-4]] <<input_number-4,number-4>>
|n/a
|`number`
|None
|`15.75`
|no

|[[input_number_default_zero]] <<input_number_default_zero,number_default_zero>>
|n/a
|`number`
|None
|`0`
|no

|[[input_object_default_empty]] <<input_object_default_empty,object_default_empty>>
|n/a
|`object({})`
|None
|`{}`
|no

|[[input_string-1]] <<input_string-1,string-1>>
|It's string number one.
|`string`
|None
|`"bar"`
|no

|[[input_string-2]] <<input_string-2,string-2>>
|It's string number two.
|`string`
|None
|n/a
|yes

|[[input_string-3]] <<input_string-3,string-3>>
|n/a
|`string`
|None
|`""`
|no

|[[input_string-special-chars]] <<input_string-special-chars,string-special-chars>>
|n/a
|`string`
|None
|`"\\.<>[]{}_-"`
|no

|[[input_string_default_empty]] <<input_string_default_empty,string_default_empty>>
|n/a
|`string`
|None
|`""`
|no

|[[input_string_default_null]] <<input_string_default_null,string_default_null>>
|n/a
|`string`
|None
|`null`
|no

|[[input_string_no_default]] <<input_string_no_default,string_no_default>>
|n/a
|`string`
|None
|n/a
|yes

|[[input_unquoted]] <<input_unquoted,unquoted>>
|n/a
|`any`
|None
|n/a
|yes

|[[input_variable_with_no_validation]] <<input_variable_with_no_validation,variable_with_no_validation>>
|This variable has no validation
|`string`
|None
|`""`
|no

|[[input_variable_with_one_validation]] <<input_variable_with_one_validation,variable_with_one_validation>>
|This variable has one validation
|`string`
|var.variable_with_one_validation must be empty or 10 characters long.
|`""`
|no

|[[input_variable_with_two_validations]] <<input_variable_with_two_validations,variable_with_two_validations>>
|This variable has two validations
|`string`
|var.variable_with_two_validations must be 10 characters long.+var.variable_with_two_validations must start with 'magic'.
|n/a
|yes

|[[input_with-url]] <<input_with-url,with-url>>
|The description contains url. https://www.domain.com/foo/bar_baz.html
|`string`
|None
|`""`
|no

Expand Down
1 change: 1 addition & 0 deletions docs/reference/asciidoc.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ terraform-docs asciidoc [PATH] [flags]
--required show Required column or section (default true)
--sensitive show Sensitive column or section (default true)
--type show Type column or section (default true)
--validation show Validation column or section (default true)
```

## Inherited Options
Expand Down
Loading
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy