# イシューの作成

コパイロットチャット を使用すると、すべてのフィールドに手動で入力することなく、問題をすばやく作成できます。

問題を手動で作成するには時間がかかる場合があります。 コパイロットチャット を利用すると、自然言語から課題を作成し、プロンプトに基づいてタイトル、本文、ラベル、その他のメタデータが自動的に入力されます。

## サンプル シナリオ

API サービスで作業しており、 `createUser` エンドポイントにサーバー側の検証を追加する必要があります。 問題を手動で下書きする代わりに、コパイロットチャット を使用して、検証ミドルウェアの実装例を含む詳細な問題の説明を生成します。

次のスニペットは、検証が追加される前の、 `createUser` ルートの現在の実装を示しています。

```javascript
// Route
app.post('/users', validateCreateUser, (req, res) => {
  const { username, email } = req.body;
  // Simulate user creation
  res.status(201).json({ message: 'User created', user: { username, email } });
});
```

## プロンプトの例

`In octo-org/octo-repo, create an issue to add server-side validation for the createUser API endpoint. Include an example of how to validate the request body using an existing middleware pattern. Label it with "backend" and "enhancement".`

## 応答の例

> [!NOTE] 次の応答は例です。 コパイロットチャット の応答は非決定的であるため、ここで示したものとは異なる応答が返される可能性があります。

プロンプトを送信すると、コパイロットチャット によって、説明に基づいて下書きの問題が生成され、コード スニペットが含まれます。 問題を作成する前に、下書きを確認して編集できます。

```markdown
## Problem
The `createUser` API endpoint currently lacks robust server-side validation for incoming requests. To ensure data integrity and security, we should validate the request body before proceeding with user creation.

**Current API endpoint:**
// Route
app.post('/users', validateCreateUser, (req, res) => {
  const { username, email } = req.body;
  // Simulate user creation
  res.status(201).json({ message: 'User created', user: { username, email } });
});

## Proposal
- Add server-side validation for the request body using the existing middleware pattern.
- Ensure required fields (`username`, `email`) are present and valid.
- Return a 400 Bad Request response if validation fails.

**Example (middleware pattern):**
function validateCreateUser(req, res, next) {
  const { username, email } = req.body;
  if (!username || !email) {
    return res.status(400).json({ error: 'Username and email are required.' });
  }
  // Additional validation logic here
  next();
}

app.post('/users', validateCreateUser, (req, res) => {
  // ...
});

## Acceptance Criteria
- Server-side validation middleware is added to the `createUser` endpoint.
- Request body is properly validated.
- Appropriate error responses are returned for invalid requests.
```