Skip to content

checkConditionals: support comma-separated ETag lists #333

Description

@alecthomas

Follow-up from the ETag support assessment (label: etag-range-followup).

internal/strategy/apiv1.go:checkConditionals compares with exact string equality, so a list-valued If-None-Match: "a", "b" or If-Match: "a", "b" never matches, even though RFC 7232 allows lists.

Work

  • Parse the If-Match / If-None-Match header into individual ETags and match against any entry.
  • Preserve existing * wildcard behaviour.
  • Stored ETags are always strong, so weak-comparison handling is not required.

Acceptance

List-valued If-Match/If-None-Match headers match when any listed ETag matches; single-ETag and * behaviour unchanged. Add table-driven tests covering single, list, and wildcard cases.

Metadata

Metadata

Assignees

No one assigned

    Labels

    etag-range-followupETag/Range support assessment follow-ups (2026-06)

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions