mirror of
https://github.com/zebrajr/pytorch.git
synced 2025-12-06 00:20:18 +01:00
From `PRCheckSuites` fragment, as it's causes security exception when used with new GITHUB_TOKEN, that will looks as follows
```
RuntimeError: GraphQL query
fragment PRReviews on PullRequestReviewConnection {
nodes {
author {
login
}
bodyText
createdAt
authorAssociation
editor {
login
}
databaseId
url
state
}
pageInfo {
startCursor
hasPreviousPage
}
}
fragment PRCheckSuites on CheckSuiteConnection {
edges {
node {
app {
name
databaseId
}
workflowRun {
workflow {
name
databaseId
}
databaseId
url
}
checkRuns(first: 50) {
nodes {
name
conclusion
detailsUrl
databaseId
title
summary
}
pageInfo {
endCursor
hasNextPage
}
}
conclusion
}
cursor
}
pageInfo {
hasNextPage
}
}
fragment CommitAuthors on PullRequestCommitConnection {
nodes {
commit {
authors(first: 2) {
nodes {
user {
login
}
email
name
}
}
oid
}
}
pageInfo {
endCursor
hasNextPage
}
}
query ($owner: String!, $name: String!, $number: Int!) {
repository(owner: $owner, name: $name) {
pullRequest(number: $number) {
closed
isCrossRepository
author {
login
}
title
body
headRefName
headRepository {
nameWithOwner
}
baseRefName
baseRefOid
baseRepository {
nameWithOwner
isPrivate
defaultBranchRef {
name
}
}
mergeCommit {
oid
}
commits_with_authors: commits(first: 100) {
...CommitAuthors
totalCount
}
commits(last: 1) {
nodes {
commit {
checkSuites(first: 10) {
...PRCheckSuites
}
status {
contexts {
context
state
targetUrl
}
}
oid
}
}
}
changedFiles
files(first: 100) {
nodes {
path
}
pageInfo {
endCursor
hasNextPage
}
}
reviews(last: 100) {
...PRReviews
}
comments(last: 5) {
nodes {
bodyText
createdAt
author {
login
}
authorAssociation
editor {
login
}
databaseId
url
}
pageInfo {
startCursor
hasPreviousPage
}
}
labels(first: 100) {
edges {
node {
name
}
}
}
}
}
}
, args {'name': 'pytorch', 'owner': 'pytorch', 'number': 159820} failed: [{'type': 'FORBIDDEN', 'path': ['repository', 'pullRequest', 'commits', 'nodes', 0, 'commit', 'checkSuites', 'edges', 4, 'node', 'app'], 'extensions': {'saml_failure': False}, 'locations': [{'line': 26, 'column': 7}], 'message': 'Resource not accessible by integration'}]
```
But the same query works fine if executed using one's Personal Access Token
Updated mocks file by running
```
sed -i -e s/a32a7ca3a2f6e2c9de07aef821b0111539758b4ac254f8a3432af32314f94876/8e262b0495bd934d39dda198d4c09144311c5ddd6cca6a227194bd48dbfe7201/ gql_mocks.json
sed -i -e s/157add81c519f614388f3a67e287bdf4fbb1791e6d0bffe312e169d02ac2813f/28349cb4c891bbf85255fab2c33c770baf77c3e02b29ca9a0e4c6c97bed041db/ gql_mocks.json
sed '/"app": {/,+3d' gql_mocks-orig.json >gql_mocks.json
sed '/"app": null/d' gql_mocks-orig.json >gql_mocks.json
```
Undisable offending jobs
Fixes https://github.com/pytorch/pytorch/issues/159894
Pull Request resolved: https://github.com/pytorch/pytorch/pull/160494
Approved by: https://github.com/huydhn
ghstack dependencies: #160490, #160492
87 lines
2.6 KiB
YAML
87 lines
2.6 KiB
YAML
name: Check mergeability of ghstack PR
|
|
|
|
on:
|
|
pull_request:
|
|
types: [opened, synchronize, reopened]
|
|
branches: [gh/**/base]
|
|
|
|
jobs:
|
|
ghstack-mergeability-check:
|
|
if: github.repository_owner == 'pytorch'
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Setup git
|
|
shell: bash
|
|
run: |
|
|
git config --global user.email "pytorchmergebot@users.noreply.github.com"
|
|
git config --global user.name "PyTorch MergeBot"
|
|
git fetch origin main:main
|
|
|
|
- name: Wait for orig branch
|
|
shell: bash
|
|
run: |
|
|
BRANCH="${{ github.base_ref }}"
|
|
echo "$BRANCH"
|
|
BRANCH="${BRANCH%/base}/orig"
|
|
echo "$BRANCH"
|
|
|
|
WAIT_SECONDS=300
|
|
END_WAIT=$((SECONDS+WAIT_SECONDS))
|
|
BRANCH_EXISTS=0
|
|
|
|
while [ $SECONDS -lt $END_WAIT ]; do
|
|
git fetch --prune origin "${BRANCH}" || true
|
|
if git rev-parse --verify "origin/${BRANCH}"; then
|
|
BRANCH_EXISTS=1
|
|
break
|
|
fi
|
|
echo "Waiting for branch ${BRANCH} to exist..."
|
|
sleep 30 # Wait for 30 seconds before retrying
|
|
done
|
|
|
|
if [ $BRANCH_EXISTS -eq 0 ]; then
|
|
echo "Branch ${BRANCH} not found after ${WAIT_SECONDS} seconds."
|
|
echo "Mergeability check failed for infrastructure reasons."
|
|
exit 1
|
|
fi
|
|
|
|
- name: Setup Python
|
|
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
|
|
with:
|
|
python-version: '3.9'
|
|
cache: pip
|
|
architecture: x64
|
|
|
|
- run: pip install pyyaml==6.0.2
|
|
shell: bash
|
|
|
|
- name: Verify mergeability
|
|
shell: bash
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
PR_NUM: ${{ github.event.pull_request.number }}
|
|
run: |
|
|
set -ex
|
|
python3 .github/scripts/trymerge.py --check-mergeability "${PR_NUM}"
|
|
|
|
- name: Print debug info
|
|
if: failure()
|
|
shell: bash
|
|
env:
|
|
PR_NUM: ${{ github.event.pull_request.number }}
|
|
run: |
|
|
{
|
|
echo "# PR $PR_NUM is not mergeable into main"
|
|
echo "To debug, run the diagnostic workflow:"
|
|
echo "https://github.com/pytorch/test-infra/actions/workflows/pr-dependencies-check.yml"
|
|
} >> "$GITHUB_STEP_SUMMARY"
|
|
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}-${{ github.event_name == 'workflow_dispatch' }}
|
|
cancel-in-progress: true
|