Skip to content

Commit 369e1c4

Browse files
committed
fix FLOW_GIT_BRANCH is missing for pr
1 parent ea1480e commit 369e1c4

File tree

4 files changed

+222
-166
lines changed

4 files changed

+222
-166
lines changed

core/src/test/java/com/flowci/core/test/githook/GitHubConverterTest.java

Lines changed: 67 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package com.flowci.core.test.githook;
1818

1919
import com.flowci.core.common.domain.GitSource;
20+
import com.flowci.core.common.domain.Variables;
2021
import com.flowci.core.githook.converter.GitHubConverter;
2122
import com.flowci.core.githook.converter.TriggerConverter;
2223
import com.flowci.core.githook.domain.*;
@@ -86,6 +87,9 @@ public void should_parse_push_event() {
8687
Assert.assertEquals("2021-12-05T20:59:26+01:00", commit2.getTime());
8788
Assert.assertEquals("gy2006", commit2.getAuthor().getName());
8889
Assert.assertEquals("[email protected]", commit2.getAuthor().getEmail());
90+
91+
var vars = t.toVariableMap();
92+
Assert.assertEquals("master", vars.get(Variables.Git.BRANCH));
8993
}
9094

9195
@Test
@@ -104,74 +108,84 @@ public void should_parse_tag_event() {
104108
Assert.assertEquals("second commit", t.getMessage());
105109
Assert.assertEquals("gy2006", t.getSender().getName());
106110
Assert.assertEquals("[email protected]", t.getSender().getEmail());
111+
112+
var vars = t.toVariableMap();
113+
Assert.assertEquals("v2.1", vars.get(Variables.Git.BRANCH));
107114
}
108115

109116
@Test
110117
public void should_parse_pr_open_event() {
111118
InputStream stream = load("github/webhook_pr_open.json");
112119

113120
Optional<GitTrigger> optional = gitHubConverter.convert(GitHubConverter.PR, stream);
114-
GitPrTrigger trigger = (GitPrTrigger) optional.get();
115-
Assert.assertNotNull(trigger);
121+
GitPrTrigger t = (GitPrTrigger) optional.get();
122+
Assert.assertNotNull(t);
116123

117-
Assert.assertEquals(GitEvent.PR_OPENED, trigger.getEvent());
118-
Assert.assertEquals(GitSource.GITHUB, trigger.getSource());
119-
120-
Assert.assertEquals("2", trigger.getNumber());
121-
Assert.assertEquals("Update settings.gradle", trigger.getTitle());
122-
Assert.assertEquals("pr...", trigger.getBody());
123-
Assert.assertEquals("2017-08-08T03:07:15Z", trigger.getTime());
124-
Assert.assertEquals("https://github.com/yang-guo-2016/Test/pull/2", trigger.getUrl());
125-
Assert.assertEquals("1", trigger.getNumOfCommits());
126-
Assert.assertEquals("1", trigger.getNumOfFileChanges());
127-
Assert.assertEquals(Boolean.FALSE, trigger.getMerged());
128-
129-
Assert.assertEquals("8e7b8fb631ffcae6ae68338d0d16b381fdea4f31", trigger.getHead().getCommit());
130-
Assert.assertEquals("developer", trigger.getHead().getRef());
131-
Assert.assertEquals("yang-guo-2016/Test", trigger.getHead().getRepoName());
132-
Assert.assertEquals("https://github.com/yang-guo-2016/Test", trigger.getHead().getRepoUrl());
133-
134-
Assert.assertEquals("ed6003bb96bd06cc75e38beb1176c5e9123ec607", trigger.getBase().getCommit());
135-
Assert.assertEquals("master", trigger.getBase().getRef());
136-
Assert.assertEquals("yang-guo-2016/Test", trigger.getBase().getRepoName());
137-
Assert.assertEquals("https://github.com/yang-guo-2016/Test", trigger.getBase().getRepoUrl());
138-
139-
Assert.assertEquals("23307997", trigger.getSender().getId());
140-
Assert.assertEquals("yang-guo-2016", trigger.getSender().getUsername());
124+
Assert.assertEquals(GitEvent.PR_OPENED, t.getEvent());
125+
Assert.assertEquals(GitSource.GITHUB, t.getSource());
126+
127+
Assert.assertEquals("2", t.getNumber());
128+
Assert.assertEquals("Update settings.gradle", t.getTitle());
129+
Assert.assertEquals("pr...", t.getBody());
130+
Assert.assertEquals("2017-08-08T03:07:15Z", t.getTime());
131+
Assert.assertEquals("https://github.com/yang-guo-2016/Test/pull/2", t.getUrl());
132+
Assert.assertEquals("1", t.getNumOfCommits());
133+
Assert.assertEquals("1", t.getNumOfFileChanges());
134+
Assert.assertEquals(Boolean.FALSE, t.getMerged());
135+
136+
Assert.assertEquals("8e7b8fb631ffcae6ae68338d0d16b381fdea4f31", t.getHead().getCommit());
137+
Assert.assertEquals("developer", t.getHead().getRef());
138+
Assert.assertEquals("yang-guo-2016/Test", t.getHead().getRepoName());
139+
Assert.assertEquals("https://github.com/yang-guo-2016/Test", t.getHead().getRepoUrl());
140+
141+
Assert.assertEquals("ed6003bb96bd06cc75e38beb1176c5e9123ec607", t.getBase().getCommit());
142+
Assert.assertEquals("master", t.getBase().getRef());
143+
Assert.assertEquals("yang-guo-2016/Test", t.getBase().getRepoName());
144+
Assert.assertEquals("https://github.com/yang-guo-2016/Test", t.getBase().getRepoUrl());
145+
146+
Assert.assertEquals("23307997", t.getSender().getId());
147+
Assert.assertEquals("yang-guo-2016", t.getSender().getUsername());
148+
149+
var vars = t.toVariableMap();
150+
Assert.assertEquals("developer", vars.get(Variables.Git.BRANCH));
141151
}
142152

143153
@Test
144154
public void should_parse_pr_close_event() {
145155
InputStream stream = load("github/webhook_pr_close.json");
146156

147157
Optional<GitTrigger> optional = gitHubConverter.convert(GitHubConverter.PR, stream);
148-
GitPrTrigger trigger = (GitPrTrigger) optional.get();
149-
Assert.assertNotNull(trigger);
158+
GitPrTrigger t = (GitPrTrigger) optional.get();
159+
Assert.assertNotNull(t);
150160

151-
Assert.assertNotNull(trigger);
152-
Assert.assertEquals(GitEvent.PR_MERGED, trigger.getEvent());
153-
Assert.assertEquals(GitSource.GITHUB, trigger.getSource());
154-
155-
Assert.assertEquals("7", trigger.getNumber());
156-
Assert.assertEquals("Update settings.gradle title", trigger.getTitle());
157-
Assert.assertEquals("hello desc", trigger.getBody());
158-
Assert.assertEquals("2017-08-08T06:26:35Z", trigger.getTime());
159-
Assert.assertEquals("https://github.com/yang-guo-2016/Test/pull/7", trigger.getUrl());
160-
Assert.assertEquals("1", trigger.getNumOfCommits());
161-
Assert.assertEquals("1", trigger.getNumOfFileChanges());
162-
Assert.assertEquals(Boolean.TRUE, trigger.getMerged());
163-
164-
Assert.assertEquals("1d1de876084ef656e522f360b88c1e96acf6b806", trigger.getHead().getCommit());
165-
Assert.assertEquals("developer", trigger.getHead().getRef());
166-
Assert.assertEquals("yang-guo-2016/Test", trigger.getHead().getRepoName());
167-
Assert.assertEquals("https://github.com/yang-guo-2016/Test", trigger.getHead().getRepoUrl());
168-
169-
Assert.assertEquals("4e4e3750cd468f245bd9f0f938c4b5f76e1bc5b0", trigger.getBase().getCommit());
170-
Assert.assertEquals("master", trigger.getBase().getRef());
171-
Assert.assertEquals("yang-guo-2016/Test", trigger.getBase().getRepoName());
172-
Assert.assertEquals("https://github.com/yang-guo-2016/Test", trigger.getBase().getRepoUrl());
173-
174-
Assert.assertEquals("23307997", trigger.getSender().getId());
175-
Assert.assertEquals("yang-guo-2016", trigger.getSender().getUsername());
161+
Assert.assertNotNull(t);
162+
Assert.assertEquals(GitEvent.PR_MERGED, t.getEvent());
163+
Assert.assertEquals(GitSource.GITHUB, t.getSource());
164+
165+
Assert.assertEquals("7", t.getNumber());
166+
Assert.assertEquals("Update settings.gradle title", t.getTitle());
167+
Assert.assertEquals("hello desc", t.getBody());
168+
Assert.assertEquals("2017-08-08T06:26:35Z", t.getTime());
169+
Assert.assertEquals("https://github.com/yang-guo-2016/Test/pull/7", t.getUrl());
170+
Assert.assertEquals("1", t.getNumOfCommits());
171+
Assert.assertEquals("1", t.getNumOfFileChanges());
172+
Assert.assertEquals(Boolean.TRUE, t.getMerged());
173+
174+
Assert.assertEquals("1d1de876084ef656e522f360b88c1e96acf6b806", t.getHead().getCommit());
175+
Assert.assertEquals("developer", t.getHead().getRef());
176+
Assert.assertEquals("yang-guo-2016/Test", t.getHead().getRepoName());
177+
Assert.assertEquals("https://github.com/yang-guo-2016/Test", t.getHead().getRepoUrl());
178+
179+
Assert.assertEquals("4e4e3750cd468f245bd9f0f938c4b5f76e1bc5b0", t.getBase().getCommit());
180+
Assert.assertEquals("master", t.getBase().getRef());
181+
Assert.assertEquals("yang-guo-2016/Test", t.getBase().getRepoName());
182+
Assert.assertEquals("https://github.com/yang-guo-2016/Test", t.getBase().getRepoUrl());
183+
184+
Assert.assertEquals("23307997", t.getSender().getId());
185+
Assert.assertEquals("yang-guo-2016", t.getSender().getUsername());
186+
187+
188+
var vars = t.toVariableMap();
189+
Assert.assertEquals("master", vars.get(Variables.Git.BRANCH));
176190
}
177191
}

core/src/test/java/com/flowci/core/test/githook/GitLabConverterTest.java

Lines changed: 49 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,13 @@
1717
package com.flowci.core.test.githook;
1818

1919
import com.flowci.core.common.domain.GitSource;
20+
import com.flowci.core.common.domain.Variables;
2021
import com.flowci.core.githook.converter.GitLabConverter;
2122
import com.flowci.core.githook.converter.TriggerConverter;
2223
import com.flowci.core.githook.domain.*;
2324
import com.flowci.core.githook.domain.GitTrigger.GitEvent;
2425
import com.flowci.core.test.SpringScenario;
26+
import com.flowci.util.StringHelper;
2527
import org.junit.Assert;
2628
import org.junit.Test;
2729
import org.springframework.beans.factory.annotation.Autowired;
@@ -42,17 +44,17 @@ public void should_get_push_trigger_from_gitlab_event() {
4244
Assert.assertTrue(optional.isPresent());
4345
Assert.assertTrue(optional.get() instanceof GitPushTrigger);
4446

45-
GitPushTrigger push = (GitPushTrigger) optional.get();
46-
Assert.assertEquals(GitTrigger.GitEvent.PUSH, push.getEvent());
47-
Assert.assertEquals(GitSource.GITLAB, push.getSource());
48-
Assert.assertEquals("2048650", push.getRepoId());
49-
Assert.assertEquals(3, push.getNumOfCommit());
50-
Assert.assertEquals("master", push.getRef());
51-
Assert.assertEquals("Update .flow.yml test", push.getMessage());
52-
Assert.assertEquals("yang.guo", push.getSender().getName());
47+
GitPushTrigger t = (GitPushTrigger) optional.get();
48+
Assert.assertEquals(GitTrigger.GitEvent.PUSH, t.getEvent());
49+
Assert.assertEquals(GitSource.GITLAB, t.getSource());
50+
Assert.assertEquals("2048650", t.getRepoId());
51+
Assert.assertEquals(3, t.getNumOfCommit());
52+
Assert.assertEquals("master", t.getRef());
53+
Assert.assertEquals("Update .flow.yml test", t.getMessage());
54+
Assert.assertEquals("yang.guo", t.getSender().getName());
5355

5456
// check first commit
55-
var commit1 = push.getCommits().get(0);
57+
var commit1 = t.getCommits().get(0);
5658
Assert.assertEquals("d8e7334543d437c1a889a9187e66d1968280d7d4", commit1.getId());
5759
Assert.assertEquals("Update .flow.yml test", commit1.getMessage());
5860
Assert.assertEquals("2017-10-17T08:23:36Z", commit1.getTime());
@@ -61,7 +63,7 @@ public void should_get_push_trigger_from_gitlab_event() {
6163
Assert.assertEquals("[email protected]", commit1.getAuthor().getEmail());
6264

6365
// check second commit
64-
var commit2 = push.getCommits().get(1);
66+
var commit2 = t.getCommits().get(1);
6567
Assert.assertEquals("0c0726be026a9fec991d7c3f64c2c3fc6babed8c", commit2.getId());
6668
Assert.assertEquals("Update .flow.yml", commit2.getMessage());
6769
Assert.assertEquals("2017-10-17T08:16:21Z", commit2.getTime());
@@ -70,13 +72,16 @@ public void should_get_push_trigger_from_gitlab_event() {
7072
Assert.assertEquals("[email protected]", commit2.getAuthor().getEmail());
7173

7274
// check third commit
73-
var commit3 = push.getCommits().get(2);
75+
var commit3 = t.getCommits().get(2);
7476
Assert.assertEquals("55ef9a6330eecd15132f9ff35e4f8664eb254e88", commit3.getId());
7577
Assert.assertEquals("Update .flow.yml add", commit3.getMessage());
7678
Assert.assertEquals("2017-10-17T07:57:44Z", commit3.getTime());
7779
Assert.assertEquals("https://gitlab.com/yang-guo-2016/kai-web/commit/55ef9a6330eecd15132f9ff35e4f8664eb254e88", commit3.getUrl());
7880
Assert.assertEquals("yang.guo", commit3.getAuthor().getName());
7981
Assert.assertEquals("[email protected]", commit3.getAuthor().getEmail());
82+
83+
var vars = t.toVariableMap();
84+
Assert.assertEquals("master", vars.get(Variables.Git.BRANCH));
8085
}
8186

8287
@Test
@@ -87,19 +92,22 @@ public void should_get_tag_trigger_from_gitlab_event() {
8792
Assert.assertTrue(optional.isPresent());
8893
Assert.assertTrue(optional.get() instanceof GitTagTrigger);
8994

90-
GitTagTrigger tag = (GitTagTrigger) optional.get();
91-
Assert.assertEquals(GitEvent.TAG, tag.getEvent());
92-
Assert.assertEquals(GitSource.GITLAB, tag.getSource());
93-
Assert.assertEquals("2048650", tag.getRepoId());
94-
Assert.assertEquals(1, tag.getNumOfCommit());
95-
Assert.assertEquals("v2.0", tag.getRef());
96-
Assert.assertEquals("test tag push", tag.getMessage());
95+
GitTagTrigger t = (GitTagTrigger) optional.get();
96+
Assert.assertEquals(GitEvent.TAG, t.getEvent());
97+
Assert.assertEquals(GitSource.GITLAB, t.getSource());
98+
Assert.assertEquals("2048650", t.getRepoId());
99+
Assert.assertEquals(1, t.getNumOfCommit());
100+
Assert.assertEquals("v2.0", t.getRef());
101+
Assert.assertEquals("test tag push", t.getMessage());
97102

98-
var commit = tag.getCommits().get(0);
103+
var commit = t.getCommits().get(0);
99104
Assert.assertEquals("1b4d99d54c29a31a92e990e6bac301eea0c1fc94", commit.getId());
100105
Assert.assertEquals("Merge branch 'developer' into 'master'\n\nUpdate package.json title\n\nSee merge request yang-guo-2016/kai-web!1", commit.getMessage());
101106
Assert.assertEquals("yang.guo", commit.getAuthor().getName());
102107
Assert.assertEquals("[email protected]", commit.getAuthor().getEmail());
108+
109+
var vars = t.toVariableMap();
110+
Assert.assertEquals("v2.0", vars.get(Variables.Git.BRANCH));
103111
}
104112

105113
@Test
@@ -110,33 +118,36 @@ public void should_get_pr_open_trigger_from_gitlab_event() {
110118
Assert.assertTrue(optional.isPresent());
111119
Assert.assertTrue(optional.get() instanceof GitPrTrigger);
112120

113-
GitPrTrigger pr = (GitPrTrigger) optional.get();
114-
Assert.assertEquals(GitTrigger.GitEvent.PR_OPENED, pr.getEvent());
115-
Assert.assertEquals(GitSource.GITLAB, pr.getSource());
116-
Assert.assertFalse(pr.getMerged());
117-
Assert.assertEquals("Update package.json title", pr.getTitle());
118-
Assert.assertEquals("pr message", pr.getBody());
119-
Assert.assertEquals("2017-08-08T08:44:54.622Z", pr.getTime());
120-
Assert.assertEquals("https://gitlab.com/yang-guo-2016/kai-web/merge_requests/1", pr.getUrl());
121+
GitPrTrigger t = (GitPrTrigger) optional.get();
122+
Assert.assertEquals(GitTrigger.GitEvent.PR_OPENED, t.getEvent());
123+
Assert.assertEquals(GitSource.GITLAB, t.getSource());
124+
Assert.assertFalse(t.getMerged());
125+
Assert.assertEquals("Update package.json title", t.getTitle());
126+
Assert.assertEquals("pr message", t.getBody());
127+
Assert.assertEquals("2017-08-08T08:44:54.622Z", t.getTime());
128+
Assert.assertEquals("https://gitlab.com/yang-guo-2016/kai-web/merge_requests/1", t.getUrl());
121129

122-
GitPrTrigger.Source from = pr.getHead();
130+
GitPrTrigger.Source from = t.getHead();
123131
Assert.assertEquals("kai-web", from.getRepoName());
124132
Assert.assertEquals("https://gitlab.com/yang-guo-2016/kai-web", from.getRepoUrl());
125133
Assert.assertEquals("developer", from.getRef());
126134
Assert.assertEquals("9e81037427cc1c50641c5ffc7b6c70a487886ed8", from.getCommit());
127135

128-
GitPrTrigger.Source to = pr.getBase();
136+
GitPrTrigger.Source to = t.getBase();
129137
Assert.assertEquals("kai-web", to.getRepoName());
130138
Assert.assertEquals("https://gitlab.com/yang-guo-2016/kai-web", to.getRepoUrl());
131139
Assert.assertEquals("master", to.getRef());
132140
Assert.assertEquals("", to.getCommit());
133141

134-
GitUser sender = pr.getSender();
135-
Assert.assertNull(sender.getEmail());
142+
GitUser sender = t.getSender();
143+
Assert.assertEquals(StringHelper.EMPTY, sender.getEmail());
136144
Assert.assertEquals("yang-guo-2016", sender.getUsername());
137145
Assert.assertEquals(
138146
"https://secure.gravatar.com/avatar/25fc63da4f632d2a2c10724cba3b9efc?s=80\u0026d=identicon",
139147
sender.getAvatarLink());
148+
149+
var vars = t.toVariableMap();
150+
Assert.assertEquals("developer", vars.get(Variables.Git.BRANCH));
140151
}
141152

142153
@Test
@@ -147,9 +158,12 @@ public void should_get_pr_close_trigger_from_gitlab_event() {
147158
Assert.assertTrue(optional.isPresent());
148159
Assert.assertTrue(optional.get() instanceof GitPrTrigger);
149160

150-
GitPrTrigger pr = (GitPrTrigger) optional.get();
151-
Assert.assertEquals(GitEvent.PR_MERGED, pr.getEvent());
152-
Assert.assertEquals(GitSource.GITLAB, pr.getSource());
153-
Assert.assertTrue(pr.getMerged());
161+
GitPrTrigger t = (GitPrTrigger) optional.get();
162+
Assert.assertEquals(GitEvent.PR_MERGED, t.getEvent());
163+
Assert.assertEquals(GitSource.GITLAB, t.getSource());
164+
Assert.assertTrue(t.getMerged());
165+
166+
var vars = t.toVariableMap();
167+
Assert.assertEquals("master", vars.get(Variables.Git.BRANCH));
154168
}
155169
}

0 commit comments

Comments
 (0)