codeintel: De-flake integration tests
Created by: efritz
This should de-flake the codeintel-qa tests by ensuring that for an upload to be successful we wait until the commit graph is updated. This should mean that any failures during query should point to a problem in the backend, not in the timing between the test phases.
An overview of the flow:
- start a goroutine to upload each index file
- wait until we get an id back for each upload, and submit those ids to a watcher
- the watcher will continually poll the API for the upload status
- (new) once an upload is processed, we begin to query the repository commit graph status
- block on each repo until the indexes are finished processing in the background
- (new) block on each repo until the commit graph has been refreshed after all uploads have been processed