Repo timeout settings: treat 0 as nil

Saving repo settings currently seems to always pass `0`. If a timeout is 0 then the worker will actually use it, and error immediately.

This change makes repo settings return `nil` if set to `0`, so the payload passed to the worker should contain `nil`.