gitlab.js 2.59 KB
Newer Older
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
var env = process.env.NODE_ENV || 'testing'
const config = require('../config/config')[env]
const axios = require('axios')

var gitlab = {
    getRepos: 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 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') {
                    continue
                } else if(data[i].tag_list.includes('website')) {
                    pagesArr.push(data[i])
                }
            }
            return {
                error: false,
                data: pagesArr}
        }
        catch (err) {
            return {
                error: true,
                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}
        }
    }
}

module.exports = gitlab