GitHub
recordFromGitHubPullRequest(
event: GitHubPullRequestEvent,
references?: ArtifactRef[],
details?: GitHubPullRequestDetails
): RecordEvent對應器接受已取得的資料。
事件必須描述位於具名 owner/repository 中,已關閉且已合併的提取要求,並包含數字型提取要求身分、作者、時間戳記及 head/base 分支參照。
選用的詳細資料包含明確的提交與檔案事實。
產生的 Record 使用:
kind: 'github.pull_request.merged'- 來自
merged_at的occurred_at - 儲存庫和提取要求資料庫 ID 作為來源身分
- 由
recordId('github', 'pull_request', '<pull-request-id>:merged')產生的穩定 ID - 原樣保留呼叫端提供的產出物參照
提取要求作者是頂層 actor。
若合併者不同,則新增為第二個 actor。
GitHub 使用者的 type 精確等於 Bot 時,會對應為代理程式;其他使用者則對應為人員。
外部 actor ID 格式為 github:<numeric-id>。
Record 的 data 包含提取要求編號、標題、狀態、作者、選用的合併者、建立/更新/合併時間戳記,以及 head/base 參照與 SHA。
輸入若有提供,也會包含標籤名稱、受邀審查者的 actor 參照、將 html_url 值存為 url、提交,以及附帶狀態、新增行數和刪除行數的變更檔名。
對應器會驗證事件與選用的詳細資料,再交由 createRecord 處理。
無效輸入會拋出代碼為 ARTIFACT_INVALID 的 LangDriftError。
它不會:
- 接收 webhook 或呼叫 GitHub API
- 驗證或安裝 GitHub App
- 擷取提交、檔案、使用者或審查
- 從文字敘述擷取 Spec 或 Ticket 連結
- 推斷影響、Vision Target 或 Drift
GitHub 事實會成為 Record。 任何 Drift Event 都仍是獨立且明確的解釋,並由 Evidence 支持。