8000 experiment with resource results for failed job logs · github/github-mcp-server@0326014 · GitHub
[go: up one dir, main page]

Skip to content

Commit 0326014

Browse files
experiment with resource results for failed job logs
1 parent f51096d commit 0326014

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

pkg/github/actions.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -696,6 +696,35 @@ func handleFailedJobLogs(ctx context.Context, client *github.Client, owner, repo
696696
return nil, fmt.Errorf("failed to marshal response: %w", err)
697697
}
698698

699+
if returnContent {
700+
// return mcp.NewToolResultResource("failed job logs", , nil
701+
702+
content := []mcp.Content{
703+
mcp.TextContent{
704+
Type: "text",
705+
Text: "Failed job logs for workflow run " + strconv.FormatInt(runID, 10),
706+
}}
707+
708+
for _, jobLog := range logResults {
709+
log, err := json.Marshal(jobLog)
710+
if err != nil {
711+
return nil, fmt.Errorf("failed to marshal job log: %w", err)
712+
}
713+
714+
jobContent := mcp.EmbeddedResource{
715+
Type: "resource",
716+
Resource: mcp.TextResourceContents{
717+
Text: string(log),
718+
MIMEType: "application/json",
719+
URI: "actions://" + owner + "/repo/" + repo + "/jobs/" + strconv.FormatInt(runID, 10) + "/failed_logs/" + strconv.FormatInt(jobLog["job_id"].(int64), 10) + ".json",
720+
},
721+
}
722+
content = append(content, jobContent)
723+
}
724+
return &mcp.CallToolResult{
725+
Content: content,
726+
}, nil
727+
}
699728
return mcp.NewToolResultText(string(r)), nil
700729
}
701730

0 commit comments

Comments
 (0)
0