1
+ <?php
2
+
3
+ namespace GitHub ;
4
+
5
+ use Exception ;
6
+ use stdClass ;
7
+ use WeWork \markdown ;
8
+
9
+ class release extends github
10
+ {
11
+ function __construct ($ data = null )
12
+ {
13
+ $ this ->setEvent ("release " );
14
+ if ($ data != null ) {
15
+ $ this ->setData ($ data );
16
+ }
17
+ }
18
+
19
+ /**w
20
+ * @throws Exception
21
+ */
22
+ public function getMessage (): string {
23
+ if (!$ this ->isSet ()) {
24
+ throw new Exception ("未设置data或event " );
25
+ }
26
+ $ data = $ this ->data ;
27
+ $ action = $ data ['action ' ];
28
+ $ message = new markdown ();
29
+
30
+ switch ($ action ) {
31
+ case "released " : //发布
32
+ // 初始化
33
+ $ release = new stdClass ();
34
+ $ release ->web_url = $ data ['release ' ]['html_url ' ];
35
+ $ release ->version = $ data ['release ' ]['tag_name ' ];
36
+ $ release ->name = $ data ['release ' ]['name ' ];
37
+ $ release ->describe = $ data ['release ' ]['body ' ];
38
+ $ release ->download ->tar = $ data ['release ' ]['tarball_url ' ];
39
+ $ release ->download ->zip = $ data ['release ' ]['zipball_url ' ];
40
+
41
+ $ sender = new stdClass ();
42
+ $ sender ->name = $ data ['sender ' ]['login ' ];
43
+ $ sender ->url = $ data ['sender ' ]['html_url ' ];
44
+
45
+ $ repository = new stdClass ();
46
+ $ repository ->name = $ data ['repository ' ]['name ' ];
47
+ $ repository ->isPrivate = (bool )$ data ['repository ' ]['private ' ];
48
+ $ repository ->url = $ data ['repository ' ]['html_url ' ];
49
+
50
+
51
+ $ message ->addTitle ("有新的**Release**发布: " .$ message ->getLink ($ release ->name ,$ release ->web_url ));
52
+ $ message ->addText ($ release ->describe );
53
+ $ message ->addText ("版本: " .$ release ->version );
54
+ $ message ->addLine ();
55
+ $ message ->addText ("发布者: " .$ message ->getLink ($ sender ->name ,$ sender ->url ));
56
+ $ message ->addText ("仓库: " .$ message ->getLink ($ repository ->name ,$ repository ->url ));
57
+ if (!$ repository ->isPrivate ) {
58
+ $ message ->addLine ();
59
+ $ message ->addText ($ message ->getLink ("下载tar.gz格式源代码 " ,$ release ->download ->tar ));
60
+ $ message ->addText ($ message ->getLink ("下载zip格式源代码 " ,$ release ->download ->zip ));
61
+ }
62
+ break ;
63
+ case "prereleased " : //预发布
64
+ // 初始化
65
+ $ release = new stdClass ();
66
+ $ release ->web_url = $ data ['release ' ]['html_url ' ];
67
+ $ release ->name = $ data ['release ' ]['name ' ];
68
+ $ release ->describe = $ data ['release ' ]['body ' ];
69
+ $ release ->download ->tar = $ data ['release ' ]['tarball_url ' ];
70
+ $ release ->download ->zip = $ data ['release ' ]['zipball_url ' ];
71
+
72
+ $ sender = new stdClass ();
73
+ $ sender ->name = $ data ['sender ' ]['login ' ];
74
+ $ sender ->url = $ data ['sender ' ]['html_url ' ];
75
+
76
+ $ repository = new stdClass ();
77
+ $ repository ->name = $ data ['repository ' ]['name ' ];
78
+ $ repository ->isPrivate = (bool )$ data ['repository ' ]['private ' ];
79
+ $ repository ->url = $ data ['repository ' ]['html_url ' ];
80
+
81
+
82
+ $ message ->addTitle ("有新的**Release**预发布: " .$ message ->getLink ($ release ->name ,$ release ->web_url ));
83
+ $ message ->addText ($ release ->describe );
84
+ $ message ->addLine ();
85
+ $ message ->addText ("发布者: " .$ message ->getLink ($ sender ->name ,$ sender ->url ));
86
+ $ message ->addText ("仓库: " .$ message ->getLink ($ repository ->name ,$ repository ->url ));
87
+ if (!$ repository ->isPrivate ) {
88
+ $ message ->addLine ();
89
+ $ message ->addText ($ message ->getLink ("下载tar.gz格式源代码 " ,$ release ->download ->tar ));
90
+ $ message ->addText ($ message ->getLink ("下载zip格式源代码 " ,$ release ->download ->zip ));
91
+ }
92
+ break ;
93
+ case "edited " : //编辑
94
+ // 初始化
95
+ $ release = new stdClass ();
96
+ $ release ->web_url = $ data ['release ' ]['html_url ' ];
97
+ $ release ->name = $ data ['release ' ]['name ' ];
98
+
99
+ $ sender = new stdClass ();
100
+ $ sender ->name = $ data ['sender ' ]['login ' ];
101
+ $ sender ->url = $ data ['sender ' ]['html_url ' ];
102
+
103
+ $ repository = new stdClass ();
104
+ $ repository ->name = $ data ['repository ' ]['name ' ];
105
+ $ repository ->url = $ data ['repository ' ]['html_url ' ];
106
+
107
+
108
+ $ message ->addTitle ("**Release**被编辑: " .$ message ->getLink ($ release ->name ,$ release ->web_url ));
109
+ $ message ->addText ("操作者: " .$ message ->getLink ($ sender ->name ,$ sender ->url ));
110
+ $ message ->addText ("仓库: " .$ message ->getLink ($ repository ->name ,$ repository ->url ));
111
+ break ;
112
+ case "deleted " : //删除
113
+ // 初始化
114
+ $ release = new stdClass ();
115
+ $ release ->web_url = $ data ['release ' ]['html_url ' ];
116
+ $ release ->name = $ data ['release ' ]['name ' ];
117
+
118
+ $ sender = new stdClass ();
119
+ $ sender ->name = $ data ['sender ' ]['login ' ];
120
+ $ sender ->url = $ data ['sender ' ]['html_url ' ];
121
+
122
+ $ repository = new stdClass ();
123
+ $ repository ->name = $ data ['repository ' ]['name ' ];
124
+ $ repository ->url = $ data ['repository ' ]['html_url ' ];
125
+
126
+
127
+ $ message ->addTitle ("**Release**被删除: " .$ message ->getLink ($ release ->name ,$ release ->web_url ));
128
+ $ message ->addText ("操作者: " .$ message ->getLink ($ sender ->name ,$ sender ->url ));
129
+ $ message ->addText ("仓库: " .$ message ->getLink ($ repository ->name ,$ repository ->url ));
130
+ break ;
131
+ default :
132
+ die ();
133
+ }
134
+ return $ message ->message ();
135
+ }
136
+ }
0 commit comments