MCPcopy Create free account
hub / github.com/agenticsorg/edge-agents / create_issue

Function create_issue

scripts/agents/devops/src/github/github_tools.py:175–237  ·  view source on GitHub ↗

Create a new issue in a GitHub repository. Args: ctx: Run context containing DevOpsContext request: Parameters for the issue creation request Returns: GitHubIssue object for the created issue

(
    ctx: RunContext[DevOpsContext],
    request: GitHubCreateIssueRequest
)

Source from the content-addressed store, hash-verified

173
174@function_tool()
175async def create_issue(
176 ctx: RunContext[DevOpsContext],
177 request: GitHubCreateIssueRequest
178) -> GitHubIssue:
179 """
180 Create a new issue in a GitHub repository.
181
182 Args:
183 ctx: Run context containing DevOpsContext
184 request: Parameters for the issue creation request
185
186 Returns:
187 GitHubIssue object for the created issue
188 """
189 logger.info(f"Creating issue in {request.owner}/{request.repo}: {request.title}")
190
191 # Get GitHub client
192 g = _get_github_client()
193
194 # Get repository
195 repo = g.get_repo(f"{request.owner}/{request.repo}")
196
197 # Prepare parameters for create_issue
198 kwargs = {
199 'title': request.title,
200 'body': request.body
201 }
202
203 if request.labels:
204 kwargs['labels'] = request.labels
205
206 if request.assignees:
207 kwargs['assignees'] = request.assignees
208
209 if request.milestone:
210 kwargs['milestone'] = request.milestone
211
212 # Create issue
213 issue = repo.create_issue(**kwargs)
214
215 # Extract labels
216 labels = [label.name for label in issue.labels]
217
218 # Extract assignees
219 assignees = [assignee.login for assignee in issue.assignees]
220
221 # Create GitHubIssue model
222 result = GitHubIssue(
223 number=issue.number,
224 title=issue.title,
225 body=issue.body,
226 state=issue.state,
227 created_at=issue.created_at.isoformat() if issue.created_at else None,
228 updated_at=issue.updated_at.isoformat() if issue.updated_at else None,
229 closed_at=issue.closed_at.isoformat() if issue.closed_at else None,
230 url=issue.html_url,
231 labels=labels,
232 assignees=assignees,

Callers

nothing calls this directly

Calls 2

_get_github_clientFunction · 0.85
GitHubIssueClass · 0.70

Tested by

no test coverage detected