Endpoint that returns repo sync status? For contracted/clustered repos


Reading here about contracting a cluster: https://secure.phabricator.com/book/phabricator/article/cluster_repositories/

It says “Wait a few moments until the cluster synchronizes”. I can see the repo sync state via the UI at …/config/cluster/repositories/, which is great, but I’m trying to remove repo nodes programmatically, so ideally I’d like to check for sync status via conduit.

Is there an endpoint that returns this data?

I’ve looked a almanac.service.search, diffusion.repository.search, repository.query, and played around with transactions, to no avail.

Alternatively, if I wanted to hardcode a sleep, to allow sync to finish, any idea how long I should wait. This is a medium size org (~400 engineers) with 2 repo nodes, to give an idea of traffic.


There’s currently no programmatic access to synchronization status, since no customer has ever asked for this feature.

There’s no guaranteed minimum node synchronization time. You may bring a new node online a moment before another user completes a push of a 999999GB machine_learning_model.txt file, which will then be limited by network speed.

Thanks for the prompt answer. Is it worth me adding this to a feature request backlog or something? Realise that it will probably be low priority, if this is the first request for this end point.

We are deploying Phab to kubernetes, so this would help with graceful pod shutdown when a repo pod gets rescheduled.

Generally, I’ll only implement features upstream if there’s interest from multiple customers. This is a reasonable feature, but not likely to see implementation until that interest arises.