MCPcopy Create free account
hub / github.com/braintrustdata/bash-agent-evals / processEvent

Function processEvent

src/data/transform.ts:54–204  ·  view source on GitHub ↗
(event: GitHubEvent)

Source from the content-addressed store, hash-verified

52}
53
54function processEvent(event: GitHubEvent) {
55 // Track the repo
56 getOrCreateRepo(event.repo.name, event.repo.id);
57
58 // Track the actor
59 getOrCreateUser(event.actor.login, event.actor.id);
60
61 switch (event.type) {
62 case 'IssuesEvent': {
63 const e = event as IssuesEvent;
64 const key = `${event.repo.name}#${e.payload.issue.number}`;
65 const issue = e.payload.issue;
66
67 if (e.payload.action === 'opened') {
68 const user = getOrCreateUser(issue.user.login, issue.user.id);
69 user.issues_opened++;
70 }
71
72 if (!issues.has(key)) {
73 issues.set(key, {
74 id: issue.id,
75 number: issue.number,
76 title: issue.title,
77 body: issue.body,
78 state: issue.state,
79 author: issue.user.login,
80 labels: issue.labels.map((l) => l.name),
81 created_at: issue.created_at,
82 updated_at: issue.updated_at,
83 closed_at: issue.closed_at,
84 comments: [],
85 });
86 } else {
87 // Update state if changed
88 const existing = issues.get(key)!;
89 existing.state = issue.state;
90 existing.updated_at = issue.updated_at;
91 existing.closed_at = issue.closed_at;
92 }
93 break;
94 }
95
96 case 'IssueCommentEvent': {
97 const e = event as IssueCommentEvent;
98 const key = `${event.repo.name}#${e.payload.issue.number}`;
99 const comment = e.payload.comment;
100
101 const user = getOrCreateUser(comment.user.login, comment.user.id);
102 user.comments_made++;
103
104 // Ensure issue exists
105 if (!issues.has(key)) {
106 const issue = e.payload.issue;
107 issues.set(key, {
108 id: issue.id,
109 number: issue.number,
110 title: issue.title,
111 body: issue.body,

Callers 1

readAndProcessEventsFunction · 0.70

Calls 2

getOrCreateRepoFunction · 0.70
getOrCreateUserFunction · 0.70

Tested by

no test coverage detected