Resolve "Geo: Optimize replication of project repo keep around refs"

What does this MR do and why?

This MR avoids triggering Repositories::KeepAroundRefsCreatedEvent event on keep_around method when no SHAs are passed. If there are no SHAs then there is no write_ref call:

How to set up and validate locally

  1. In the secondary site, tail geo.log
  2. Comment on an issue.
  3. Observe logs, there shouldn't be any log like the following one: {"severity":"INFO","time":"2022-05-19T00:50:32.648Z","correlation_id":null,"pid":50126,"host":"","class":"Gitlab::Geo::LogCursor::Daemon","message":"Repository update","project_id":6,"source":"repository","resync_repository":true,"resync_wiki":false,"scheduled_at":"2022-05-18T17:50:32.629-07:00","replicable_project":true,"job_id":"d7d2a28e31b6840ff61a69fe","event_id":2,"cursor_delay_s":0.51}

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Related to #362851 (closed)

Edited by Javiera Tapia