MCPcopy
hub / github.com/mudler/LocalAGI / Run

Method Run

services/actions/githubissuereader.go:30–59  ·  view source on GitHub ↗
(ctx context.Context, sharedState *types.AgentSharedState, params types.ActionParams)

Source from the content-addressed store, hash-verified

28}
29
30func (g *GithubIssuesReader) Run(ctx context.Context, sharedState *types.AgentSharedState, params types.ActionParams) (types.ActionResult, error) {
31 result := struct {
32 Repository string `json:"repository"`
33 Owner string `json:"owner"`
34 Label string `json:"label"`
35 IssueNumber int `json:"issue_number"`
36 }{}
37 err := params.Unmarshal(&result)
38 if err != nil {
39 return types.ActionResult{}, err
40 }
41
42 if g.repository != "" && g.owner != "" {
43 result.Repository = g.repository
44 result.Owner = g.owner
45 }
46
47 issue, _, err := g.client.Issues.Get(ctx, result.Owner, result.Repository, result.IssueNumber)
48 if err == nil && issue != nil {
49 return types.ActionResult{
50 Result: fmt.Sprintf(
51 "Issue %d Repository: %s\nTitle: %s\nBody: %s",
52 issue.GetNumber(), issue.GetRepository().GetFullName(), issue.GetTitle(), issue.GetBody()),
53 }, nil
54 }
55 if err != nil {
56 return types.ActionResult{Result: fmt.Sprintf("Error fetching issue: %s", err.Error())}, err
57 }
58 return types.ActionResult{Result: fmt.Sprintf("No issue found")}, err
59}
60
61func (g *GithubIssuesReader) Definition() types.ActionDefinition {
62 actionName := "read_github_issue"

Callers

nothing calls this directly

Calls 2

UnmarshalMethod · 0.80
GetMethod · 0.65

Tested by

no test coverage detected