(Hotfix): Branch pagination for GitLab (#10710)

Co-authored-by: openhands <openhands@all-hands.dev>
This commit is contained in:
Rohit Malhotra
2025-08-29 16:15:15 -04:00
committed by GitHub
parent 4aada82b75
commit 6a544d4274
3 changed files with 8 additions and 6 deletions

View File

@@ -225,7 +225,7 @@ jobs:
SANDBOX_RUNTIME_CONTAINER_IMAGE=$image_name \
TEST_IN_CI=true \
RUN_AS_OPENHANDS=false \
poetry run pytest -n 7 -raRs --reruns 2 --reruns-delay 5 -s ./tests/runtime --ignore=tests/runtime/test_browsergym_envs.py --durations=10
poetry run pytest -n 0 -raRs --reruns 2 --reruns-delay 5 -s ./tests/runtime --ignore=tests/runtime/test_browsergym_envs.py --durations=10
env:
DEBUG: "1"
@@ -284,7 +284,7 @@ jobs:
SANDBOX_RUNTIME_CONTAINER_IMAGE=$image_name \
TEST_IN_CI=true \
RUN_AS_OPENHANDS=true \
poetry run pytest -n 7 -raRs --reruns 2 --reruns-delay 5 -s ./tests/runtime --ignore=tests/runtime/test_browsergym_envs.py --durations=10
poetry run pytest -n 0 -raRs --reruns 2 --reruns-delay 5 -s ./tests/runtime --ignore=tests/runtime/test_browsergym_envs.py --durations=10
env:
DEBUG: "1"

View File

@@ -161,6 +161,9 @@ class GitLabService(BaseGitService, GitService):
if 'Link' in response.headers:
headers['Link'] = response.headers['Link']
if 'X-Total' in response.headers:
headers['X-Total'] = response.headers['X-Total']
content_type = response.headers.get('Content-Type', '')
if 'application/json' in content_type:
return response.json(), headers
@@ -599,12 +602,11 @@ class GitLabService(BaseGitService, GitService):
)
branches.append(branch)
# Parse pagination headers
has_next_page = False
total_count = None
if 'X-Next-Page' in headers and headers['X-Next-Page']:
if headers.get('Link', ''):
has_next_page = True
if 'X-Total' in headers:
try:
total_count = int(headers['X-Total'])

View File

@@ -25,8 +25,8 @@ async def test_get_paginated_branches_gitlab_headers_and_parsing():
]
headers = {
'X-Next-Page': '3', # indicates has next page
'X-Total': '42',
'Link': '<https://gitlab.example.com/api/v4/projects/group%2Frepo/repository/branches?page=3&per_page=2>; rel="next"', # indicates has next page
}
with patch.object(service, '_make_request', return_value=(mock_response, headers)):