Authored by qinchao

githookdocker

package com.ui.ctrl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Sets;
import com.ui.contants.HttpUriContants;
import com.ui.http.HttpRestClient;
import com.ui.model.BaseResponse;
import com.ui.model.MonitAlarmInfo;
import com.ui.model.WebHooksReleaseBO;
import com.ui.model.req.ZkDetailReq;
import com.ui.model.req.ZkTreeReq;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.math.NumberUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -15,8 +21,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import java.util.HashMap;
import java.util.Map;
import java.io.IOException;
import java.util.*;
/**
*
... ... @@ -83,4 +89,62 @@ public class OuterIntfCtrl {
httpClient.defaultPostJson("/maliciousIp/writeMipsInfoToOpsDb",ipsObjs,String.class);
}
/**
* dock自动发布类型的项目
*/
@RequestMapping("/gitWebHook")
@ResponseBody
public BaseResponse gitWebHook(@RequestBody com.alibaba.fastjson.JSONObject jsonObject) throws Exception {
log.info("gitWebHookAppCollectLog get the webhook from git begin --{}", jsonObject.toJSONString());
WebHooksReleaseBO bo=releaseWebHooksNoCommits(jsonObject);
return new BaseResponse(200, "succeed", "本次的jenkinsJOB_ID = " + nextNumber);
}
private WebHooksReleaseBO releaseWebHooksNoCommits(JSONObject jsonObject) {
WebHooksReleaseBO webHooksReleaseBO = new WebHooksReleaseBO();
String object_kind = jsonObject.getString("object_kind");
String ref = jsonObject.getString("ref");
String userName = jsonObject.getString("user_name");
String userEmail = jsonObject.getString("user_email");
Integer total_commits_count = jsonObject.getInteger("total_commits_count");
String projectName = jsonObject.getJSONObject("project").getString("name");
String projectNameSpace = jsonObject.getJSONObject("project").getString("namespace");
String gitUrl = jsonObject.getJSONObject("project").getString("ssh_url");
Set<String> list = Sets.newHashSet();
JSONArray jsonArrays = jsonObject.getJSONArray("commits");
Iterator<Object> it = jsonArrays.iterator();
while (it.hasNext()) {
JSONObject ob = (JSONObject) it.next();
JSONArray jsonArrayAdded = ob.getJSONArray("added");
JSONArray jsonArrayModified = ob.getJSONArray("modified");
JSONArray jsonArrayRemoved = ob.getJSONArray("removed");
addChange(jsonArrayAdded, list);
addChange(jsonArrayModified, list);
addChange(jsonArrayRemoved, list);
}
webHooksReleaseBO.setChangFileForDockerFile(list);
webHooksReleaseBO.setObject_kind(object_kind);
webHooksReleaseBO.setRef(ref);
webHooksReleaseBO.setTotal_commits_count(total_commits_count);
webHooksReleaseBO.setProjectName(projectName);
webHooksReleaseBO.setProjectNameSpace(projectNameSpace);
webHooksReleaseBO.setGitUrl(gitUrl);
webHooksReleaseBO.setUser_name(userName);
webHooksReleaseBO.setUser_email(userEmail);
return webHooksReleaseBO;
}
private void addChange(JSONArray jsonArray, Set<String> list) {
if (Objects.nonNull(jsonArray) && jsonArray.size() > NumberUtils.INTEGER_ZERO) {
for (int i = 0; i < jsonArray.size(); i++) {
String newAdd = jsonArray.get(i).toString();
if (StringUtils.isNotBlank(newAdd)) {
list.add(newAdd);
}
}
}
}
}
... ...
package com.ui.model;
import java.util.Set;
/**
* Created by jimi on 2017/9/18.
*/
public class WebHooksReleaseBO {
private String object_kind;
private String ref;
private Integer total_commits_count;
private Set<String> changFileForDockerFile;
private String projectName ;
private String projectNameSpace ;
private String gitUrl;
private String user_name;
private String user_email;
public String getUser_email() {
return user_email;
}
public void setUser_email(String user_email) {
this.user_email = user_email;
}
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
public String getGitUrl() {
return gitUrl;
}
public void setGitUrl(String gitUrl) {
this.gitUrl = gitUrl;
}
public String getProjectName() {
return projectName;
}
public void setProjectName(String projectName) {
this.projectName = projectName;
}
public String getProjectNameSpace() {
return projectNameSpace;
}
public void setProjectNameSpace(String projectNameSpace) {
this.projectNameSpace = projectNameSpace;
}
public String getObject_kind() {
return object_kind;
}
public void setObject_kind(String object_kind) {
this.object_kind = object_kind;
}
public String getRef() {
return ref;
}
public void setRef(String ref) {
this.ref = ref;
}
public Integer getTotal_commits_count() {
return total_commits_count;
}
public void setTotal_commits_count(Integer total_commits_count) {
this.total_commits_count = total_commits_count;
}
public Set<String> getChangFileForDockerFile() {
return changFileForDockerFile;
}
public void setChangFileForDockerFile(Set<String> changFileForDockerFile) {
this.changFileForDockerFile = changFileForDockerFile;
}
}
... ...