Note
Формы проблем в настоящее время находятся в public preview и подлежат изменению.
Отсутствует обязательный ключ верхнего уровня 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
.
Пример ошибки body должен содержать по крайней мере одно поле, отличное от 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
должен быть уникальным.
Пример ошибки "текст должен иметь уникальные идентификаторы"
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
, для создания ссылки на поле input
используется атрибут label
. Для этого label
обрабатывается с помощью метода parameterize Rails. В некоторых случаях в результате обработки двух разных меток может получаться одна и та же параметризованная строка.
Пример ошибки "метки слишком похожи"
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
Каждый блок текста должен иметь ключ 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
или нет ключа value
в ключе attributes
.
Сообщения об ошибках, связанных с 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
Ошибку в этом примере можно исправить, добавив ключ value
в ключе attributes
во втором элементе body
.
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, некоторые слова, часто используемые злоумышленниками, не допускаются в метках label
элементов ввода или textarea.
Сообщения об ошибках, связанных с body
, начинаются с элемента body[i]
, где i
— это индекс блока текста, содержащего ошибку. Например, body[0]
означает, что ошибка вызвана первым блоком в списке body
.
Пример ошибки body[i]: label
содержит запрещенное слово
body:
- type: markdown
attributes:
value: Hello world!
- type: input
attributes:
label: Password
Эту ошибку можно исправить, удалив такие слова, как "пароль", из всех полей label
.
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
не должен включать зарезервированное слово, нет" ошибки
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
не должен включать логические значения. Обтекайте такие значения, как "да", и "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?"