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 CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  ## Pre-requisites
14
14
 
15
- - Node.js v18 or newer
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 Tags
53
+ ### Selecting projects to display based on GitLab Project Topics
54
54
 
55
- Tags can be used, for example, to only include a specific set of projects for a specific display on your wall. Multiple tags can be specified by separating them with a comma.
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/?tags=old,useful`
57
+ Example: `http://localhost:3000/?topics=old,useful`
58
58
 
59
- Specifying an empty tag list `http://localhost:3000/?tags=` selects all projects which do not have any tags. This can be handily used to select "rest of the projects" that have not been tagged to a specific display, for example.
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 updateing projects and pipelines from GitLabs. Default value is 10 seconds.
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))
@@ -2,4 +2,4 @@
2
2
 
3
3
  process.env.NODE_ENV = 'production'
4
4
 
5
- await import('../src/app.js')
5
+ await import('../src/app.ts')
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": "4.4.5",
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.js",
17
- "eslint": "eslint --fix src/* bin/* test/*",
18
- "test": "mocha --timeout 20000 test/*.js test/**/*.js"
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.4.2",
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.1"
53
+ "socket.io": "4.8.3",
54
+ "zod": "4.3.4"
53
55
  },
54
56
  "devDependencies": {
55
- "@eslint/eslintrc": "3.3.3",
56
- "@eslint/js": "9.39.1",
57
- "@types/lodash": "4.17.21",
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
- "@typescript-eslint/eslint-plugin": "8.48.0",
62
- "@typescript-eslint/parser": "8.48.0",
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.1",
71
+ "eslint": "9.39.2",
67
72
  "eslint-plugin-mocha": "11.2.0",
68
73
  "eslint-plugin-react": "7.37.5",
69
- "globals": "16.5.0",
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.0",
74
- "react-dom": "19.2.0",
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
- "webpack": "5.103.0",
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",