Skip to content
GitLab
Explore
Projects
Groups
Snippets
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
m4lab_tv1
Project Page
Commits
c0e9c969
Commit
c0e9c969
authored
4 years ago
by
Rosanny Sihombing
Browse files
Options
Download
Email Patches
Plain Diff
pulling gitlab pages without accessing runners
parent
e21da7e2
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
routes/gitlab.js
+12
-50
routes/gitlab.js
routes/routes-project.js
+51
-59
routes/routes-project.js
with
63 additions
and
109 deletions
+63
-109
routes/gitlab.js
+
12
-
50
View file @
c0e9c969
var
env
=
process
.
env
.
NODE_ENV
||
'
testing
'
const
config
=
require
(
'
../config/config
'
)[
env
]
const
axios
=
require
(
'
axios
'
)
var
gitlab
=
{
get
Repo
s
:
async
function
(
perPage
,
idAfter
)
{
get
Project
s
:
async
function
(
perPage
,
idAfter
)
{
try
{
let
projects
=
await
axios
({
method
:
'
get
'
,
...
...
@@ -11,43 +9,20 @@ var gitlab = {
})
let
data
=
projects
.
data
let
reposArr
=
[]
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
){
// skip template project
if
(
data
[
i
].
name
==
'
template_gitlab_page
'
)
{
continue
}
else
if
(
!
data
[
i
].
tag_list
.
includes
(
'
website
'
))
{
reposArr
.
push
(
data
[
i
])
}
}
return
{
error
:
false
,
data
:
reposArr
}
}
catch
(
err
)
{
return
{
error
:
true
,
data
:
err
}
}
},
getPages
:
async
function
(
perPage
,
idAfter
)
{
try
{
let
projects
=
await
axios
({
method
:
'
get
'
,
url
:
'
https://transfer.hft-stuttgart.de/gitlab/api/v4/projects?visibility=public&pagination=keyset&per_page=
'
+
perPage
+
'
&order_by=id&sort=asc&id_after=
'
+
idAfter
})
let
data
=
projects
.
data
let
pagesArr
=
[]
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
){
// skip template project
if
(
data
[
i
].
name
==
'
template_gitlab_page
'
)
{
if
(
data
[
i
].
name
==
'
page_basic
'
||
data
[
i
].
name
==
'
generic
'
||
data
[
i
].
name
==
'
simple_raw
'
||
data
[
i
].
name
==
'
simple_thesis
'
)
{
continue
}
else
if
(
data
[
i
].
tag_list
.
includes
(
'
website
'
))
{
pagesArr
.
push
(
data
[
i
])
}
else
{
reposArr
.
push
(
data
[
i
])
}
}
return
{
error
:
false
,
data
:
pagesArr
}
data
:
[
reposArr
,
pagesArr
]
}
}
catch
(
err
)
{
return
{
...
...
@@ -55,26 +30,13 @@ var gitlab = {
data
:
err
}
}
},
getProjectsFromRunners
:
async
function
()
{
try
{
let
runner
=
await
axios
({
method
:
'
get
'
,
url
:
'
https://transfer.hft-stuttgart.de/gitlab/api/v4/runners/7
'
,
headers
:
{
'
Authorization
'
:
'
Bearer
'
+
config
.
gitlab
.
token_readWriteProjects
}
})
let
runnerProjects
=
runner
.
data
.
projects
return
{
error
:
false
,
data
:
runnerProjects
}
}
catch
(
err
)
{
return
{
error
:
true
,
data
:
err
}
}
getLatestPipelineStatus
:
async
function
(
projectId
)
{
return
axios
({
method
:
'
get
'
,
url
:
'
https://transfer.hft-stuttgart.de/gitlab/api/v4/projects/
'
+
projectId
+
'
/pipelines
'
})
.
then
(
res
=>
res
.
data
[
0
].
status
)
.
catch
(
err
=>
console
.
error
(
err
))
}
}
...
...
This diff is collapsed.
Click to expand it.
routes/routes-project.js
+
51
-
59
View file @
c0e9c969
...
...
@@ -257,8 +257,8 @@ module.exports = function (app) {
let
firstId
=
0
while
(
isProject
==
true
)
{
let
projects
=
await
gitlab
.
get
Repo
s
(
100
,
firstId
)
let
projectData
=
projects
.
data
let
projects
=
await
gitlab
.
get
Project
s
(
100
,
firstId
)
let
projectData
=
projects
.
data
[
0
]
if
(
projectData
.
length
==
0
)
{
isProject
=
false
...
...
@@ -298,68 +298,60 @@ module.exports = function (app) {
let
isProject
=
true
let
firstId
=
0
let
runnerProjects
=
await
gitlab
.
getProjectsFromRunners
()
if
(
runnerProjects
.
error
)
{
// error response: to be updated
res
.
status
(
500
).
render
(
lang
+
'
/500
'
,
{
error
:
err
})
}
else
{
let
runnerProjectsData
=
runnerProjects
.
data
let
runnerProjectsIds
=
[]
for
(
let
i
=
0
;
i
<
runnerProjectsData
.
length
;
i
++
){
runnerProjectsIds
.
push
(
runnerProjectsData
[
i
].
id
)
}
while
(
isProject
==
true
)
{
let
pages
=
await
gitlab
.
getPages
(
100
,
firstId
)
let
pagesData
=
pages
.
data
while
(
isProject
==
true
)
{
let
projects
=
await
gitlab
.
getProjects
(
100
,
firstId
)
let
pagesData
=
projects
.
data
[
1
]
if
(
pagesData
.
length
==
0
)
{
isProject
=
false
}
else
{
for
(
let
i
=
0
;
i
<
pagesData
.
length
;
i
++
){
// ONLY IF THE PROJECT IS AVAILABLE IN THE RUNNER
if
(
runnerProjectsIds
.
indexOf
(
pagesData
[
i
].
id
)
>
-
1
)
{
// M4_LAB logo for all projects that do not have logo
if
(
pagesData
[
i
].
avatar_url
==
null
)
{
pagesData
[
i
].
avatar_url
=
"
https://m4lab.hft-stuttgart.de/img/footer/M4_LAB_LOGO_Graustufen.png
"
}
// for all projects that have no description
if
(
pagesData
[
i
].
description
==
""
)
{
pagesData
[
i
].
description
=
"
- no description -
"
}
// customize website name
if
(
pagesData
[
i
].
name
==
"
Visualization
"
)
{
pagesData
[
i
].
web_url
=
"
https://transfer.hft-stuttgart.de/pages/visualization
"
}
else
if
(
pagesData
[
i
].
name
==
"
IN-Source
"
)
{
pagesData
[
i
].
web_url
=
"
https://transfer.hft-stuttgart.de/pages/INsource
"
}
else
if
(
pagesData
[
i
].
name
==
"
3DS_Visualization_Cesium
"
)
{
pagesData
[
i
].
web_url
=
"
https://transfer.hft-stuttgart.de/pages/3ds_visualization_cesium
"
}
else
{
pagesData
[
i
].
web_url
=
"
https://transfer.hft-stuttgart.de/pages/
"
+
pagesData
[
i
].
name
}
// remove 'website' from tag list
let
index
=
pagesData
[
i
].
tag_list
.
indexOf
(
'
website
'
)
if
(
index
>
-
1
)
{
pagesData
[
i
].
tag_list
.
splice
(
index
,
1
)
}
if
(
pagesData
.
length
==
0
)
{
isProject
=
false
}
else
{
for
(
let
i
=
0
;
i
<
pagesData
.
length
;
i
++
){
let
status
=
await
gitlab
.
getLatestPipelineStatus
(
pagesData
[
i
].
id
)
if
(
status
)
{
// M4_LAB logo for all projects that do not have logo
if
(
pagesData
[
i
].
avatar_url
==
null
)
{
pagesData
[
i
].
avatar_url
=
"
https://m4lab.hft-stuttgart.de/img/footer/M4_LAB_LOGO_Graustufen.png
"
}
// for all projects that have no description
if
(
pagesData
[
i
].
description
==
""
)
{
pagesData
[
i
].
description
=
"
- no description -
"
}
// customized website name
if
(
pagesData
[
i
].
name
==
"
Visualization
"
)
{
//todo: update URL - user? group?
pagesData
[
i
].
web_url
=
"
https://transfer.hft-stuttgart.de/pages/visualization
"
}
else
if
(
pagesData
[
i
].
name
==
"
IN-Source
"
)
{
//todo: update URL
pagesData
[
i
].
web_url
=
"
https://transfer.hft-stuttgart.de/pages/INsource
"
}
else
if
(
pagesData
[
i
].
name
==
"
3DS_Visualization_Cesium
"
)
{
//todo: update URL
pagesData
[
i
].
web_url
=
"
https://transfer.hft-stuttgart.de/pages/3ds_visualization_cesium
"
}
else
{
//todo: update URL
pagesData
[
i
].
web_url
=
"
https://transfer.hft-stuttgart.de/pages/
"
+
pagesData
[
i
].
name
}
// remove 'website' from tag list
let
index
=
pagesData
[
i
].
tag_list
.
indexOf
(
'
website
'
)
if
(
index
>
-
1
)
{
pagesData
[
i
].
tag_list
.
splice
(
index
,
1
)
}
// fill in pagesArr
let
pages
=
{
logo
:
pagesData
[
i
].
avatar_url
,
name
:
pagesData
[
i
].
name
,
weburl
:
pagesData
[
i
].
web_url
,
desc
:
pagesData
[
i
].
description
,
keywords
:
pagesData
[
i
].
tag_list
}
pagesArr
.
push
(
pages
)
// fill in pagesArr
let
pages
=
{
logo
:
pagesData
[
i
].
avatar_url
,
name
:
pagesData
[
i
].
name
,
weburl
:
pagesData
[
i
].
web_url
,
desc
:
pagesData
[
i
].
description
,
keywords
:
pagesData
[
i
].
tag_list
}
pagesArr
.
push
(
pages
)
}
firstId
=
pagesData
[
pagesData
.
length
-
1
].
id
}
}
firstId
=
pagesData
[
pagesData
.
length
-
1
].
id
}
}
res
.
render
(
lang
+
'
/project/pagesList
'
,
{
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Explore
Projects
Groups
Snippets