• Stan Hu's avatar
    Omit trailing slash when proxying pre-authorized routes with no suffix · 79fc9f2b
    Stan Hu authored
    In https://gitlab.com/gitlab-org/gitlab/-/merge_requests/56731, we
    pulled in the upstream reverse proxy code to rebase a suffix onto a URL
    (e.g. `/api/v4/uploads` -> `/api/v4/uploads/authorize`).
    
    In the case of `info/refs`, `git-upload-pack`, etc. no suffix is added
    for the authorization endpoint. The changes in that merge request would
    cause Workhorse to append a trailing slash when proxying the request to
    Rails. However, in https://gitlab.com/gitlab-org/gitlab/-/issues/330787,
    this broke Geo maintenance mode since the middleware did not strip the
    trailing slash.
    
    To fix this, we restore the behavior and omit the trailing slash if no
    pre-authorize suffix is provided. The absence or present of a trailing
    slash usually does not cause a material difference, but we might as well
    preserve the format of the original request.
    
    Changelog: fixed
    79fc9f2b
api.go 12.6 KB