From feb0d297f43b2274aac1ae1d8272ec5aa65fa3f3 Mon Sep 17 00:00:00 2001 From: George Antonopoulos Date: Wed, 14 Jan 2026 19:39:52 +0000 Subject: [PATCH] Make Link header parsing more robust Split on comma before searching for rel="next" to avoid incorrectly matching page number from a different link (e.g., rel="prev") in multi-link headers. Co-Authored-By: Claude Opus 4.5 --- basecamp_client.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/basecamp_client.py b/basecamp_client.py index 111aad6..0f6dcee 100644 --- a/basecamp_client.py +++ b/basecamp_client.py @@ -435,12 +435,13 @@ class BasecampClient: # Parse Link header for next page next_page = None link_header = response.headers.get('Link', '') - if 'rel="next"' in link_header: - # Extract page number from Link header - # Format: ; rel="next" - match = re.search(r'page=(\d+).*rel="next"', link_header) - if match: - next_page = int(match.group(1)) + # Split by comma to handle multiple links (e.g., rel="prev", rel="next") + for link in link_header.split(','): + if 'rel="next"' in link: + match = re.search(r'page=(\d+)', link) + if match: + next_page = int(match.group(1)) + break return { "comments": response.json(),