An error occurred while loading the file. Please try again.
gitlab.ts 1.48 KiB
import axios from 'axios'
var gitlab = {
    getProjects: async function(perPage:number, idAfter:number) {
        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 = []
            let pagesArr = []
            for(let i = 0; i < data.length; i++){
                // skip template project
                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: [reposArr, pagesArr]}
        catch (err) {
            return {
                error: true,
                data: err}
    getLatestPipelineStatus: async function(projectId:number) {
        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))
export = gitlab