Я пытаюсь удалить несколько файлов из GIT, используя GIT API bitbucket, и у меня возникают проблемы с определением правильного формата для поля файлов.
Прежде всего, документация по API очень мало помогает: https://bitbucketjs.netlify.com/#api-source-source_createFileCommit
Я использую следующий пакет NPM:
https://www.npmjs.com/package/bitbucket
Он просто указывает, что поле используется для указания файлов, которые будут удалены, если они будут предоставлены, но не найдены при загрузке, это работает нормально, если я пытаюсь удалить только один файл, но как только у меня есть более одного мое удаление не работает.
В любом случае, вот моя функция для создания фиксации файла, в настоящее время я пытаюсь присоединиться к списку файлов, чтобы удалить их через запятую, но это не работает.
createFileCommit(username, repo_slug, branch, message, file_list ) {
return new Promise((resolve, reject) => {
if (! Array.isArray(file_list) )
return reject(new Error('file_list is not an array'));
let FormData = require('form-data')
let files = [];
let _body = new FormData();
for(let i=0;i<file_list.length;++i) {
let file = file_list[i];
if ( file.local_path && fs.existsSync( file.local_path )) {
log.debug("Add:", file );
_body.append( file.repo_path, fs.createReadStream( file.local_path ));
}
else {
log.debug("Delete:", file );
files.push( file.repo_path );
}
}
let params = { _body, username, repo_slug, branch, message, files: files.join(',') };
log.debug("createFileCommit:", params );
bitbucket.source.createFileCommit(params).then(({data}) => {
log.debug("createFileCommit result:", data );
resolve(data);
}).catch((err) => {
log.error("createFileCommit error:", err );
reject(err);
})
});
}