1616import java .util .ArrayList ;
1717import java .util .Arrays ;
1818import java .util .Date ;
19+ import java .util .List ;
1920import java .util .logging .SimpleFormatter ;
2021
2122@ Slf4j
@@ -34,34 +35,52 @@ public class WebhookController {
3435 */
3536 @ PostMapping ("/webhook" )
3637 public String webhookGithub (@ RequestBody GithubWebhookPullVo webhook ) {
37-
3838 log .info ("webhook 入参接收 weChatWebhook {}" , JSON .toJSONString (webhook ));
3939 // 仓库名
4040 String name = webhook .getRepository ().getName ();
41-
42- // 拥有者
43- String owner = webhook .getRepository ().getOwner ().getLogin ();
44- GithubUser ownerUser = JSON .parseObject (HttpUtil .sendGet (GITHUB_API + owner ), GithubUser .class );
45-
46- // 提交者
47- String sender = webhook .getSender ().getLogin ();
48- GithubUser senderUser = JSON .parseObject (HttpUtil .sendGet (GITHUB_API + sender ), GithubUser .class );
49-
50- StringBuffer sb = new StringBuffer ();
5141 SimpleDateFormat simpleFormatter = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss" );
5242 String now = simpleFormatter .format (new Date ());
53- sb .append ("提交者:[" + senderUser .getName () + "]," );
54- sb .append ("于:" + now + "," );
55- sb .append ("向作者:[" + ownerUser .getName () + "]的,远程仓库" + name + "提交代码" );
43+ String content = "" ;
44+ if (webhook .getCommits ().size () > 0 ) {
45+ GithubWebhookPullVo .CommitsDTO commitsDTO = webhook .getCommits ().get (0 );
46+ content += "提交者:[ " + commitsDTO .getCommitter ().getName () + " ] \r \n " +
47+ "时间:[ " + now + " ]\n " +
48+ "向" + "远程仓库 [ " + name + " ]推送代码 \n " +
49+ "提交详情: \n " ;
5650
51+ List <String > addeds = commitsDTO .getAdded ();
52+ if (addeds .size () > 0 ) {
53+ content += "添加文件: \n [\n " ;
54+ for (int i = 0 ; i < addeds .size (); i ++) {
55+ content += (i + 1 ) + "、" + addeds .get (i ) + "\n " ;
56+ }
57+ content += "] , \n " ;
58+ }
59+ List <String > modifieds = commitsDTO .getModified ();
60+ if (modifieds .size () > 0 ) {
61+ content += "修改文件: \n [\n " ;
62+ for (int i = 0 ; i < modifieds .size (); i ++) {
63+ content += (i + 1 ) + "、" + modifieds .get (i ) + "\n " ;
64+ }
65+ content += "] , \n " ;
66+ }
67+ List <String > removeds = commitsDTO .getRemoved ();
68+ if (removeds .size () > 0 ) {
69+ content += "删除文件: \n [\n " ;
70+ for (int i = 0 ; i < removeds .size (); i ++) {
71+ content += (i + 1 ) + "、" + removeds .get (i ) + "\n " ;
72+ }
73+ content += "]" ;
74+ }
75+ }
76+ log .info (content );
5777 WeChatWebhook weChatWebhook = new WeChatWebhook ();
5878 weChatWebhook .setMsgtype ("text" );
5979 WeChatWebhook .TextDTO textDTO = new WeChatWebhook .TextDTO ();
60- textDTO .setContent (sb . toString () );
80+ textDTO .setContent (content );
6181 textDTO .setMentionedList (Arrays .asList ("@all" ));
6282 textDTO .setMentionedMobileList (Arrays .asList ("@all" ));
6383 weChatWebhook .setText (textDTO );
64-
6584 /**
6685 * 组装参数后向企业微信发送webhook请求
6786 */
0 commit comments