gitlab-radiator 4.4.5 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -6
- package/bin/gitlab-radiator.js +1 -1
- package/package.json +27 -19
- package/public/client.js +1 -1
- package/public/client.less +5 -0
- package/public/colors.less +2 -0
- package/public/index.html +0 -1
- package/src/{app.js → app.ts} +17 -17
- package/src/auth.ts +20 -0
- package/src/common/gitlab-types.d.ts +57 -0
- package/src/config.ts +95 -0
- package/src/gitlab/client.ts +34 -0
- package/src/gitlab/index.ts +59 -0
- package/src/gitlab/pipelines.ts +178 -0
- package/src/gitlab/projects.ts +87 -0
- package/src/gitlab/runners.ts +35 -0
- package/src/{less.js → less.ts} +12 -5
- package/src/auth.js +0 -21
- package/src/config.js +0 -44
- package/src/gitlab/client.js +0 -27
- package/src/gitlab/index.js +0 -55
- package/src/gitlab/pipelines.js +0 -119
- package/src/gitlab/projects.js +0 -73
- package/src/gitlab/runners.js +0 -18
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
## Pre-requisites
|
|
14
14
|
|
|
15
|
-
- Node.js
|
|
15
|
+
- Node.js v22.18.0 or newer
|
|
16
16
|
- An account in https://gitlab.com or an onsite installation of the [GitLab software package](https://about.gitlab.com/products).
|
|
17
17
|
|
|
18
18
|
## Installation
|
|
@@ -50,13 +50,13 @@ Want to display a radiator view on your own display with different layout from t
|
|
|
50
50
|
|
|
51
51
|
Example: `http://localhost:3000/?columns=2&zoom=0.8`
|
|
52
52
|
|
|
53
|
-
### Selecting projects to display based on GitLab Project
|
|
53
|
+
### Selecting projects to display based on GitLab Project Topics
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
Topics can be used, for example, to only include a specific set of projects for a specific display on your wall. Multiple topics can be specified by separating them with a comma.
|
|
56
56
|
|
|
57
|
-
Example: `http://localhost:3000/?
|
|
57
|
+
Example: `http://localhost:3000/?topics=old,useful`
|
|
58
58
|
|
|
59
|
-
Specifying an empty tag list `http://localhost:3000/?
|
|
59
|
+
Specifying an empty tag list `http://localhost:3000/?topics=` selects all projects which do not have any topics. This can be handily used to select "rest of the projects" that have not been selected to a specific display, for example.
|
|
60
60
|
|
|
61
61
|
## Configuration
|
|
62
62
|
|
|
@@ -83,14 +83,17 @@ Optional configuration properties:
|
|
|
83
83
|
- `gitlabs / projects / exclude` - Regular expression for exclusion of projects. Default is to exclude no projects.
|
|
84
84
|
- `gitlabs / projects / excludePipelineStatus` - Array of pipeline statuses, that should be excluded (i.e. hidden) (available statuses are `running, pending, success, failed, canceled, skipped`).
|
|
85
85
|
- `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.
|
|
86
|
+
- `gitlabs / branch` - Explicitly select the git branch to show pipelines for. Default value is empty, meaning pipelines for any branch are shown.
|
|
86
87
|
- `gitlabs / caFile` - CA file location to be passed to the request library when accessing the gitlab instance.
|
|
87
88
|
- `gitlabs / ignoreArchived` - Ignore archived projects. Default value is `true`
|
|
89
|
+
- `gitlabs / offlineRunners` - Report any offline CI runners. Set to `all` to include shared runners (requires administrator or auditor access), or `none` to ignore runner status completely. Set to `default` or leave out to report only on group / project runners available to the user.
|
|
88
90
|
- `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`.
|
|
89
91
|
- `horizontal` - If set to `true` jobs are ordered horizontally to stages. Default value is `false`.
|
|
92
|
+
- `rotateRunningPipelines` - Number of seconds between rotating through all currently running pipelines of a project (whenever there are more than one). Default value is 0 (rotation disabled).
|
|
90
93
|
- `auth / username` - Enables HTTP basic authentication with the defined username and password.
|
|
91
94
|
- `auth / password` - Enables HTTP basic authentication with the defined username and password.
|
|
92
95
|
- `projectsOrder` - Array of project attributes to use for sorting projects. Default value is `['name']` (available attributes are `status, name, id, nameWithoutNamespace, group`).
|
|
93
|
-
- `interval` - Number of seconds between
|
|
96
|
+
- `interval` - Number of seconds between updating projects and pipelines from GitLab instances. Default value is 10 seconds.
|
|
94
97
|
- `port` - HTTP port to listen on. Default value is 3000.
|
|
95
98
|
- `zoom` - View zoom factor (to make your projects fit a display nicely). Default value is 1.0
|
|
96
99
|
- `columns` - Number of columns to display (to fit more projects on screen). Default value is 1
|
|
@@ -107,6 +110,7 @@ gitlabs:
|
|
|
107
110
|
exclude: .*/.*-inactive-project
|
|
108
111
|
excludePipelineStatus: ['canceled', 'pending']
|
|
109
112
|
maxNonFailedJobsVisible: 3
|
|
113
|
+
offlineRunners: none
|
|
110
114
|
projectsOrder: ['status', 'name']
|
|
111
115
|
auth:
|
|
112
116
|
username: 'radiator'
|
|
@@ -132,3 +136,4 @@ Tests are run automatically for pull requests by Github Actions against a test p
|
|
|
132
136
|
|
|
133
137
|
- Antti Oittinen ([codegeneralist](https://github.com/codegeneralist))
|
|
134
138
|
- Christian Wagner ([wagner-ch](https://github.com/wagner-ch/))
|
|
139
|
+
- Sakari Laine ([sakarikl](https://github.com/sakarikl))
|
package/bin/gitlab-radiator.js
CHANGED
package/package.json
CHANGED
|
@@ -6,19 +6,21 @@
|
|
|
6
6
|
},
|
|
7
7
|
"type": "module",
|
|
8
8
|
"description": "The missing GitLab build radiator view",
|
|
9
|
-
"version": "
|
|
9
|
+
"version": "5.0.0",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"bin": {
|
|
12
12
|
"gitlab-radiator": "bin/gitlab-radiator.js"
|
|
13
13
|
},
|
|
14
14
|
"scripts": {
|
|
15
15
|
"build": "./build-npm",
|
|
16
|
-
"start": "node src/app.
|
|
17
|
-
"eslint": "eslint
|
|
18
|
-
"
|
|
16
|
+
"start": "node src/app.ts",
|
|
17
|
+
"eslint": "eslint src bin test",
|
|
18
|
+
"fix-eslint": "eslint --fix src bin test",
|
|
19
|
+
"test": "mocha --timeout 20000 test/*.ts",
|
|
20
|
+
"typecheck": "tsc"
|
|
19
21
|
},
|
|
20
22
|
"engines": {
|
|
21
|
-
"node": ">=18"
|
|
23
|
+
"node": ">=22.18.0"
|
|
22
24
|
},
|
|
23
25
|
"repository": {
|
|
24
26
|
"type": "git",
|
|
@@ -45,37 +47,43 @@
|
|
|
45
47
|
"esm": "3.2.25",
|
|
46
48
|
"express": "5.2.1",
|
|
47
49
|
"js-yaml": "4.1.1",
|
|
48
|
-
"less": "4.
|
|
49
|
-
"lodash": "4.17.21",
|
|
50
|
+
"less": "4.5.1",
|
|
50
51
|
"moment": "2.30.1",
|
|
51
52
|
"regenerator-runtime": "0.14.1",
|
|
52
|
-
"socket.io": "4.8.
|
|
53
|
+
"socket.io": "4.8.3",
|
|
54
|
+
"zod": "4.3.4"
|
|
53
55
|
},
|
|
54
56
|
"devDependencies": {
|
|
55
|
-
"@
|
|
56
|
-
"@
|
|
57
|
-
"@types/
|
|
57
|
+
"@types/basic-auth": "1.1.8",
|
|
58
|
+
"@types/chai": "5.2.3",
|
|
59
|
+
"@types/compression": "1.8.1",
|
|
60
|
+
"@types/express": "5.0.6",
|
|
61
|
+
"@types/js-yaml": "4.0.9",
|
|
62
|
+
"@types/less": "3.0.8",
|
|
63
|
+
"@types/mocha": "10.0.10",
|
|
58
64
|
"@types/react": "19.2.7",
|
|
59
65
|
"@types/react-dom": "19.2.3",
|
|
60
66
|
"@types/webpack-env": "1.18.8",
|
|
61
|
-
"@
|
|
62
|
-
"
|
|
63
|
-
"chai": "6.2.1",
|
|
67
|
+
"@types/webpack-hot-middleware": "2.25.12",
|
|
68
|
+
"chai": "6.2.2",
|
|
64
69
|
"core-js": "3.47.0",
|
|
65
70
|
"css-loader": "7.1.2",
|
|
66
|
-
"eslint": "9.39.
|
|
71
|
+
"eslint": "9.39.2",
|
|
67
72
|
"eslint-plugin-mocha": "11.2.0",
|
|
68
73
|
"eslint-plugin-react": "7.37.5",
|
|
69
|
-
"
|
|
74
|
+
"eslint-plugin-react-hooks": "7.0.1",
|
|
75
|
+
"globals": "17.0.0",
|
|
70
76
|
"less-loader": "12.3.0",
|
|
71
77
|
"mocha": "11.7.5",
|
|
72
78
|
"normalize.css": "8.0.1",
|
|
73
|
-
"react": "19.2.
|
|
74
|
-
"react-dom": "19.2.
|
|
79
|
+
"react": "19.2.3",
|
|
80
|
+
"react-dom": "19.2.3",
|
|
81
|
+
"socket.io-client": "4.8.3",
|
|
75
82
|
"style-loader": "4.0.0",
|
|
76
83
|
"ts-loader": "9.5.4",
|
|
77
84
|
"typescript": "5.9.3",
|
|
78
|
-
"
|
|
85
|
+
"typescript-eslint": "8.51.0",
|
|
86
|
+
"webpack": "5.104.1",
|
|
79
87
|
"webpack-cli": "6.0.1",
|
|
80
88
|
"webpack-dev-middleware": "7.4.5",
|
|
81
89
|
"webpack-hot-middleware": "2.26.1",
|