[API] Base64 file upload corrupts file
I'm the author of feedback-to-gitlab, which basically takes a PNG file and uploads it via Gitlab's API into some repository. Up to v7.11 (or 7.12 which I skipped) everything went well. Since then the base64-encoded file gets corrupted.
Example
curl -k -H "PRIVATE-TOKEN: ..." "https://:server/api/v3/projects/:id/repository/files" -X POST --data-binary "@data.txt"
data.txt:
file_path=test.png&encoding=base64&branch_name=master&commit_message=Manual&content=iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAAAAACPAi4CAAAAB3RJTUUH1QEHDxEhOnxCRgAAAAlwSFlzAAAK8AAACvABQqw0mAAAAXBJREFUeNrtV0FywzAIxJ3+K/pZyctKXqamji0htEik9qEHc3JkWC2LRPCS6Zh9HIy/AP4FwKf75iHEr6eU6Mt1WzIOFjFL7IFkYBx3zWBVkkeXAUCXwl1tvz2qdBLfJrzK7ixNUmVdTIAB8PMtxHgAsFNNkoExRKA+HocriOQAiC+1kShhACwSRGAEwPP96zYIoE8Pmph9qEWWKcCWRAfA/mkfJ0F6dSoA8KW3CRhn3ZHcW2is9VOsAgoqHblncAsyaCgcbqpUZQnWoGTcp/AnuwCoOUjhIvCvN59UBeoPZ/AYyLm3cWVAjxhpqREVaP0974iVwH51d4AVNaSC8TRNNYDQEFdlzDW9ob10YlvGQm0mQ+elSpcCCBtDgQD7cDFojdx7NIeHJkqi96cOGNkfZOroZsHtlPYoR7TOp3Vmfa5+49uoSSRyjfvc0A1kLx4KC6sNSeDieD1AWhrJLe0y+uy7b9GjP83l+m68AJ72AwSRPN5g7uwUAAAAAElFTkSuQmCC
Expected Output
Get file saved in Gitlab:
curl -k -H "PRIVATE-TOKEN: ..." "https://:server/api/v3/projects/:id/repository/files?file_path=test.png&ref=master" | sed -r 's/.*content":"([^"]*)".*/\1/;' > gitlab.out
It differs from the content in the "data.txt":
sed -r 's/.*content=(.*)/\1/g;' data.txt > gitlab.in
Corruption
Seems like Gitlab is putting some 0d
in position 5?
Original:
Gitlab version: