我对gitlab和gitlab CI还是很陌生,我已经准备好了可以成功完成的管道。
我的master和development分支受到保护,因此需要合并请求,以便组中的另一个开发人员可以在合并之前检查代码和注释。
我想知道是否有可能在此管道的末尾生成此合并请求。 gitlab存储库中是否有此设置,还是必须创建脚本来实现?
旁注:
在发布之前,我遇到了this section of the gitlab docs
我在Ubuntu 18.04上使用gitlab-runner 11.0.0
答案 0 :(得分:2)
简短回答:当然可以。 GitLab具有出色的API(including creating an MR)。但是我认为走那条路是不好的形式。您应该按照设计使用GitLab。您开始合并请求太晚了。在开始任何工作之前将其启动,并且合并请求将保持打开分支的整个工期。
详细答案: 这是理想的GitLab工作流程:
从根本上来说,这是从GitHub工作方式(我来自那里)开始的,而您没有拥有来告诉人们您在做什么。
编辑:听起来您有兴趣利用API。实际上有一个名为'python-gitlab'的python程序包可以正常工作http://python-gitlab.readthedocs.io/en/stable/gl_objects/mrs.html
package com.example.android.dynamicui;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.AppCompatButton;
import android.view.Gravity;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private int mCount=0;
float den = getResources().getDisplayMetrics().density;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Linear Layout
LinearLayout mLayout = new LinearLayout(this);
mLayout.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT));
mLayout.setOrientation(LinearLayout.VERTICAL);
mLayout.setGravity(Gravity.CENTER);
//Button
AppCompatButton mButton = new AppCompatButton(this);
mButton.setText("Click me!");
LinearLayout.LayoutParams buttonParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
buttonParams.setMargins(0,(int)(15*den + 0.5f),0,0);
mButton.setLayoutParams(buttonParams);
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mCount++;
Toast.makeText(getBaseContext(), "You pressed button for "+mCount+" times!" , Toast.LENGTH_SHORT ).show();
}
});
//Adding button to Linear Layout
mLayout.addView(mButton,buttonParams);
setContentView(mLayout);
}
}
这当然是一个示例,您必须根据实际需要对其进行调整。
答案 1 :(得分:1)
另一种方法可以实现:
Open a merge request with a patch via email
GitLab很长时间以来一直支持通过电子邮件打开合并请求,但是在发送电子邮件之前,分支必须已经存在于服务器上。现在,您可以通过附加一个或多个补丁文件(
.patch
)来仅通过电子邮件打开合并请求。补丁文件是在系统之间共享和传输更改的标准。在以后的GitLab版本中,我们将基于distributed merge requests的基础,该基础将允许GitLab实例与其他Git托管工具之间的合并请求。
请参见documentation和issue。
答案 2 :(得分:0)
为了满足我的简单需求,我仅在管道中添加了最后一个阶段,该阶段实际上执行了一个改编自this post的bash脚本。