Google::Protobuf classes are leaking into Gitlab::Git
One known case is Gitlab::Git::Commit#parent_ids, which should be Array
but isn't.
[10] pry(main)> repo = Project.first.repository.raw_repository
<snip>
[11] pry(main)> commit = repo.commit
<snip>
[12] pry(main)> commit.parent_ids.class
=> Google::Protobuf::RepeatedField
We should look for other cases too and write tests in gitlab-ce/spec/lib/gitlab/git that assert we have the right types on our fields.
To be a little more concrete, I think we should go through gitaly-proto and look for repeated
fields in (nested) response messages. Then look up where we unpack those messages in gitlab-ce, and make sure (via tests) that we turn all Google::Protobuf::RepeatedField quasi-arrays returned by Gitaly into plain Ruby arrays before returning them to the wider application.
Source: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/17035#note_59394587
Disabled Endpoints: #514 (closed) #657 (closed) #844 (closed) #518 (closed) #820 (closed) #457 (closed) #427 (closed) #459 (closed) #573 (closed)