Open mikemowgli opened 3 years ago
Thanks for your interest in this project @mikemowgli.
Briefly looking into this issue, it looks like the error comes from go-git
. After a little bit of research it looks like this is due to the fact go-git
does not support multi-ack (so as many other git client implementations). Azure DevOps (as well as VSTS) in turn does not support older non-multi-ack protocols. All the major competitors like GitHub/GitLab/Bitbucket does support it.
There's a number of issues being reported both in go-git
as well as it's consumers, just to list the few:
It goes on and on to as early as 2017. Together with the fact that Azure DevOps/VSTS seems to be the only one who requires multi-ack, I wouldn't hope for a prompt resolution in go-git
. It seems like even Go itself struggle with that: https://github.com/golang/go/issues/28236
That said, Microsoft seems to be firmly refusing to relax protocol requirements: https://github.com/fluxcd/source-controller/issues/104#issuecomment-703681147
Theoretically it should be possible to swap out go-git
by delegating to git
command, but that would significantly increase complexity, introduce external dependencies as well as cause potential portability issues - so I am not sure I want to go down that route. This backend design allows for external storage implementations though, so maybe someone else will want to go for it. I'm gonna leave this issue open to not to forget to update go-git
once they solve this issue. Other than that there's not much I can help with at this time. Sorry.
Fun fact: looking into the GitHub repo stats you seems to be the first one who's trying to use this backend. And you happen to use Azure DevOps which this backend turns out to have compatibility issues with. What a shame.
my git repo is on Azure DevOps. I tried both ssh and http, and both cli config and terraform backend config, always with the same result:
Just to make sure, I already created the branch, and the tfstate.json file, but got the same result.
Here's my config:
I also have the
TF_BACKEND_HTTP_ENCRYPTION_PASSPHRASE
env var set.When enabling the access logs, I get