github-docs-arabic-enhanced / content /copilot /tutorials /copilot-chat-cookbook /document-code /creating-issues.md
| title: Creating issues | |
| shortTitle: Create issues | |
| intro: '{% data variables.copilot.copilot_chat_short %} can help you quickly create issues without filling out every field manually.' | |
| versions: | |
| feature: copilot | |
| complexity: | |
| - Simple | |
| octicon: copilot | |
| category: | |
| - Documenting code | |
| - Author and optimize with Copilot | |
| topics: | |
| - Copilot | |
| contentType: tutorials | |
| Creating issues manually can be time-consuming. {% data variables.copilot.copilot_chat_short %} lets you create issues from natural language, and automatically fills in the title, body, labels, and other metadata based on your prompt. | |
| ## Example scenario | |
| You're working on an API service and need to add server-side validation to the `createUser` endpoint. Instead of drafting the issue manually, you use {% data variables.copilot.copilot_chat_short %} to generate a detailed issue description that includes an example implementation of the validation middleware. | |
| The following snippet shows the current implementation of the `createUser` route, before validation is added: | |
| ```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 } }); | |
| }); | |
| ``` | |
| ## Example prompt | |
| `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".` | |
| ## Example response | |
| {% data reusables.copilot.example-prompts.response-is-an-example %} | |
| When you submit the prompt, {% data variables.copilot.copilot_chat_short %} generates a draft issue based on your description and includes a code snippet. You can review and edit the draft before creating the issue. | |
| ```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. | |
| ``` | |