Commit 685671f3 authored by Arnaud's avatar Arnaud Committed by Pierre Smeyers
Browse files

fix(avatar): avatar comparison - check HEAD requests return status

parent 25c7b727
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -381,12 +381,14 @@ class Synchronizer:
            )
            return
        
        # Check whether avatar is up-to-date (if update not forced by user)
        if not self.force_update_avatar:
        # Compare avatar size if destination avatar exist and not forced by user
        if dest_avatar_url is not None and not self.force_update_avatar:
            # fetch avatar size
            try:
                src_avatar_size = requests.head(url=src_avatar_api, headers=src_avatar_api_headers, verify=self.ssl_verify).headers['Content-Length']
                dest_avatar_size = requests.head(url=dest_avatar_api, headers=dest_avatar_api_headers, verify=self.ssl_verify).headers['Content-Length']
                src_avatar_response = requests.head(url=src_avatar_api, headers=src_avatar_api_headers, verify=self.ssl_verify)
                _, src_avatar_size = src_avatar_response.raise_for_status(), src_avatar_response.headers['Content-Length']
                dest_avatar_response = requests.head(url=dest_avatar_api, headers=dest_avatar_api_headers, verify=self.ssl_verify)
                _, dest_avatar_size = dest_avatar_response.raise_for_status(), dest_avatar_response.headers['Content-Length']
                # compare avatar size
                if src_avatar_size == dest_avatar_size:
                    # image up-to-date
@@ -394,9 +396,9 @@ class Synchronizer:
                        f"    - avatar image: {AnsiColors.HGRAY}up-to-date{AnsiColors.RESET} ({src_avatar_url} / {dest_avatar_url}) size: {src_avatar_size}"
                    )
                    return
            except GitlabUpdateError as ge:
            except requests.RequestException as ge:
                print(
                    f"    - avatar image: fetch {AnsiColors.HYELLOW}failed{AnsiColors.RESET} ({src_avatar_url}) - assume update needed",
                    f"    - avatar image: compare {AnsiColors.HYELLOW}failed{AnsiColors.RESET} ({src_avatar_url} / {dest_avatar_url}) - assume update needed:",
                    ge,
                )
                # don't rethrow - continue anyway