resource/gitlab_repository_file: Mitigate parallelism limitation
This change set implements the following two measures to mitigate / remove the parallelism issues we were having as described in #940 (closed):
- only allow a single
gitlab_repository_file
resource to make an API call (no matter to which project or file) - retry API calls in case of a refresh error
The first mitigates that resources within an apply / destroy are queued and the second mitigates the case when something else outside of terraform changes the repository state. Both combined are good mitigations for the issue at hand.
The drawback of this change is that it'll slow down certain terraform configurations - necessarily and unnecessarily in cases were a files in different repositories / projects are changed, but still queued. I think that's a limitation I'm willing to take for the benefits it provides.
Closes #940 (closed)