mirror of
https://github.com/anthropics/claude-code-action.git
synced 2026-08-04 18:28:30 +08:00
When a PR originates from a fork, `git fetch origin <branch>` fails because the branch only exists on the fork's remote. Fix: detect cross-repository PRs via the `isCrossRepository` GraphQL field and fetch using `pull/<number>/head:<branch>` refspec instead, which is the standard GitHub mechanism for accessing fork PR branches. Changes: - Add `isCrossRepository` and `headRepository` to PR GraphQL query - Add corresponding fields to GitHubPullRequest type - Branch checkout uses pull ref for fork PRs - Update test fixtures with new fields Co-authored-by: User <user@example.com>
147 lines
2.7 KiB
TypeScript
147 lines
2.7 KiB
TypeScript
// GraphQL queries for GitHub data
|
|
|
|
export const PR_QUERY = `
|
|
query($owner: String!, $repo: String!, $number: Int!) {
|
|
repository(owner: $owner, name: $repo) {
|
|
pullRequest(number: $number) {
|
|
title
|
|
body
|
|
author {
|
|
login
|
|
}
|
|
baseRefName
|
|
headRefName
|
|
headRefOid
|
|
isCrossRepository
|
|
headRepository {
|
|
owner {
|
|
login
|
|
}
|
|
name
|
|
}
|
|
createdAt
|
|
updatedAt
|
|
lastEditedAt
|
|
additions
|
|
deletions
|
|
state
|
|
labels(first: 1) {
|
|
nodes {
|
|
name
|
|
}
|
|
}
|
|
commits(first: 100) {
|
|
totalCount
|
|
nodes {
|
|
commit {
|
|
oid
|
|
message
|
|
author {
|
|
name
|
|
email
|
|
}
|
|
}
|
|
}
|
|
}
|
|
files(first: 100) {
|
|
nodes {
|
|
path
|
|
additions
|
|
deletions
|
|
changeType
|
|
}
|
|
}
|
|
comments(first: 100) {
|
|
nodes {
|
|
id
|
|
databaseId
|
|
body
|
|
author {
|
|
login
|
|
}
|
|
createdAt
|
|
updatedAt
|
|
lastEditedAt
|
|
isMinimized
|
|
}
|
|
}
|
|
reviews(first: 100) {
|
|
nodes {
|
|
id
|
|
databaseId
|
|
author {
|
|
login
|
|
}
|
|
body
|
|
state
|
|
submittedAt
|
|
updatedAt
|
|
lastEditedAt
|
|
comments(first: 100) {
|
|
nodes {
|
|
id
|
|
databaseId
|
|
body
|
|
path
|
|
line
|
|
author {
|
|
login
|
|
}
|
|
createdAt
|
|
updatedAt
|
|
lastEditedAt
|
|
isMinimized
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
|
|
export const ISSUE_QUERY = `
|
|
query($owner: String!, $repo: String!, $number: Int!) {
|
|
repository(owner: $owner, name: $repo) {
|
|
issue(number: $number) {
|
|
title
|
|
body
|
|
author {
|
|
login
|
|
}
|
|
createdAt
|
|
updatedAt
|
|
lastEditedAt
|
|
state
|
|
labels(first: 1) {
|
|
nodes {
|
|
name
|
|
}
|
|
}
|
|
comments(first: 100) {
|
|
nodes {
|
|
id
|
|
databaseId
|
|
body
|
|
author {
|
|
login
|
|
}
|
|
createdAt
|
|
updatedAt
|
|
lastEditedAt
|
|
isMinimized
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
|
|
export const USER_QUERY = `
|
|
query($login: String!) {
|
|
user(login: $login) {
|
|
name
|
|
}
|
|
}
|
|
`;
|