# gitlab-multi-pipeline-radiator

> The missing GitLab build radiator view

Latest version **3.1.4** (published 2019-11-29) · MIT license · 0 weekly downloads

## Install

```sh
npm install gitlab-multi-pipeline-radiator
pnpm add gitlab-multi-pipeline-radiator
yarn add gitlab-multi-pipeline-radiator
bun add gitlab-multi-pipeline-radiator
```

Provides the command `gitlab-radiator`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 3.1.4 |
| Published | 2019-11-29 |
| First published | 2019-11-29 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=8.0.0 |
| Dependencies | 11 |
| Unpacked size | 1.2 MB |
| Known vulnerabilities | 0 (+41 in 6 direct dependencies) |
| Install scripts | no |
| GitHub stars | 0 |
| Author | heikkipora |
| Maintainers | beatrichartz |

## Links

- npm: https://www.npmjs.com/package/gitlab-multi-pipeline-radiator
- Repository: https://github.com/beatrichartz/gitlab-radiator
- Homepage: https://github.com/beatrichartz/gitlab-radiator#readme
- Issues: https://github.com/beatrichartz/gitlab-radiator/issues
- npm.io page: https://npm.io/package/gitlab-multi-pipeline-radiator

## Dependencies (11)

- [esm](https://npm.io/package/esm.md) 3.2.25
- [axios](https://npm.io/package/axios.md) 0.19.0
- [lodash](https://npm.io/package/lodash.md) 4.17.15
- [express](https://npm.io/package/express.md) 4.17.1
- [js-yaml](https://npm.io/package/js-yaml.md) 3.13.1
- [date-fns](https://npm.io/package/date-fns.md) 2.8.1
- [socket.io](https://npm.io/package/socket.io.md) 2.3.0
- [basic-auth](https://npm.io/package/basic-auth.md) 2.0.1
- [compression](https://npm.io/package/compression.md) 1.7.4
- [@babel/runtime](https://npm.io/package/@babel/runtime.md) 7.7.4
- [less-middleware](https://npm.io/package/less-middleware.md) 3.1.0

## Recent versions

- 3.1.4 (latest) — 2019-11-29

## README

# The missing GitLab build radiator view

## Introduction

```gitlab-radiator``` is a small Node.js application for serving a [Jenkins Radiator View](https://wiki.jenkins-ci.org/display/JENKINS/Radiator+View+Plugin) inspired web view of your team's CI pipelines fetched from a GitLab CI installation running locally or remotely.

<img src="https://raw.github.com/heikkipora/gitlab-radiator/master/screenshot.png" width="50%">

[![npm version](https://badge.fury.io/js/gitlab-radiator.svg)](https://badge.fury.io/js/gitlab-radiator)
[![build status](https://travis-ci.org/heikkipora/gitlab-radiator.svg?branch=master)](https://travis-ci.org/heikkipora/gitlab-radiator)

## Pre-requisites

- Node.js v8.0.0 or newer
- A modern web browser
- An account in https://gitlab.com or an onsite installation of the [GitLab software package](https://about.gitlab.com/products).

## Installation

    npm install -g gitlab-radiator

## Usage

Create a configuration file (see [Configuration](#configuration) below) and run:

    gitlab-radiator

And if you have an onsite GitLab with HTTPS and self-signed certificates:

    NODE_TLS_REJECT_UNAUTHORIZED=0 gitlab-radiator

You might prefer providing the CA file location in configuration instead of totally disabling TLS certificate checking.

Then navigate with a browser to http://localhost:3000 - or whatever port you did configure.

## Configuration

```gitlab-radiator``` looks for its mandatory configuration file at ```~/.gitlab-radiator.yml``` by default.
It can be overridden by defining the ```GITLAB_RADIATOR_CONFIG``` environment variable.

Mandatory configuration properties:

- ```gitlabs / url``` - Root URL of your GitLab installation - or that of GitLab SaaS CI
- ```gitlabs / access-token``` - A GitLab access token for allowing access to the GitLab API. One can be generated with GitLab's UI under Profile Settins / Personal Access Tokens. The value can alternatively be defined as `GITLAB_ACCESS_TOKEN` environment variable.

Example yaml syntax:

```
gitlabs:
  -
    access-token: 12invalidtoken12
    url: https://gitlab.com
```

Optional configuration properties:

- ```gitlabs / projects / include``` - Regular expression for inclusion of projects. Default is to include all projects.
- ```gitlabs / projects / exclude``` - Regular expression for exclusion of projects. Default is to exclude no projects.
- ```gitlabs / projects / excludePipelineStatus``` - Array of pipeline statuses, that should be excluded (i.e. hidden) (available statuses are ```running, pending, success, failed, canceled, skipped```).
- ```gitlabs / maxNonFailedJobsVisible``` - Number of non-failed jobs visible for a stage at maximum. Helps with highly concurrent project pipelines becoming uncomfortably high. Default values is unlimited.
- ```gitlabs / caFile``` - CA file location to be passed to the request library when accessing the gitlab instance.
- ```gitlabs / ignoreArchived``` - Ignore archived projects. Default value is `true`
- ```groupSuccessfulProjects``` - If set to `true` projects with successful pipeline status are grouped by namespace. Projects with other pipeline statuses are still rendered seperately. Default value is `false`.
- ```auth / username``` - Enables HTTP basic authentication with the defined username and password.
- ```auth / password``` - Enables HTTP basic authentication with the defined username and password.
- ```projectsOrder``` - Array of project attributes to use for sorting projects. Default value is ```['name']``` (available attributes are ```status, name, id, nameWithoutNamespace, group```).
- ```interval``` - Number of seconds between updateing projects and pipelines from GitLabs. Default value is 10 seconds.
- ```port``` - HTTP port to listen on. Default value is 3000.
- ```zoom``` - View zoom factor (to make your projects fit a display nicely). Default value is 1.0
- ```columns``` - Number of columns to display (to fit more projects on screen). Default value is 1
- ```colors``` - Define some custom colors. Available colors `success-text, success-background, failed-text, failed-background, running-text, running-background, light-text, dark-text, background, project-background, group-background, error-message-text, error-message-background
` (you may have a look at `/public/colors.less`, the colorNames from config will replace value for `@<colorname>-color` less variable)

Example yaml syntax:

```
gitlabs:
  -
    access-token: 12invalidtoken12
    url: https://gitlab.com
    projects:
      exclude: .*/.*-inactive-project
      excludePipelineStatus: ['canceled', 'pending']
    maxNonFailedJobsVisible: 3
projectsOrder: ['status', 'name']
auth:
  username: 'radiator'
  password: 'p455w0rd'
interval: 30
port: 8000
zoom: 0.85
columns: 4
colors:
  success-background: 'rgb(0,255,0)'
```

## Changelog

See [releases](https://github.com/heikkipora/gitlab-radiator/releases).

## Breaking changes from 2.x to 3.0

- Configuration file syntax has changed so that you now can define multiple gitlab instances to poll from. 
E.g. polling from https://gitlab.com and from your own hosted https://gitlab.yourdomain.com instance of gitlab.
Unfortunately all existing configurations for single gitlab polling have to be adjusted slightly.
-  Also config param `order` has moved from `projects.order` to global `projectsOrder`, as the order has effect on all projects and not per gitlab config.

## Contributing

Pull requests are welcome. Kindly check that your code passes ESLint checks by running ```npm run eslint``` first.
Integration tests are (for now) skipped for pull request builds on Travis as they depend on a secret API token.

## Contributors
 - Antti Oittinen ([codegeneralist](https://github.com/codegeneralist))
 - Christian Wagner ([wagner-ch](https://github.com/wagner-ch/))

---
_Source: https://npm.io/package/gitlab-multi-pipeline-radiator · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
