fragment T on Ref { target { __typename ... on Commit { oid url messageHeadline committedDate author { name avatarUrl user { login } } # status { # state # } history(first: 30, after: $after) { pageInfo { hasNextPage endCursor } nodes { oid url messageHeadline committedDate author { name avatarUrl user { login } } # status { # state # } } } } } } query( $owner: String! $name: String! $ref: String! $hasRef: Boolean! $after: String ) { repository(owner: $owner, name: $name) { defaultBranchRef @skip(if: $hasRef) { ...T } ref(qualifiedName: $ref) @include(if: $hasRef) { ...T } } }