mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 12:54:11 +08: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
|