gitlab项目迁移到gerrit--百分百不会出错的解决终极报错的最后版本

1、在Gerrit上新建项目

2、Gerrit项目配置权限(此处非代码,实在不会配或者报错就给全部的权限)

Reference:refs/*
Push Annotated Tag
Push Signed Tag
Forge Committer Identity
Create Reference
Read
Push

# ssh生成密钥,别问为啥不是rsa的,因为可能会由于ssh版本而报错`在这里插入代码片`
[root@docker tmp]# ssh-keygen -t ed25519

# 获取公钥
[root@docker tmp]# cat /root/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICKEgoJg3IfbXu+Ay1b+3ZTXBPk1Dwxb7YvmPraEcY5Z root@docker

# 添加公钥到gerrit
登录Gerrit, Settings -> SSH Public Key -> Add Key

# 测试连接gerrit
[root@docker tmp]# ssh -p 29418 keke.shan@10.10.1.99

  ****    Welcome to Gerrit Code Review    ****

  Hi keke.shan, you have successfully connected over SSH.

  Unfortunately, interactive shells are disabled.
  To clone a hosted Git repository, use:

  git clone ssh://keke.shan@gerrit.xinyunkeji.com:29418/REPOSITORY_NAME.git
  
# 拉取gitlab的项目
[root@docker tmp]# git clone http://gitlab.xinyunkeji.com/TXX_Group/TXX-V355.git

# 进入
[root@docker tmp]# cd TXX-V355

# 拉下来所有的分支,你也可以查看分支后手动拉取
[root@docker TXX-V355]# for line in `git branch -a | grep remotes | cut -d'/' -f3|grep -v HEAD`
do
    git checkout ${line}
    git pull
done

# 修改地址为gerrit远程仓库地址(一定要用ssh去连接)
[root@docker TXX-V355]# git remote set-url origin ssh://10.10.1.99:29418/TXX_Group/TXX-V355
# http连接可能会报错如下
error: RPC failed; result=22, HTTP code = xxx
fatal: The remote end hung up unepectedly 

# 提交所有分支,这里会失败,查了下好像是本地master和远程gerrit冲突
[root@docker TXX-V355]# git push --all
...
 ! [rejected]          master -> master (fetch first)
error: failed to push some refs to 'ssh://10.10.1.99:29418/TXX_Group/TXX-V355'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

# 允许不相关历史提交,并强制合并
[root@docker TXX-V355]# git pull origin master --allow-unrelated-histories

# 重新提交到远程仓库
[root@docker TXX-V355]# git push origin master

# 提交所有的tag
[root@docker TXX-V355]# git push --tags
  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要通过API在Gerrit中实现给代码审查标签加分或减分,您可以使用Gerrit提供的REST API进行操作。下面是一些基本的步骤: 1. 首先,您需要使用API进行身份验证。您可以使用HTTP基本身份验证或Gerrit提供的OAuth插件来获取访问令牌或身份验证令牌。 2. 确定您要操作的特定变更(change)和代码审查标签(code review label)。 3. 使用REST API中的`POST /changes/{change-id}/revisions/{revision-id}/review`端点来进行代码审查。 - 将`{change-id}`替换为变更的ID或变更号。 - 将`{revision-id}`替换为特定修订版本的ID或修订版本号。 4. 在请求的主体中,传递包含要添加或减少的分数的JSON数据。 - 使用`label`字段指定要操作的标签名称。 - 使用`value`字段指定要添加或减少的分数值。 例如,要给标签"Code-Review"添加1分,您可以发送以下JSON数据: ```json { "label": "Code-Review", "value": 1 } ``` 要减少分数,将`value`字段设置为负值。例如,要减少2分,您可以发送以下JSON数据: ```json { "label": "Code-Review", "value": -2 } ``` 5. 发送HTTP POST请求到适当的URL,执行代码审查操作。 请确保在请求的标头中包含适当的身份验证令牌或访问令牌。 6. 您将收到关于操作结果的响应。如果操作成功,您将获得状态码200或204。 请注意,进行此操作可能需要具有相关权限的用户才能成功执行。确保您具备执行这些操作所需的访问权限。 更多关于Gerrit REST API的信息,请参考Gerrit官方文档:https://gerrit-review.googlesource.com/Documentation/rest-api.html

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值