Как удалить несколько файлов из GIT, используя createFileCommit в JavaScript - PullRequest
0 голосов
/ 12 января 2019

Я пытаюсь удалить несколько файлов из 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);
        })
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...