https://sonarly.com/issue/35053?type=bug
The github-connector app's issue object has no `isTransferred` field, and the webhook handler does not branch on `action === "transferred"`, so transferred issues are never flagged — consumers relying on this signal for anti-gaming classification are bypassed.
Fix: Added `isTransferred` boolean field tracking to the github-connector's issue module. The fix addresses both producer paths:
**1. Live webhook path** (`handle-webhook.logic-function.ts`): When GitHub fires an `issues` webhook with `action === "transferred"`, the handler now sets `isTransferred: true` on the upsert payload.
**2. Backfill path** (`fetch-issues.ts` GraphQL query): The backfill query now requests `timelineItems(itemTypes: [TRANSFERRED_EVENT], first: 1)` for each issue. The `issueFromGraphql` normalizer checks whether any `TransferredEvent` node exists and sets `isTransferred` accordingly.
**Schema addition** (`issue.object.ts`): Added a `BOOLEAN` field with `defaultValue: false` — existing issues retain `false` until re-synced via backfill, while new transfers are caught in real-time by the webhook.
All downstream types (`IssueCanonical`, `IssueRow`, `batchUpsertIssues` parameter) and queries (`find-by-number-and-repo`) were updated to include the new field.