MCPcopy Create free account
hub / github.com/coleam00/remote-agentic-coding-system / parseEvent

Method parseEvent

src/adapters/github.ts:141–193  ·  view source on GitHub ↗

* Parse webhook event and extract relevant data

(event: WebhookEvent)

Source from the content-addressed store, hash-verified

139 * Parse webhook event and extract relevant data
140 */
141 private parseEvent(event: WebhookEvent): {
142 owner: string;
143 repo: string;
144 number: number;
145 comment: string;
146 eventType: 'issue' | 'issue_comment' | 'pull_request';
147 issue?: WebhookEvent['issue'];
148 pullRequest?: WebhookEvent['pull_request'];
149 } | null {
150 const owner = event.repository.owner.login;
151 const repo = event.repository.name;
152
153 // issue_comment (covers both issues and PRs)
154 if (event.comment) {
155 const number = event.issue?.number || event.pull_request?.number;
156 if (!number) return null;
157 return {
158 owner,
159 repo,
160 number,
161 comment: event.comment.body,
162 eventType: 'issue_comment',
163 issue: event.issue,
164 pullRequest: event.pull_request,
165 };
166 }
167
168 // issues.opened
169 if (event.issue && event.action === 'opened') {
170 return {
171 owner,
172 repo,
173 number: event.issue.number,
174 comment: event.issue.body || '',
175 eventType: 'issue',
176 issue: event.issue,
177 };
178 }
179
180 // pull_request.opened
181 if (event.pull_request && event.action === 'opened') {
182 return {
183 owner,
184 repo,
185 number: event.pull_request.number,
186 comment: event.pull_request.body || '',
187 eventType: 'pull_request',
188 pullRequest: event.pull_request,
189 };
190 }
191
192 return null;
193 }
194
195 /**
196 * Check if text contains @remote-agent mention

Callers 1

handleWebhookMethod · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected