我正在尝试使用gitlab-ci为我的团队设置gitlab worflow.我们有一个Gitlab CE版本10.2.4,gitlab CI配置为在每次推送时运行构建.现在我们想将合并请求工作流与受保护的开发和发布分支一起使用.我们的要求是,如果不首先在gitlab-ci上运行以保持这些分支清洁,则不能将代码合并到这些分支中.
由于gitlab似乎没有自动测试合并请求的可能性,我们唯一的选择是使用Merge commit with semi-linear history
或者Fast-forward merge
.(参见gitlab上的公开问题)
问题是由于这些合并选项需要快进,如果为同一目标分支创建了多个合并请求,则接受一个合并请求会更改目标分支.这会阻止其他合并请求被合并,因为它们不再是快进的.这意味着每次我们接受合并请求时,我们必须将所有其他合并请求与目标分支重新绑定/合并,这非常繁琐.
任何人都Fast-forward merge
可以在gitlab上使用选项解释他们如何处理这个多合并请求场景?或者是否有另一种方法可以确保在合并之前测试代码而不需要快进?
我有一个带有多个“模块”的java程序,每个模块都有自己的一组线程。我希望能够从特定模块 grep 日志,因此我希望每个模块日志都以“[moduleId]”开头。
我尝试使用 log4j 进行以下配置:
log4j.rootLogger=i, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout.ConversionPattern=[%X{moduleId}] %d{yyyy-MM-dd HH:mm:ss} %5p %c{1}:%L %t - %m%n
Run Code Online (Sandbox Code Playgroud)
并使用
MDC.put("moduleId", "module1");
Run Code Online (Sandbox Code Playgroud)
在每个模块线程中。
这工作正常,但我有负责管理模块的代码,我很难使用 MDC.put() 并且这些线程日志以 [] 开头,因为 MDC 变量“moduleId”未定义。
是否可以使用 log4j (或其他 java 记录器)为“moduleId”变量指定默认值?
这样代码
logger.info("1");
MDC.put("moduleId", "module1");
logger.info("2");
Run Code Online (Sandbox Code Playgroud)
日志
[system] ... 1
[module1] ... 2
Run Code Online (Sandbox Code Playgroud)
代替
[] ... 1
[module1] ... 2
Run Code Online (Sandbox Code Playgroud)
还有一种方法可以让多行日志(例如堆栈跟踪)的所有行都以 [moduleId] 开头,而不仅仅是第一行?
我正在使用jboss 7.1和resteasy进行基于令牌的身份验证.我正在使用PreProcessInterceptor来拦截请求,获取令牌,从令牌中检索用户,然后根据放置在方法上的自定义注释检查用户角色.我现在要做的是将User注入方法,如下所示.
@Path("/doStuffWithUser")
@GET
@Requires("ADMIN") // custom annotation
public Response doStuffWithUser(@Context User user);
Run Code Online (Sandbox Code Playgroud)
我知道这与这个问题非常接近,我尝试在链接的github示例中添加了不同的解决方案,但是我找不到从PreProcessInterceptor中注入用户的方法.
谢谢