Note
Formulários de problemas estão em beta e estão sujeitos a alterações.
A chave name
de nível superior obrigatória está ausente
O modelo não contém um campo name
, o que significa que não está claro como chamar seu modelo de problema ao fornecer aos usuários uma lista de opções.
Exemplo de erro "a chave name
de nível superior necessária está ausente"
description: "Thank you for reporting a bug!"
...
O erro pode ser corrigido pela adição de name
como uma chave.
name: "Bug report"
description: "Thank you for reporting a bug!"
...
key
precisa ser uma cadeia de caracteres
Esta mensagem de erro significa que uma chave permitida foi fornecida, mas seu valor não pode ser analisado porque o tipo de dado não é compatível.
Exemplo de erro "key
precisa ser uma cadeia de caracteres"
O description
abaixo está sendo analisado como um booliano, mas deve ser uma cadeia de caracteres.
name: "Bug report"
description: true
...
O erro pode ser corrigido fornecendo uma string como o valor. As strings podem ter de ser envolvidas em aspas duplas para serem analisadas com sucesso. Por exemplo, as cadeias de caracteres que contêm '
precisam ser colocadas entre aspas duplas.
name: "Bug report"
description: "true"
...
As strings vazias ou que consistem em espaços em branco também não são permitidas quando o campo espera uma string.
name: ""
description: "File a bug report"
assignees: " "
...
O erro pode ser corrigido ajustando o valor como uma string não vazia. Se o campo não for obrigatório, você deverá excluir o par chave-valor.
name: "Bug Report"
description: "File a bug report"
...
input
não é uma chave permitida
Uma chave inesperada foi fornecida no nível superior do modelo. Para obter mais informações sobre quais chaves de nível superior são compatíveis, confira "Sintaxe para formulários de problema".
Exemplo de erro "input
não é uma chave permitida"
name: "Bug report"
hello: world
...
O erro pode ser corrigido removendo as chaves inesperadas.
name: "Bug report"
...
Chaves proibidas
O YAML analisa determinadas cadeias de caracteres como valores Boolean
. Para evitar isso, proibimos explicitamente o uso das seguintes chaves:
y
, Y
, yes
, Yes
, YES
, n
, N
, no
, No
, NO
, true
, True
, TRUE
, false
, False
, FALSE
, on
, On
, ON
, off
, Off
, OFF
O erro pode ser corrigido removendo as chaves proibidas.
O texto deve conter pelo menos um campo que não seja markdown
Os formulários de problemas devem aceitar a entrada do usuário, o que significa que pelo menos um dos seus campos deve conter um campo de entrada de usuário. Um elemento markdown
é um texto estático, ou seja, uma matriz body
não pode conter apenas elementos markdown
.
Exemplo de erro "o corpo precisa conter pelo menos um campo não markdown"
name: "Bug report"
body:
- type: markdown
attributes:
value: "Bugs are the worst!"
O erro pode ser corrigido adicionando elementos que não são markdown que aceitam a entrada do usuário.
name: "Bug report"
body:
- type: markdown
attributes:
value: "Bugs are the worst!"
- type: textarea
attributes:
label: "What's wrong?"
O texto deve ter identificações únicas
Se você estiver usando atributos id
para distinguir vários elementos, cada atributo id
precisará ser exclusivo.
Exemplo de erro "o corpo precisa ter IDs exclusivas"
name: "Bug report"
body:
- type: input
id: name
attributes:
label: First name
- type: input
id: name
attributes:
label: Last name
O erro pode ser corrigido pela alteração da id
de uma dessas entradas, para que cada campo input
tenha um atributo id
exclusivo.
name: "Bug report"
body:
- type: input
id: name
attributes:
label: First name
- type: input
id: surname
attributes:
label: Last name
O texto deve ter etiquetas únicas
Quando há vários elementos body
que aceitam a entrada de usuário, o atributo label
para cada campo de entrada de usuário precisa ser exclusivo.
Exemplo de erro "o corpo precisa ter rótulos exclusivos"
name: "Bug report"
body:
- type: textarea
attributes:
label: Name
- type: textarea
attributes:
label: Name
O erro pode ser corrigido pela alteração do atributo label
de um dos campos de entrada para garantir que cada label
seja exclusivo.
name: "Bug report"
body:
- type: textarea
attributes:
label: Name
- type: textarea
attributes:
label: Operating System
Os campos de entrada também podem ser diferenciados pelo atributo id
. Se forem necessários atributos label
duplicados, você poderá fornecer, pelo menos, uma id
para diferenciar dois elementos com rótulos idênticos.
name: "Bug report"
body:
- type: textarea
id: name_1
attributes:
label: Name
- type: textarea
id: name_2
attributes:
label: Name
Os atributos da id
não ficam visíveis no corpo do problema. Caso deseje distinguir os campos no problema resultante, use atributos da label
distintos.
As etiquetas são muito semelhantes
As etiquetas semelhantes podem ser processadas em referências idênticas. Se um atributo id
não for fornecido para uma input
, o atributo label
será usado para gerar uma referência ao campo input
. Para fazer isso, processamos o label
aproveitando o método parameterize do Rails. Em alguns casos, duas etiquetas distintas podem ser processadas dentro da mesma string parametrizada.
Exemplo de erro "os rótulos são muito semelhantes"
name: "Bug report"
body:
- type: input
attributes:
label: Name?
- type: input
id: name
attributes:
label: Name???????
O erro pode ser corrigido pela adição de, pelo menos, um caractere alfanumérico diferenciador, -
, ou _
a um dos rótulos conflitantes.
name: "Bug report"
body:
- type: input
attributes:
label: Name?
- type: input
attributes:
label: Your name
O erro também pode ser corrigido pelo fornecimento de uma id
exclusiva a um dos rótulos conflitantes.
name: "Bug report"
body:
- type: input
attributes:
label: Name?
- type: input
id: your-name
attributes:
label: Name???????
As caixas de seleção devem ter etiquetas únicas
Quando um elemento checkboxes
está presente, cada um dos respectivos rótulos aninhados precisa ser exclusivo entre os pares, bem como entre outros tipos de entrada.
Exemplo de erro "as caixas de seleção precisam ter rótulos exclusivos"
name: "Bug report"
body:
- type: textarea
attributes:
label: Name
- type: checkboxes
attributes:
options:
- label: Name
O erro pode ser corrigido pela alteração do atributo label
para uma dessas entradas.
name: "Bug report"
body:
- type: textarea
attributes:
label: Name
- type: checkboxes
attributes:
options:
- label: Your name
Como alternativa, você pode fornecer uma id
para qualquer elemento de nível superior conflitante. Os elementos da caixa de seleção aninhados não dão suporte ao atributo id
.
name: "Bug report"
body:
- type: textarea
id: name_1
attributes:
label: Name
- type: checkboxes
attributes:
options:
- label: Name
Os atributos da id
não ficam visíveis no corpo do problema. Caso deseje distinguir os campos no problema resultante, use atributos da label
distintos.
Body[i]: o tipo de chave necessário está ausente
Cada bloco de corpo precisa conter a chave type
.
Os erros com body
serão precedidos com o body[i]
, em que i
representa o índice indexado a zero do bloco do corpo que contém o erro. Por exemplo, body[0]
informa que o erro foi causado pelo primeiro bloco da lista body
.
Exemplo de erro "body[i]: o tipo de chave necessário está ausente"
body:
- attributes:
value: "Thanks for taking the time to fill out this bug! If you need real-time help, join us on Discord."
O erro pode ser corrigido pela adição da chave type
com um tipo de entrada válido como o valor. Para os tipos de entrada body
disponíveis e suas sintaxes, confira "Sintaxe para o esquema de formulário do 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
não é um tipo de entrada válido
Um dos blocos de corpo contém um valor de tipo que não é um dos tipos permitidos.
Os erros com body
serão precedidos com body[i]
, em que i
representa o índice do bloco do corpo que contém o erro. Por exemplo, body[0]
informa que o erro foi causado pelo primeiro bloco da lista body
.
Exemplo de erro "body[i]: x
não é um tipo de entrada válido"
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."
O erro pode ser corrigido pela alteração de x
para um dos tipos válidos.
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]: a chave value
de atributo obrigatória está ausente
Um dos atributos value
obrigatórios não foi fornecido. O erro ocorre quando um bloco não tem uma chave attributes
ou não tem uma chave value
sob a chave attributes
.
Os erros com body
serão precedidos com body[i]
, em que i
representa o índice do bloco do corpo que contém o erro. Por exemplo, body[0]
informa que o erro foi causado pelo primeiro bloco da lista body
.
Exemplo de erro "body[i]: a chave de atributo value
necessária está ausente"
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
O erro deste exemplo pode ser corrigido pela adição de value
como uma chave sob attributes
no segundo elemento da lista de 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]: a etiqueta deve ser uma string
Dentro do bloco attributes
, um valor tem o tipo de dados incorreto.
Os erros com body
serão precedidos com body[i]
, em que i
representa o índice do bloco do corpo que contém o erro. Por exemplo, body[0]
informa que o erro foi causado pelo primeiro bloco da lista body
.
Exemplo de erro "body[i]: o rótulo precisa ser uma cadeia de caracteres"
O label
abaixo está sendo analisado como um booliano, mas deve ser uma cadeia de caracteres.
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
O erro pode ser corrigido pelo fornecimento de um valor de cadeia de caracteres para label
. Caso deseje usar um valor label
que possa ser analisado como booliano, inteiro ou decimal, coloque o valor entre aspas. Por exemplo, "true"
ou "1.3"
em vez de true
ou 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
As strings vazias ou strings que consistem em apenas espaços em branco não são permitidas quando um atributo espera uma string. Por exemplo, ""
ou " "
não é permitido.
Se o atributo é obrigatório, o valor deverá ser uma string não vazia. Se o campo não for obrigatório, você deverá excluir o par chave-valor.
body:
- type: input
attributes:
label: "Name"
Body[i]: id
só pode conter números, letras, -, _
Os atributos id
só podem conter somente caracteres alfanuméricos, -
e _
. Seu modelo pode incluir caracteres não permitidos, como espaço em branco, em uma id
.
Os erros com body
serão precedidos com body[i]
, em que i
representa o índice do bloco do corpo que contém o erro. Por exemplo, body[0]
informa que o erro foi causado pelo primeiro bloco da lista body
.
Exemplo de erro "body[i]: id
pode conter apenas números, letras, -, _"
name: "Bug report"
body:
- type: input
id: first name
attributes:
label: First name
O erro pode ser corrigido garantindo que os espaços em branco e outros caracteres não permitidos sejam removidos dos valores id
.
name: "Bug report"
body:
- type: input
id: first-name
attributes:
label: First name
Body[i]: x
não é uma chave permitida
Uma chave inesperada, x
, foi fornecida no mesmo nível de recuo que type
e attributes
.
Os erros com body
serão precedidos com body[i]
, em que i
representa o índice do bloco do corpo que contém o erro. Por exemplo, body[0]
informa que o erro foi causado pelo primeiro bloco da lista body
.
Exemplo de erro "body[i]: x
não é uma chave permitida"
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."
O erro pode ser corrigido pela remoção das chaves extras e pelo uso de apenas type
, attributes
e 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
contém uma palavra proibida
Para minimizar o risco de informações particulares e credenciais serem postadas publicamente nos Problemas do GitHub, algumas palavras comumente usadas por invasores não são permitidas no label
dos elementos de entrada ou de área de texto.
Os erros com body
serão precedidos com body[i]
, em que i
representa o índice do bloco do corpo que contém o erro. Por exemplo, body[0]
informa que o erro foi causado pelo primeiro bloco da lista body
.
Exemplo de erro "body[i]: label
contém uma palavra proibida"
body:
- type: markdown
attributes:
value: Hello world!
- type: input
attributes:
label: Password
O erro pode ser corrigido pela remoção de termos como "password" de qualquer campo label
.
body:
- type: markdown
attributes:
value: Hello world!
- type: input
attributes:
label: Username
Body[i]: x
não é um atributo permitido
Uma chave inválida foi fornecida em um bloco attributes
.
Os erros com body
serão precedidos com body[i]
, em que i
representa o índice do bloco do corpo que contém o erro. Por exemplo, body[0]
informa que o erro foi causado pelo primeiro bloco da lista body
.
Exemplo de erro "body[i]: x
não é um atributo permitido"
body:
- type: markdown
attributes:
x: "a random key!"
value: "Thanks for taking the time to fill out this bug!"
O erro pode ser corrigido removendo chaves extras e usando apenas os atributos permitidos.
body:
- type: markdown
attributes:
value: "Thanks for taking the time to fill out this bug!"
Body[i]: options
precisa ser exclusivo
Para as caixas de seleção e os tipos de entrada suspensos, as opções definidas na matriz options
precisam ser exclusivas.
Os erros com body
serão precedidos com body[i]
, em que i
representa o índice do bloco do corpo que contém o erro. Por exemplo, body[0]
informa que o erro foi causado pelo primeiro bloco da lista body
.
Exemplo de erro "body[i]: options
precisa ser exclusivo"
body:
- type: dropdown
attributes:
label: Favorite dessert
options:
- ice cream
- ice cream
- pie
O erro pode ser corrigido garantindo que não existam opções duplicadas na matriz options
.
body:
- type: dropdown
attributes:
label: Favorite dessert
options:
- ice cream
- pie
Body[i]: options
não deve incluir a palavra reservada, none
"None" é uma palavra reservada em um conjunto de options
porque ela é usada para indicar a não opção quando uma dropdown
não é obrigatória.
Os erros com body
serão precedidos com body[i]
, em que i
representa o índice do bloco do corpo que contém o erro. Por exemplo, body[0]
informa que o erro foi causado pelo primeiro bloco da lista body
.
Exemplo de erro "body[i]: options
não pode incluir a palavra reservada nenhum"
body:
- type: dropdown
attributes:
label: What types of pie do you like?
options:
- Steak & Ale
- Chicken & Leek
- None
validations:
required: true
O erro pode ser corrigido removendo "Nenhum" como opção. Caso deseje que um colaborador possa indicar que ele não gosta de nenhum desses tipos de tortas, você também pode remover a validação required
.
body:
- type: dropdown
attributes:
label: What types of pie do you like?
options:
- Steak & Ale
- Chicken & Leek
Neste exemplo, "Nenhum" será preenchido automaticamente como uma opção selecionável.
Body[i]: options
não deve incluir boolianos. Por favor, coloque os valores como "sim" e "verdadeiro" entre aspas
Há uma série de palavras em inglês processadas em valores booleanos pelo analisador do YAML, a menos que sejam entre aspas. Para as lista suspensa options
, todos os itens precisam ser cadeias de caracteres em vez de boolianos.
Os erros com body
serão precedidos com body[i]
, em que i
representa o índice do bloco do corpo que contém o erro. Por exemplo, body[0]
informa que o erro foi causado pelo primeiro bloco da lista body
.
Exemplo de erro: "body[i]: options
não pode incluir boolianos. Por favor, coloque os valores como "sim" e "verdadeiro" entre aspas"
body:
- type: dropdown
attributes:
label: Do you like pie?
options:
- Yes
- No
- Maybe
O erro pode ser corrigido colocando cada opção incorreta entre aspas, para evitar que sejam processados como valores booleanos.
body:
- type: dropdown
attributes:
label: Do you like pie?
options:
- "Yes"
- "No"
- Maybe
O corpo não pode ficar vazio
O par key:value
do corpo do modelo não pode ficar vazio. Para obter mais informações sobre quais chaves de nível superior são compatíveis, confira "Sintaxe para formulários de problema".
O erro pode ser corrigido pela adição da seção body:
.
Exemplo de erro "o corpo não pode estar vazio"
name: Support Request
description: Something went wrong and you need help?
---
body:
- type: textarea
attributes:
label: "What's wrong?"
Neste exemplo, o erro pode ser corrigido excluindo o ---
(separador de documento) entre os cabeçalhos e a seção body
.
name: Support Request
description: Something went wrong and you need help?
body:
- type: textarea
attributes:
label: "What's wrong?"