注意:问题表单目前处于测试阶段,可能会发生变化。
缺少必需的顶级键name
模板不包含name
字段,这意味着在向用户提供选项列表时,不清楚如何命名您的问题模板。
“缺少必需的顶级键name
”错误示例
description: "Thank you for reporting a bug!"
...
可以通过添加name
作为键来修复此错误。
name: "Bug report"
description: "Thank you for reporting a bug!"
...
key
必须是字符串
此错误消息表示已提供允许的键,但其值无法解析为数据类型不受支持。
“key
必须是字符串”错误示例
下面的description
正在解析为布尔值,但它应该是字符串。
name: "Bug report"
description: true
...
可以通过提供字符串作为值来修复此错误。字符串可能需要用双引号括起来才能成功解析。例如,包含'
的字符串必须用双引号括起来。
name: "Bug report"
description: "true"
...
当字段需要字符串时,空字符串或仅包含空格的字符串也不允许。
name: ""
description: "File a bug report"
assignees: " "
...
可以通过将值更正为非空字符串来修复此错误。如果该字段不是必需的,则应删除键值对。
name: "Bug Report"
description: "File a bug report"
...
input
不是允许的键
在模板的顶层提供了意外的键。有关支持哪些顶层键的更多信息,请参阅“问题表单语法”。
“input
不是允许的键”错误示例
name: "Bug report"
hello: world
...
可以通过删除意外的键来修复此错误。
name: "Bug report"
...
禁止的键
YAML 将某些字符串解析为 Boolean
值。为了避免这种情况,我们明确禁止使用以下键
y
、Y
、yes
、Yes
、YES
、n
、N
、no
、No
、NO
、true
、True
、TRUE
、false
、False
、FALSE
、on
、On
、ON
、off
、Off
、OFF
可以通过删除禁止的键来修复此错误。
正文必须包含至少一个非 Markdown 字段
问题表单必须接受用户输入,这意味着其至少一个字段必须包含用户输入字段。markdown
元素是静态文本,因此 body
数组不能仅包含 markdown
元素。
“正文必须包含至少一个非 Markdown 字段”错误示例
name: "Bug report"
body:
- type: markdown
attributes:
value: "Bugs are the worst!"
可以通过添加接受用户输入的非 Markdown 元素来修复此错误。
name: "Bug report"
body:
- type: markdown
attributes:
value: "Bugs are the worst!"
- type: textarea
attributes:
label: "What's wrong?"
正文必须具有唯一的 ID
如果使用 id
属性来区分多个元素,则每个 id
属性必须是唯一的。
“正文必须具有唯一的 ID”错误示例
name: "Bug report"
body:
- type: input
id: name
attributes:
label: First name
- type: input
id: name
attributes:
label: Last name
可以通过更改其中一个输入的 id
来修复此错误,以确保每个 input
字段都具有唯一的 id
属性。
name: "Bug report"
body:
- type: input
id: name
attributes:
label: First name
- type: input
id: surname
attributes:
label: Last name
正文必须具有唯一的标签
当存在多个接受用户输入的 body
元素时,每个用户输入字段的 label
属性必须是唯一的。
“正文必须具有唯一的标签”错误示例
name: "Bug report"
body:
- type: textarea
attributes:
label: Name
- type: textarea
attributes:
label: Name
可以通过更改其中一个输入字段的 label
属性来修复此错误,以确保每个 label
都是唯一的。
name: "Bug report"
body:
- type: textarea
attributes:
label: Name
- type: textarea
attributes:
label: Operating System
输入字段也可以通过其 id
属性来区分。如果需要重复的 label
属性,则可以提供至少一个 id
来区分具有相同标签的两个元素。
name: "Bug report"
body:
- type: textarea
id: name_1
attributes:
label: Name
- type: textarea
id: name_2
attributes:
label: Name
id
属性在问题正文中不可见。如果要区分结果问题中的字段,则应使用不同的 label
属性。
标签过于相似
相似的标签可能会被处理成相同的引用。如果input
没有提供id
属性,则使用label
属性生成对input
字段的引用。为此,我们通过利用 Rails 的 parameterize 方法来处理label
。在某些情况下,两个不同的标签可能会被处理成相同的参数化字符串。
"标签过于相似" 错误示例
name: "Bug report"
body:
- type: input
attributes:
label: Name?
- type: input
id: name
attributes:
label: Name???????
可以通过在冲突标签中添加至少一个区分的字母数字字符、-
或 _
来修复此错误。
name: "Bug report"
body:
- type: input
attributes:
label: Name?
- type: input
attributes:
label: Your name
也可以通过为冲突标签之一提供唯一的id
来修复此错误。
name: "Bug report"
body:
- type: input
attributes:
label: Name?
- type: input
id: your-name
attributes:
label: Name???????
复选框必须具有唯一的标签
当存在checkboxes
元素时,其嵌套标签在其同级元素中必须是唯一的,并且在其他输入类型中也必须是唯一的。
"复选框必须具有唯一的标签" 错误示例
name: "Bug report"
body:
- type: textarea
attributes:
label: Name
- type: checkboxes
attributes:
options:
- label: Name
可以通过更改这些输入之一的label
属性来修复此错误。
name: "Bug report"
body:
- type: textarea
attributes:
label: Name
- type: checkboxes
attributes:
options:
- label: Your name
或者,您可以为任何冲突的顶级元素提供id
。嵌套的复选框元素不支持id
属性。
name: "Bug report"
body:
- type: textarea
id: name_1
attributes:
label: Name
- type: checkboxes
attributes:
options:
- label: Name
id
属性在问题正文中不可见。如果要区分结果问题中的字段,则应使用不同的 label
属性。
Body[i]: 缺少必需的键类型
每个主体块都必须包含键type
。
body
的错误将以body[i]
为前缀,其中i
表示包含错误的主体块的零索引索引。例如,body[0]
告诉我们错误是由body
列表中的第一个块引起的。
"body[i]: 缺少必需的键类型" 错误示例
body:
- attributes:
value: "Thanks for taking the time to fill out this bug! If you need real-time help, join us on Discord."
可以通过添加键type
并将有效的输入类型作为值来修复此错误。有关可用的body
输入类型及其语法的详细信息,请参见 "GitHub 表单架构的语法。"。
body:
- type: markdown
attributes:
value: "Thanks for taking the time to fill out this bug! If you need real-time help, join us on Discord."
Body[i]: x
不是有效的输入类型
主体块之一包含一个类型值,该值不是 允许的类型 之一。
body
的错误将以body[i]
为前缀,其中i
表示包含错误的主体块的索引。例如,body[0]
告诉我们错误是由body
列表中的第一个块引起的。
示例:"body[i]: x
不是有效的输入类型" 错误
body:
- type: x
attributes:
value: "Thanks for taking the time to fill out this bug! If you need real-time help, join us on Discord."
可以通过将 x
更改为有效的类型之一来修复错误。
body:
- type: markdown
attributes:
value: "Thanks for taking the time to fill out this bug! If you need real-time help, join us on Discord."
Body[i]: 缺少必需的属性键 value
缺少一个必需的 value
属性。当块没有 attributes
键或在 attributes
键下没有 value
键时,就会发生此错误。
body
的错误将以body[i]
为前缀,其中i
表示包含错误的主体块的索引。例如,body[0]
告诉我们错误是由body
列表中的第一个块引起的。
示例:"body[i]: 缺少必需的属性键 value
" 错误
body:
- type: markdown
attributes:
value: "Thanks for taking the time to fill out this bug! If you need real-time help, join us on Discord."
- type: markdown
此示例中的错误可以通过在 body
的第二个列表元素中将 value
添加为 attributes
下的键来修复。
body:
- type: markdown
attributes:
value: "Thanks for taking the time to fill out this bug! If you need real-time help, join us on Discord."
- type: markdown
attributes:
value: "This is working now!"
Body[i]: 标签必须是字符串
在 attributes
块中,值的数据类型错误。
body
的错误将以body[i]
为前缀,其中i
表示包含错误的主体块的索引。例如,body[0]
告诉我们错误是由body
列表中的第一个块引起的。
示例:"body[i]: 标签必须是字符串" 错误
下面的 label
被解析为布尔值,但它应该是字符串。
body:
- type: markdown
attributes:
value: "Thanks for taking the time to fill out this bug! If you need real-time help, join us on Discord."
- type: textarea
attributes:
label: Bug Description
- type: textarea
attributes:
label: true
可以通过为 label
提供字符串值来修复此错误。如果您想使用可能被解析为布尔值、整数或小数的 label
值,则应将该值用引号括起来。例如,使用 "true"
或 "1.3"
而不是 true
或 1.3
。
- type: markdown
attributes:
value: "Thanks for taking the time to fill out this bug! If you need real-time help, join us on Discord."
- type: textarea
attributes:
label: Bug Description
- type: textarea
attributes:
label: Environment Details
当属性需要字符串时,不允许使用空字符串或仅包含空格的字符串。例如,不允许使用 ""
或 " "
。
如果属性是必需的,则值必须是非空字符串。如果字段不是必需的,则应删除键值对。
body:
- type: input
attributes:
label: "Name"
Body[i]: id
只能包含数字、字母、-、_
id
属性只能包含字母数字字符、-
和 _
。您的模板可能在 id
中包含不允许的字符,例如空格。
body
的错误将以body[i]
为前缀,其中i
表示包含错误的主体块的索引。例如,body[0]
告诉我们错误是由body
列表中的第一个块引起的。
示例:"body[i]: id
只能包含数字、字母、-、_" 错误
name: "Bug report"
body:
- type: input
id: first name
attributes:
label: First name
可以通过确保从 id
值中删除空格和其他不允许的字符来修复此错误。
name: "Bug report"
body:
- type: input
id: first-name
attributes:
label: First name
Body[i]: x
不是允许的键
在与 type
和 attributes
相同的缩进级别上,提供了一个意外的键 x
。
body
的错误将以body[i]
为前缀,其中i
表示包含错误的主体块的索引。例如,body[0]
告诉我们错误是由body
列表中的第一个块引起的。
“body[i]: x
不是允许的键” 错误示例
body:
- type: markdown
x: woof
attributes:
value: "Thanks for taking the time to fill out this bug! If you need real-time help, join us on Discord."
可以通过删除多余的键并仅使用 type
、attributes
和 id
来修复此错误。
body:
- type: markdown
attributes:
value: "Thanks for taking the time to fill out this bug! If you need real-time help, join us on Discord."
Body[i]: label
包含禁止词语
为了最大程度地降低在 GitHub Issues 中公开发布私人信息和凭据的风险,一些攻击者常用的词语在输入或文本区域元素的 label
中是不允许的。
body
的错误将以body[i]
为前缀,其中i
表示包含错误的主体块的索引。例如,body[0]
告诉我们错误是由body
列表中的第一个块引起的。
“body[i]: label
包含禁止词语” 错误示例
body:
- type: markdown
attributes:
value: Hello world!
- type: input
attributes:
label: Password
可以通过从任何 label
字段中删除诸如“password”之类的术语来修复此错误。
body:
- type: markdown
attributes:
value: Hello world!
- type: input
attributes:
label: Username
Body[i]: x
不是允许的属性
在 attributes
块中提供了无效的键。
body
的错误将以body[i]
为前缀,其中i
表示包含错误的主体块的索引。例如,body[0]
告诉我们错误是由body
列表中的第一个块引起的。
“body[i]: x
不是允许的属性” 错误示例
body:
- type: markdown
attributes:
x: "a random key!"
value: "Thanks for taking the time to fill out this bug!"
可以通过删除多余的键并仅使用允许的属性来修复此错误。
body:
- type: markdown
attributes:
value: "Thanks for taking the time to fill out this bug!"
Body[i]: options
必须是唯一的
对于复选框和下拉输入类型,在 options
数组中定义的选择必须是唯一的。
body
的错误将以body[i]
为前缀,其中i
表示包含错误的主体块的索引。例如,body[0]
告诉我们错误是由body
列表中的第一个块引起的。
“body[i]: options
必须是唯一的” 错误示例
body:
- type: dropdown
attributes:
label: Favorite dessert
options:
- ice cream
- ice cream
- pie
可以通过确保 options
数组中不存在重复的选择来修复此错误。
body:
- type: dropdown
attributes:
label: Favorite dessert
options:
- ice cream
- pie
Body[i]: options
不得包含保留字“none”
“None” 是 options
集合中的保留字,因为它用于在 dropdown
不是必需时指示非选择。
body
的错误将以body[i]
为前缀,其中i
表示包含错误的主体块的索引。例如,body[0]
告诉我们错误是由body
列表中的第一个块引起的。
“body[i]: options
不得包含保留字“none”” 错误示例
body:
- type: dropdown
attributes:
label: What types of pie do you like?
options:
- Steak & Ale
- Chicken & Leek
- None
validations:
required: true
可以通过删除“None” 作为选项来修复此错误。如果你希望贡献者能够表明他们不喜欢这些类型的馅饼,你可以另外删除 required
验证。
body:
- type: dropdown
attributes:
label: What types of pie do you like?
options:
- Steak & Ale
- Chicken & Leek
在此示例中,“None” 将自动填充为可选择选项。
Body[i]: options
不得包含布尔值。请将诸如“yes”和“true”之类的值用引号括起来
YAML 解析器会将许多英文单词处理为布尔值,除非它们用引号括起来。对于下拉 options
,所有项目必须是字符串而不是布尔值。
body
的错误将以body[i]
为前缀,其中i
表示包含错误的主体块的索引。例如,body[0]
告诉我们错误是由body
列表中的第一个块引起的。
“body[i]: options
不得包含布尔值。请将诸如“yes”和“true”之类的值用引号括起来” 错误示例
body:
- type: dropdown
attributes:
label: Do you like pie?
options:
- Yes
- No
- Maybe
可以通过将每个有问题的选项用引号括起来来解决此错误,以防止它们被处理为布尔值。
body:
- type: dropdown
attributes:
label: Do you like pie?
options:
- "Yes"
- "No"
- Maybe
正文不能为空
模板正文key:value
对不能为空。有关哪些顶级键是必需的,请参阅“问题表单语法”。
可以通过添加body:
部分来解决此错误。
"正文不能为空"错误示例
name: Support Request
description: Something went wrong and you need help?
---
body:
- type: textarea
attributes:
label: "What's wrong?"
在此示例中,可以通过删除标题和body
部分之间的---
(文档分隔符)来解决此错误。
name: Support Request
description: Something went wrong and you need help?
body:
- type: textarea
attributes:
label: "What's wrong?"