Skip to content

Commit 3a6deff

Browse files
committed
src/test: Add test for exclude public repositories
1 parent 187600f commit 3a6deff

File tree

8 files changed

+577
-4
lines changed

8 files changed

+577
-4
lines changed

src/test/java/org/jenkinsci/plugins/github_branch_source/GitHubSCMNavigatorTest.java

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,19 @@ public void fetchOneRepo_BelongingToAuthenticatedUser_ExcludingArchived() throws
221221
assertThat(projectNames, empty());
222222
}
223223

224+
@Test
225+
public void fetchOneRepo_ExcludingPublic() throws Exception {
226+
setCredentials(Collections.singletonList(credentials));
227+
navigator = navigatorForRepoOwner("stephenc", credentials.getId());
228+
navigator.setTraits(Collections.singletonList(new ExcludePublicRepositoriesTrait()));
229+
final Set<String> projectNames = new HashSet<>();
230+
final SCMSourceObserver observer = getObserver(projectNames);
231+
232+
navigator.visitSources(SCMSourceObserver.filter(observer, "yolo-private"));
233+
234+
assertThat(projectNames, containsInAnyOrder("yolo-private"));
235+
}
236+
224237
@Test
225238
public void fetchOneRepo_BelongingToOrg() throws Exception {
226239
final Set<String> projectNames = new HashSet<>();
@@ -313,6 +326,18 @@ public void fetchRepos_BelongingToOrg_ExcludingArchived() throws Exception {
313326
assertThat(projectNames, containsInAnyOrder("basic", "yolo"));
314327
}
315328

329+
@Test
330+
public void fetchRepos_BelongingToOrg_ExcludingPublic() throws Exception {
331+
navigator.setTraits(Collections.singletonList(new ExcludePublicRepositoriesTrait()));
332+
final Set<String> projectNames = new HashSet<>();
333+
final SCMSourceObserver observer = getObserver(projectNames);
334+
335+
navigator.visitSources(
336+
SCMSourceObserver.filter(observer, "Hello-World", "github-branch-source-plugin", "yolo-private"));
337+
338+
assertThat(projectNames, containsInAnyOrder("yolo-private"));
339+
}
340+
316341
@Test
317342
public void fetchRepos_BelongingToUser() throws Exception {
318343
navigator = navigatorForRepoOwner("stephenc", null);
@@ -321,7 +346,7 @@ public void fetchRepos_BelongingToUser() throws Exception {
321346

322347
navigator.visitSources(observer);
323348

324-
assertThat(projectNames, containsInAnyOrder("yolo", "yolo-archived"));
349+
assertThat(projectNames, containsInAnyOrder("yolo", "yolo-archived", "yolo-private"));
325350
}
326351

327352
@Test

src/test/resources/api/__files/body-cloudbeers-repos-v3FBW.json

Lines changed: 94 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -742,6 +742,99 @@
742742
"push": false,
743743
"pull": true
744744
}
745+
}, {
746+
"id": 43041241,
747+
"name": "yolo-private",
748+
"full_name": "cloudbeers/yolo-private",
749+
"owner": {
750+
"login": "cloudbeers",
751+
"id": 4181899,
752+
"avatar_url": "https://avatars.githubusercontent.com/u/4181899?v=3",
753+
"gravatar_id": "",
754+
"url": "https://api.github.com/users/cloudbeers",
755+
"html_url": "https://github.com/cloudbeers",
756+
"followers_url": "https://api.github.com/users/cloudbeers/followers",
757+
"following_url": "https://api.github.com/users/cloudbeers/following{/other_user}",
758+
"gists_url": "https://api.github.com/users/cloudbeers/gists{/gist_id}",
759+
"starred_url": "https://api.github.com/users/cloudbeers/starred{/owner}{/repo}",
760+
"subscriptions_url": "https://api.github.com/users/cloudbeers/subscriptions",
761+
"organizations_url": "https://api.github.com/users/cloudbeers/orgs",
762+
"repos_url": "https://api.github.com/users/cloudbeers/repos",
763+
"events_url": "https://api.github.com/users/cloudbeers/events{/privacy}",
764+
"received_events_url": "https://api.github.com/users/cloudbeers/received_events",
765+
"type": "Organization",
766+
"site_admin": false
767+
},
768+
"private": true,
769+
"html_url": "https://github.com/cloudbeers/yolo-private",
770+
"description": "It lived once, and then it was archived",
771+
"fork": false,
772+
"url": "https://api.github.com/repos/cloudbeers/yolo-private",
773+
"forks_url": "https://api.github.com/repos/cloudbeers/yolo-private/forks",
774+
"keys_url": "https://api.github.com/repos/cloudbeers/yolo-private/keys{/key_id}",
775+
"collaborators_url": "https://api.github.com/repos/cloudbeers/yolo-private/collaborators{/collaborator}",
776+
"teams_url": "https://api.github.com/repos/cloudbeers/yolo-private/teams",
777+
"hooks_url": "https://api.github.com/repos/cloudbeers/yolo-private/hooks",
778+
"issue_events_url": "https://api.github.com/repos/cloudbeers/yolo-private/issues/events{/number}",
779+
"events_url": "https://api.github.com/repos/cloudbeers/yolo-private/events",
780+
"assignees_url": "https://api.github.com/repos/cloudbeers/yolo-private/assignees{/user}",
781+
"branches_url": "https://api.github.com/repos/cloudbeers/yolo-private/branches{/branch}",
782+
"tags_url": "https://api.github.com/repos/cloudbeers/yolo-private/tags",
783+
"blobs_url": "https://api.github.com/repos/cloudbeers/yolo-private/git/blobs{/sha}",
784+
"git_tags_url": "https://api.github.com/repos/cloudbeers/yolo-private/git/tags{/sha}",
785+
"git_refs_url": "https://api.github.com/repos/cloudbeers/yolo-private/git/refs{/sha}",
786+
"trees_url": "https://api.github.com/repos/cloudbeers/yolo-private/git/trees{/sha}",
787+
"statuses_url": "https://api.github.com/repos/cloudbeers/yolo-private/statuses/{sha}",
788+
"languages_url": "https://api.github.com/repos/cloudbeers/yolo-private/languages",
789+
"stargazers_url": "https://api.github.com/repos/cloudbeers/yolo-private/stargazers",
790+
"contributors_url": "https://api.github.com/repos/cloudbeers/yolo-private/contributors",
791+
"subscribers_url": "https://api.github.com/repos/cloudbeers/yolo-private/subscribers",
792+
"subscription_url": "https://api.github.com/repos/cloudbeers/yolo-private/subscription",
793+
"commits_url": "https://api.github.com/repos/cloudbeers/yolo-private/commits{/sha}",
794+
"git_commits_url": "https://api.github.com/repos/cloudbeers/yolo-private/git/commits{/sha}",
795+
"comments_url": "https://api.github.com/repos/cloudbeers/yolo-private/comments{/number}",
796+
"issue_comment_url": "https://api.github.com/repos/cloudbeers/yolo-private/issues/comments{/number}",
797+
"contents_url": "https://api.github.com/repos/cloudbeers/yolo-private/contents/{+path}",
798+
"compare_url": "https://api.github.com/repos/cloudbeers/yolo-private/compare/{base}...{head}",
799+
"merges_url": "https://api.github.com/repos/cloudbeers/yolo-private/merges",
800+
"archive_url": "https://api.github.com/repos/cloudbeers/yolo-private/{archive_format}{/ref}",
801+
"downloads_url": "https://api.github.com/repos/cloudbeers/yolo-private/downloads",
802+
"issues_url": "https://api.github.com/repos/cloudbeers/yolo-private/issues{/number}",
803+
"pulls_url": "https://api.github.com/repos/cloudbeers/yolo-private/pulls{/number}",
804+
"milestones_url": "https://api.github.com/repos/cloudbeers/yolo-private/milestones{/number}",
805+
"notifications_url": "https://api.github.com/repos/cloudbeers/yolo-private/notifications{?since,all,participating}",
806+
"labels_url": "https://api.github.com/repos/cloudbeers/yolo-private/labels{/name}",
807+
"releases_url": "https://api.github.com/repos/cloudbeers/yolo-private/releases{/id}",
808+
"deployments_url": "https://api.github.com/repos/cloudbeers/yolo-private/deployments",
809+
"created_at": "2015-09-24T02:58:30Z",
810+
"updated_at": "2016-12-07T23:55:35Z",
811+
"pushed_at": "2016-12-01T16:07:01Z",
812+
"git_url": "git://github.com/cloudbeers/yolo-private.git",
813+
"ssh_url": "git@github.com:cloudbeers/yolo-private.git",
814+
"clone_url": "https://github.com/cloudbeers/yolo-private.git",
815+
"svn_url": "https://github.com/cloudbeers/yolo-private",
816+
"homepage": "http://yolo-private.example.com",
817+
"size": 3,
818+
"stargazers_count": 0,
819+
"watchers_count": 0,
820+
"language": null,
821+
"has_issues": true,
822+
"has_downloads": true,
823+
"archived": false,
824+
"has_wiki": true,
825+
"has_pages": false,
826+
"forks_count": 3,
827+
"mirror_url": null,
828+
"open_issues_count": 1,
829+
"forks": 3,
830+
"open_issues": 1,
831+
"watchers": 0,
832+
"default_branch": "master",
833+
"permissions": {
834+
"admin": false,
835+
"push": false,
836+
"pull": true
837+
}
745838
}, {
746839
"id": 63128175,
747840
"name": "blueocean-demo-project",
@@ -1300,4 +1393,4 @@
13001393
"push": false,
13011394
"pull": true
13021395
}
1303-
}]
1396+
}]
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
{
2+
"id": 43041241,
3+
"name": "yolo-private",
4+
"full_name": "cloudbeers/yolo-private",
5+
"owner": {
6+
"login": "cloudbeers",
7+
"id": 4181899,
8+
"avatar_url": "https://avatars.githubusercontent.com/u/4181899?v=3",
9+
"gravatar_id": "",
10+
"url": "https://api.github.com/users/cloudbeers",
11+
"html_url": "https://github.com/cloudbeers",
12+
"followers_url": "https://api.github.com/users/cloudbeers/followers",
13+
"following_url": "https://api.github.com/users/cloudbeers/following{/other_user}",
14+
"gists_url": "https://api.github.com/users/cloudbeers/gists{/gist_id}",
15+
"starred_url": "https://api.github.com/users/cloudbeers/starred{/owner}{/repo}",
16+
"subscriptions_url": "https://api.github.com/users/cloudbeers/subscriptions",
17+
"organizations_url": "https://api.github.com/users/cloudbeers/orgs",
18+
"repos_url": "https://api.github.com/users/cloudbeers/repos",
19+
"events_url": "https://api.github.com/users/cloudbeers/events{/privacy}",
20+
"received_events_url": "https://api.github.com/users/cloudbeers/received_events",
21+
"type": "Organization",
22+
"site_admin": false
23+
},
24+
"private": true,
25+
"html_url": "https://github.com/cloudbeers/yolo-private",
26+
"description": "It lived once, and then it was private",
27+
"fork": false,
28+
"url": "https://api.github.com/repos/cloudbeers/yolo-private",
29+
"forks_url": "https://api.github.com/repos/cloudbeers/yolo-private/forks",
30+
"keys_url": "https://api.github.com/repos/cloudbeers/yolo-private/keys{/key_id}",
31+
"collaborators_url": "https://api.github.com/repos/cloudbeers/yolo-private/collaborators{/collaborator}",
32+
"teams_url": "https://api.github.com/repos/cloudbeers/yolo-private/teams",
33+
"hooks_url": "https://api.github.com/repos/cloudbeers/yolo-private/hooks",
34+
"issue_events_url": "https://api.github.com/repos/cloudbeers/yolo-private/issues/events{/number}",
35+
"events_url": "https://api.github.com/repos/cloudbeers/yolo-private/events",
36+
"assignees_url": "https://api.github.com/repos/cloudbeers/yolo-private/assignees{/user}",
37+
"branches_url": "https://api.github.com/repos/cloudbeers/yolo-private/branches{/branch}",
38+
"tags_url": "https://api.github.com/repos/cloudbeers/yolo-private/tags",
39+
"blobs_url": "https://api.github.com/repos/cloudbeers/yolo-private/git/blobs{/sha}",
40+
"git_tags_url": "https://api.github.com/repos/cloudbeers/yolo-private/git/tags{/sha}",
41+
"git_refs_url": "https://api.github.com/repos/cloudbeers/yolo-private/git/refs{/sha}",
42+
"trees_url": "https://api.github.com/repos/cloudbeers/yolo-private/git/trees{/sha}",
43+
"statuses_url": "https://api.github.com/repos/cloudbeers/yolo-private/statuses/{sha}",
44+
"languages_url": "https://api.github.com/repos/cloudbeers/yolo-private/languages",
45+
"stargazers_url": "https://api.github.com/repos/cloudbeers/yolo-private/stargazers",
46+
"contributors_url": "https://api.github.com/repos/cloudbeers/yolo-private/contributors",
47+
"subscribers_url": "https://api.github.com/repos/cloudbeers/yolo-private/subscribers",
48+
"subscription_url": "https://api.github.com/repos/cloudbeers/yolo-private/subscription",
49+
"commits_url": "https://api.github.com/repos/cloudbeers/yolo-private/commits{/sha}",
50+
"git_commits_url": "https://api.github.com/repos/cloudbeers/yolo-private/git/commits{/sha}",
51+
"comments_url": "https://api.github.com/repos/cloudbeers/yolo-private/comments{/number}",
52+
"issue_comment_url": "https://api.github.com/repos/cloudbeers/yolo-private/issues/comments{/number}",
53+
"contents_url": "https://api.github.com/repos/cloudbeers/yolo-private/contents/{+path}",
54+
"compare_url": "https://api.github.com/repos/cloudbeers/yolo-private/compare/{base}...{head}",
55+
"merges_url": "https://api.github.com/repos/cloudbeers/yolo-private/merges",
56+
"archive_url": "https://api.github.com/repos/cloudbeers/yolo-private/{archive_format}{/ref}",
57+
"downloads_url": "https://api.github.com/repos/cloudbeers/yolo-private/downloads",
58+
"issues_url": "https://api.github.com/repos/cloudbeers/yolo-private/issues{/number}",
59+
"pulls_url": "https://api.github.com/repos/cloudbeers/yolo-private/pulls{/number}",
60+
"milestones_url": "https://api.github.com/repos/cloudbeers/yolo-private/milestones{/number}",
61+
"notifications_url": "https://api.github.com/repos/cloudbeers/yolo-private/notifications{?since,all,participating}",
62+
"labels_url": "https://api.github.com/repos/cloudbeers/yolo-private/labels{/name}",
63+
"releases_url": "https://api.github.com/repos/cloudbeers/yolo-private/releases{/id}",
64+
"deployments_url": "https://api.github.com/repos/cloudbeers/yolo-private/deployments",
65+
"created_at": "2015-09-24T02:58:30Z",
66+
"updated_at": "2016-12-07T23:55:35Z",
67+
"pushed_at": "2016-12-01T16:07:01Z",
68+
"git_url": "git://github.com/cloudbeers/yolo-private.git",
69+
"ssh_url": "git@github.com:cloudbeers/yolo-private.git",
70+
"clone_url": "https://github.com/cloudbeers/yolo-private.git",
71+
"svn_url": "https://github.com/cloudbeers/yolo-private",
72+
"homepage": "http://yolo-private.example.com",
73+
"size": 3,
74+
"stargazers_count": 0,
75+
"watchers_count": 0,
76+
"language": null,
77+
"has_issues": true,
78+
"has_downloads": true,
79+
"archived": false,
80+
"has_wiki": true,
81+
"has_pages": false,
82+
"forks_count": 3,
83+
"mirror_url": null,
84+
"open_issues_count": 1,
85+
"forks": 3,
86+
"open_issues": 1,
87+
"watchers": 0,
88+
"default_branch": "master",
89+
"organization": {
90+
"login": "cloudbeers",
91+
"id": 4181899,
92+
"avatar_url": "https://avatars.githubusercontent.com/u/4181899?v=3",
93+
"gravatar_id": "",
94+
"url": "https://api.github.com/users/cloudbeers",
95+
"html_url": "https://github.com/cloudbeers",
96+
"followers_url": "https://api.github.com/users/cloudbeers/followers",
97+
"following_url": "https://api.github.com/users/cloudbeers/following{/other_user}",
98+
"gists_url": "https://api.github.com/users/cloudbeers/gists{/gist_id}",
99+
"starred_url": "https://api.github.com/users/cloudbeers/starred{/owner}{/repo}",
100+
"subscriptions_url": "https://api.github.com/users/cloudbeers/subscriptions",
101+
"organizations_url": "https://api.github.com/users/cloudbeers/orgs",
102+
"repos_url": "https://api.github.com/users/cloudbeers/repos",
103+
"events_url": "https://api.github.com/users/cloudbeers/events{/privacy}",
104+
"received_events_url": "https://api.github.com/users/cloudbeers/received_events",
105+
"type": "Organization",
106+
"site_admin": false
107+
},
108+
"network_count": 3,
109+
"subscribers_count": 2
110+
}

0 commit comments

Comments
 (0)