当前正在尝试将导出的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的示例。目前不知道我的请求有什么问题。在这里找到文档
暂无答案!
目前还没有任何答案,快来回答吧!