Как использовать SSH-ключ GitHub для частных/общедоступных репозиториев в Nodejs для (клонирования, извлечения, отправки и фиксации)

Я попытался использовать Nodegit в том же методе, но получил сообщение об ошибке «Clone.clone, стек: ошибка: клонирование метода вызвало ошибку». или «Аутентификация Github не удалась».

Я пробовал это, но это дает мне сообщение об ошибке ниже

Ошибка: Клонирование метода вызвало ошибку. {errno: -1, errorFunction:'Clone.clone', стек: 'Ошибка: клонирование метода вызвало ошибку.', сообщение: 'Клонирование метода вызвало ошибку.'}

      class GitClient {
    constructor(realname, email, token, username, repoName, branch, local) {
        this.config = {
            branch,
            remote: "SSH URL",
            local,
            username,
            realname,
            email,
            token
        };
        this.cloneOpts = {
            callbacks: {
                certificateCheck: () => { return 0; },
                credentials: (url, username) => {
                    return NodeGit.Cred.sshKeyNew(
                        username,
                        path.join(this.config.local, '.ssh/id_rsa.pub'),
                        path.join(this.config.local, '.ssh/id_rsa'),
                        ''
                    );
                    // return NodeGit.Cred.sshKeyFromAgent(username);
                }
            }
        };
        this.cloneOpts.fetchOpts = { callbacks: this.cloneOpts.callbacks };
    }

    async clone(options) {
        this.cloneOpts.checkoutBranch = options.branch;
        return NodeGit.Clone(options.remote, options.local, this.cloneOpts).then((data) => {
            console.log(data)
            return data;
        }).catch(err => {
            console.log(err);
        });
    }
}

0 ответов

Другие вопросы по тегам