forked from OpenShiftDemos/nexus
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnexus-functions
148 lines (127 loc) · 5.52 KB
/
nexus-functions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#################################################################
# Functions for Managing Sonatype Nexus #
# #
# Authors: #
# - Jorge Morales https://github.com/jorgemoralespou #
# - Siamak Sadeghianfar https://github.com/siamaksade #
# #
#################################################################
#
# add_nexus2_repo [repo-id] [repo-url] [nexus-username] [nexus-password] [nexus-url]
#
function add_nexus2_repo() {
local _REPO_ID=$1
local _REPO_URL=$2
local _NEXUS_USER=$3
local _NEXUS_PWD=$4
local _NEXUS_URL=$5
read -r -d '' _REPO_JSON << EOM
{
"data": {
"repoType": "proxy",
"id": "$_REPO_ID",
"name": "$_REPO_ID",
"browseable": true,
"indexable": true,
"notFoundCacheTTL": 1440,
"artifactMaxAge": -1,
"metadataMaxAge": 1440,
"itemMaxAge": 1440,
"repoPolicy": "RELEASE",
"provider": "maven2",
"providerRole": "org.sonatype.nexus.proxy.repository.Repository",
"downloadRemoteIndexes": true,
"autoBlockActive": true,
"fileTypeValidation": true,
"exposed": true,
"checksumPolicy": "WARN",
"remoteStorage": {
"remoteStorageUrl": "$_REPO_URL",
"authentication": null,
"connectionSettings": null
}
}
}
EOM
curl -v -f -X POST -H "Accept: application/json" -H "Content-Type: application/json" -d "$_REPO_JSON" -u "$_NEXUS_USER:$_NEXUS_PWD" "$_NEXUS_URL/service/local/repositories"
}
#
# add_nexus2_group_repo [repo-id] [group-id] [nexus-username] [nexus-password] [nexus-url]
#
function add_nexus2_group_repo() {
local _REPO_ID=$1
local _GROUP_ID=$2
local _NEXUS_USER=$3
local _NEXUS_PWD=$4
local _NEXUS_URL=$5
GROUP_JSON=$(curl -s -H "Accept: application/json" -H "Content-Type: application/json" -f -X GET -u "$_NEXUS_USER:$_NEXUS_PWD" "$_NEXUS_URL/service/local/repo_groups/$_GROUP_ID")
GROUP_JSON_WITH_REPO=$(echo $GROUP_JSON | sed "s/\"repositories\":\[/\"repositories\":[{\"id\": \"$_REPO_ID\"},/g")
curl -v -f -X PUT -H "Accept: application/json" -H "Content-Type: application/json" -d "$GROUP_JSON_WITH_REPO" -u "$_NEXUS_USER:$_NEXUS_PWD" "$_NEXUS_URL/service/local/repo_groups/$_GROUP_ID"
}
#
# add_nexus2_redhat_repos [nexus-username] [nexus-password] [nexus-url]
#
function add_nexus2_redhat_repos() {
local _NEXUS_USER=$1
local _NEXUS_PWD=$2
local _NEXUS_URL=$3
add_nexus2_repo redhat-ga https://maven.repository.redhat.com/ga/ $_NEXUS_USER $_NEXUS_PWD $_NEXUS_URL
add_nexus2_repo redhat-ea https://maven.repository.redhat.com/earlyaccess/all/ $_NEXUS_USER $_NEXUS_PWD $_NEXUS_URL
add_nexus2_repo redhat-techpreview https://maven.repository.redhat.com/techpreview/all $_NEXUS_USER $_NEXUS_PWD $_NEXUS_URL
add_nexus2_repo jboss-ce https://repository.jboss.org/nexus/content/groups/public/ $_NEXUS_USER $_NEXUS_PWD $_NEXUS_URL
add_nexus2_group_repo jboss-ce public $_NEXUS_USER $_NEXUS_PWD $_NEXUS_URL
add_nexus2_group_repo redhat-ea public $_NEXUS_USER $_NEXUS_PWD $_NEXUS_URL
add_nexus2_group_repo redhat-techpreview public $_NEXUS_USER $_NEXUS_PWD $_NEXUS_URL
add_nexus2_group_repo redhat-ga public $_NEXUS_USER $_NEXUS_PWD $_NEXUS_URL
}
#
# add_nexus3_repo [repo-id] [repo-url] [nexus-username] [nexus-password] [nexus-url]
#
function add_nexus3_repo() {
local _REPO_ID=$1
local _REPO_URL=$2
local _NEXUS_USER=$3
local _NEXUS_PWD=$4
local _NEXUS_URL=$5
read -r -d '' _REPO_JSON << EOM
{
"name": "$_REPO_ID",
"type": "groovy",
"content": "repository.createMavenProxy('$_REPO_ID','$_REPO_URL')"
}
EOM
curl -v -H "Accept: application/json" -H "Content-Type: application/json" -d "$_REPO_JSON" -u "$_NEXUS_USER:$_NEXUS_PWD" "${_NEXUS_URL}/service/siesta/rest/v1/script/"
curl -v -X POST -H "Content-Type: text/plain" -u "$_NEXUS_USER:$_NEXUS_PWD" "${_NEXUS_URL}/service/siesta/rest/v1/script/$_REPO_ID/run"
}
#
# add_nexus3_group_repo [comma-separated-repo-ids] [group-id] [nexus-username] [nexus-password] [nexus-url]
#
function add_nexus3_group_repo() {
local _REPO_IDS=$1
local _GROUP_ID=$2
local _NEXUS_USER=$3
local _NEXUS_PWD=$4
local _NEXUS_URL=$5
read -r -d '' _REPO_JSON << EOM
{
"name": "$_GROUP_ID",
"type": "groovy",
"content": "repository.createMavenGroup('$_GROUP_ID', '$_REPO_IDS'.split(',').toList())"
}
EOM
curl -v -H "Accept: application/json" -H "Content-Type: application/json" -d "$_REPO_JSON" -u "$_NEXUS_USER:$_NEXUS_PWD" "${_NEXUS_URL}/service/siesta/rest/v1/script/"
curl -v -X POST -H "Content-Type: text/plain" -u "$_NEXUS_USER:$_NEXUS_PWD" "${_NEXUS_URL}/service/siesta/rest/v1/script/$_GROUP_ID/run"
}
#
# add_nexus3_redhat_repos [nexus-username] [nexus-password] [nexus-url]
#
function add_nexus3_redhat_repos() {
local _NEXUS_USER=$1
local _NEXUS_PWD=$2
local _NEXUS_URL=$3
add_nexus3_repo redhat-ga https://maven.repository.redhat.com/ga/ $_NEXUS_USER $_NEXUS_PWD $_NEXUS_URL
add_nexus3_repo redhat-ea https://maven.repository.redhat.com/earlyaccess/all/ $_NEXUS_USER $_NEXUS_PWD $_NEXUS_URL
add_nexus3_repo redhat-techpreview https://maven.repository.redhat.com/techpreview/all $_NEXUS_USER $_NEXUS_PWD $_NEXUS_URL
add_nexus3_repo jboss-ce https://repository.jboss.org/nexus/content/groups/public/ $_NEXUS_USER $_NEXUS_PWD $_NEXUS_URL
add_nexus3_group_repo redhat-ga,redhat-ea,redhat-techpreview,jboss-ce,maven-central,maven-releases,maven-snapshots maven-all-public $_NEXUS_USER $_NEXUS_PWD $_NEXUS_URL
}