メモ
Issue フォームは現在 パブリック プレビュー 段階であり、変更される可能性があります。
必須の最上位レベルのキー name が欠落しています
テンプレートに name フィールドが含まれていません。つまり、ユーザーにオプションのリストを示すときに Issue テンプレートを呼び出す内容が明確ではありません。
"必須の最上位レベルのキー 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`
このエラーは、禁止されているキーを削除することで修正できます。
本文には、マークダウン以外のフィールドが少なくとも 1 つ含まれている必要があります
Issue フォームではユーザー入力を受け入れる必要があります。つまり、そのフィールドの少なくとも 1 つにユーザー入力フィールドが含まれている必要があります。
markdown 要素は静的テキストであるため、body 配列に markdown 要素のみを含めることはできません。
"本文には、マークダウン以外のフィールドが少なくとも 1 つ含まれている必要があります" エラーの例
name: "Bug report"
body:
- type: markdown
attributes:
value: "Bugs are the worst!"
このエラーは、ユーザー入力を受け入れるマークダウン以外の要素を追加することで修正できます。
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 属性が必要な場合は、少なくとも 1 つの id を指定して、同じラベルを持つ 2 つの要素を区別できます。
name: "Bug report"
body:
- type: textarea
id: name_1
attributes:
label: Name
- type: textarea
id: name_2
attributes:
label: Name
`id` 属性は Issue 本文に表示されません。 結果の Issue のフィールドを区別する場合は、個別の `label` 属性を使用する必要があります。
ラベルが似すぎています
似たようなラベルは同じ参照に処理される場合があります。
id 属性が input に対して指定されていない場合、label フィールドへの参照を生成するために input 属性が使用されます。 これを行うには、Rails の parameterize メソッドを利用して label を処理します。 場合によっては、異なる 2 つのラベルを同じパラメーター化された文字列に処理できます。
"ラベルが似すぎています" エラーの例
name: "Bug report"
body:
- type: input
attributes:
label: Name?
- type: input
id: name
attributes:
label: Name???????
このエラーは、少なくとも 1 つの差別化英数字、-、または _ を競合するラベルのいずれかに追加することで修正できます。
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 を指定することもできます。 入れ子になった checkbox 要素では id 属性はサポートされていません。
name: "Bug report"
body:
- type: textarea
id: name_1
attributes:
label: Name
- type: checkboxes
attributes:
options:
- label: Name
`id` 属性は Issue 本文に表示されません。 結果の Issue のフィールドを区別する場合は、個別の `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 が有効な入力の種類ではありません
本体ブロックの 1 つに、許可されている種類の 1 つではない種類の値が含まれています。
`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 属性の 1 つが指定されていません。 このエラーは、ブロックに 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 の 2 番目のリスト要素の 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 に対して文字列値を指定することで修正できます。 ブール値、整数、または 10 進数として解析できる 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 は許可されているキーではありません
予期しないキー x が、type および attributes と同じインデント レベルで指定されました。
`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の問題で個人情報と資格情報が公開されるリスクを最小限に抑えるために、攻撃者が一般的に使用する一部の単語は、入力要素または textarea 要素の 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 は一意である必要があります
checkboxes とドロップダウン入力の種類の場合、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?"
参考資料
-
[YAML](https://yaml.org/) -
[課題フォームの構文](/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms)