gitlab api-import项目

2guxujil  于 2021-09-23  发布在  Java
关注(0)|答案(0)|浏览(135)

当前正在尝试将导出的gitlab项目导入另一个gitlab示例。我收到一个内部服务器错误,没有进一步的信息。
从文件中可以看出,我觉得我的请求是正确的。。
请求文件后(导出功能/i将其写入文件系统):

groupExport: async (gitlabInstance, groupId) => {
        if (!groupId || groupId === '') {
            throw new Error('groupId is needed');
        }

        let API_RESOURCE = `groups/${groupId}/export`;

        try {
            let { body } = await gitlabInstance.post(API_RESOURCE);
            console.log(body);

            let fileBuffer = await utilsHttp
                .overrideGotDefaultsToBuffer(gitlabInstance)
                .get(API_RESOURCE + '/download')
                .buffer();
            console.log(fileBuffer);

            return fileBuffer;
        } catch (error) {
            console.error(error);
            return null;
        }
    }

这是我将文件写入文件系统的方式:

async function writeBufferToFile(buffer, filePath) {
    filePath = filePath || '../tmp/exported-group.tar.gz';
    const fileOutPath = path.join(__dirname, filePath);

    try {
        await fsPromise.writeFile(fileOutPath, buffer);
        console.log('WROTE FILE');
        return true;
    } catch (error) {
        console.log(error);
        throw new Error(error);
    }
}

然后尝试导入到gitlab:

groupImport: async (gitlabInstance, filePath) => {
        const API_RESOURCE = `groups/import`;
        const form = new FormData();

        form.append('name', 'test-import');
        form.append('path', 'test-import');
        form.append('file', `${fs.createReadStream(filePath)}`);
        console.log(form);

        try {
            gitlabInstance.defaults.options = gitlabInstance.mergeOptions(
                gitlabInstance.defaults.options,
                {
                    headers: { 'Content-Type': 'multipart/form-data' },
                },
            );
            let res = await gitlabInstance.post(API_RESOURCE, {
                body: form,
            });
            console.log(res);
            return true;
        } catch (error) {
            console.error(error);
            return null;
        }
    }

结果: HTTPError: Response code 500 (Internal Server Error) 这些文档只提供了一个使用curl的示例。目前不知道我的请求有什么问题。在这里找到文档

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题