Я постараюсь сделать это как можно более кратким.
У меня есть сервер GitLab, на котором у меня есть несколько репозиториев. Я использую их API, в частности, получаю файловый архив, используя cURL и PHP. Код ниже:
$file = fopen('archive.zip','w+');
$ch = curl_init();
//connect and login
curl_setopt($ch, CURLOPT_URL, "http://example.com/api/v3/projects");
curl_setopt($ch, CURLOPT_HTTPHEADER, array("PRIVATE-TOKEN: private-token-goes-here"));
//get file archive
curl_setopt($ch, CURLOPT_URL, "http://example.com/api/v3/projects/64/repository/archive");
//auto write to file
curl_setopt($ch, CURLOPT_FILE, $file);
curl_exec($ch);
Файл загружается правильно и сохраняется на диске.
Однако, когда я пытаюсь разархивировать его, MAC OS автоматически добавляет расширение .git.
Если я вручную удалю расширение .git, оно будет правильно распознано как папка, и все будет в порядке (без отсутствующих файлов, без поврежденных файлов и т. Д.).
Это неприятность по меньшей мере. Я не совсем уверен, что мой код неправильный, или что-то не так с API GitLab, или что-то не так, как MAC OS относится к расширению .git. Честно говоря, я даже не знаю, с чего начать отладку. Google и / или SO тоже ничего не значат.
Я использую OS X версии 10.8.4
Я оставлю комментарий с их ссылкой API в комментариях, потому что, очевидно, я не могу использовать ссылки, так как я новый пользователь.
Задача ещё не решена.
Других решений пока нет …