diff --git a/.github/workflows/automation.yml b/.github/workflows/automation.yml
index e69d125c56..5bf60036f6 100644
--- a/.github/workflows/automation.yml
+++ b/.github/workflows/automation.yml
@@ -17,4 +17,5 @@ jobs:
- uses: eps1lon/actions-label-merge-conflict@fd1f295ee7443d13745804bc49fe158e240f6c6e # tag=v2.1.0
with:
dirtyLabel: 'merge conflict'
+ commentOnDirty: 'This pull request has merge conflicts. Please resolve the conflicts so the PR can be successfully reviewed and merged.'
repoToken: ${{ secrets.JF_BOT_TOKEN }}
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index 9d4ab5b257..d9c4eadc27 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -19,13 +19,13 @@ jobs:
language: [ 'javascript' ]
steps:
- name: Checkout repository
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
+ uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0
- name: Initialize CodeQL
- uses: github/codeql-action/init@16964e90ba004cdf0cd845b866b5df21038b7723 # v2.2.6
+ uses: github/codeql-action/init@168b99b3c22180941ae7dbdd5f5c9678ede476ba # v2.2.7
with:
languages: ${{ matrix.language }}
queries: +security-extended
- name: Autobuild
- uses: github/codeql-action/autobuild@16964e90ba004cdf0cd845b866b5df21038b7723 # v2.2.6
+ uses: github/codeql-action/autobuild@168b99b3c22180941ae7dbdd5f5c9678ede476ba # v2.2.7
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@16964e90ba004cdf0cd845b866b5df21038b7723 # v2.2.6
+ uses: github/codeql-action/analyze@168b99b3c22180941ae7dbdd5f5c9678ede476ba # v2.2.7
diff --git a/.github/workflows/commands.yml b/.github/workflows/commands.yml
index 4f78affa21..8707e1e1ea 100644
--- a/.github/workflows/commands.yml
+++ b/.github/workflows/commands.yml
@@ -18,7 +18,7 @@ jobs:
comment-id: ${{ github.event.comment.id }}
reactions: '+1'
- name: Checkout the latest code
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
+ uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0
with:
token: ${{ secrets.JF_BOT_TOKEN }}
fetch-depth: 0
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index 4d8519501c..376a215b94 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -13,7 +13,7 @@ jobs:
steps:
- name: Check out Git repository
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
+ uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0
- name: Setup node environment
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0
@@ -37,7 +37,7 @@ jobs:
steps:
- name: Check out Git repository
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
+ uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0
- name: Setup node environment
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0
@@ -58,7 +58,7 @@ jobs:
steps:
- name: Check out Git repository
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
+ uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0
- name: Setup node environment
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0
@@ -82,7 +82,7 @@ jobs:
steps:
- name: Check out Git repository
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
+ uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0
- name: Setup node environment
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0
diff --git a/.github/workflows/repo-stale.yaml b/.github/workflows/repo-stale.yaml
index 119c24f9cb..34b8976a1f 100644
--- a/.github/workflows/repo-stale.yaml
+++ b/.github/workflows/repo-stale.yaml
@@ -1,18 +1,24 @@
-name: Issue Stale Check
+name: Stale Check
on:
schedule:
- cron: '30 1 * * *'
workflow_dispatch:
+permissions:
+ issues: write
+ pull-requests: write
+
jobs:
- stale:
+ issues:
+ name: Check issues
runs-on: ubuntu-latest
if: ${{ contains(github.repository, 'jellyfin/') }}
steps:
- uses: actions/stale@6f05e4244c9a0b2ed3401882b05d701dd0a7289b # v7.0.0
with:
repo-token: ${{ secrets.JF_BOT_TOKEN }}
+ operations-per-run: 75
days-before-stale: 120
days-before-pr-stale: -1
days-before-close: 21
@@ -25,3 +31,21 @@ jobs:
If you're the original submitter of this issue, please comment confirming if this issue still affects you in the latest release or master branch, or close the issue if it has been fixed. If you're another user also affected by this bug, please comment confirming so. Either action will remove the stale label.
This bot exists to prevent issues from becoming stale and forgotten. Jellyfin is always moving forward, and bugs are often fixed as side effects of other changes. We therefore ask that bug report authors remain vigilant about their issues to ensure they are closed if fixed, or re-confirmed - perhaps with fresh logs or reproduction examples - regularly. If you have any questions you can reach us on [Matrix or Social Media](https://jellyfin.org/contact).
+
+ prs-conflicts:
+ name: Check PRs with merge conflicts
+ runs-on: ubuntu-latest
+ if: ${{ contains(github.repository, 'jellyfin/') }}
+ steps:
+ - uses: actions/stale@6f05e4244c9a0b2ed3401882b05d701dd0a7289b # v7.0.0
+ with:
+ repo-token: ${{ secrets.JF_BOT_TOKEN }}
+ operations-per-run: 75
+ # The merge conflict action will remove the label when updated
+ remove-stale-when-updated: false
+ days-before-stale: -1
+ days-before-close: 90
+ days-before-issue-close: -1
+ stale-pr-label: merge conflict
+ close-pr-message: |-
+ This PR has been closed due to having unresolved merge conflicts.
diff --git a/.github/workflows/tsc.yml b/.github/workflows/tsc.yml
index 2b1b3bf594..2ca9e29d68 100644
--- a/.github/workflows/tsc.yml
+++ b/.github/workflows/tsc.yml
@@ -13,7 +13,7 @@ jobs:
steps:
- name: Check out Git repository
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # v3
+ uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0
- name: Setup node environment
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0
diff --git a/package-lock.json b/package-lock.json
index 38370c79c9..d775fbed38 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -30,7 +30,7 @@
"flv.js": "1.6.2",
"headroom.js": "0.12.0",
"history": "5.3.0",
- "hls.js": "1.3.4",
+ "hls.js": "1.2.4",
"intersection-observer": "0.12.2",
"jellyfin-apiclient": "1.10.0",
"jquery": "3.6.3",
@@ -93,7 +93,7 @@
"expose-loader": "4.0.0",
"html-loader": "4.2.0",
"html-webpack-plugin": "5.5.0",
- "mini-css-extract-plugin": "2.7.2",
+ "mini-css-extract-plugin": "2.7.3",
"postcss": "8.4.21",
"postcss-loader": "7.0.2",
"postcss-preset-env": "8.0.1",
@@ -109,7 +109,7 @@
"stylelint-scss": "4.4.0",
"ts-loader": "9.4.2",
"typescript": "4.9.5",
- "webpack": "5.75.0",
+ "webpack": "5.76.0",
"webpack-cli": "5.0.1",
"webpack-dev-server": "4.11.1",
"webpack-merge": "5.8.0",
@@ -8487,9 +8487,9 @@
}
},
"node_modules/hls.js": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.3.4.tgz",
- "integrity": "sha512-iFEwVqtEDk6sKotcTwtJ5OMo/nuDTk9PrpB8FI2J2WYf8EriTVfR4FaK0aNyYtwbYeRSWCXJKlz23xeREdlNYg=="
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.2.4.tgz",
+ "integrity": "sha512-yC3K79Kzq1W+OgjT12JxKMDXv9DbfvulppxmPBl7D04SaTyd2IwWk5eNASQV1mUaPlKbjr16yI9292qpSGo0ig=="
},
"node_modules/hoist-non-react-statics": {
"version": "3.3.2",
@@ -10435,9 +10435,9 @@
}
},
"node_modules/mini-css-extract-plugin": {
- "version": "2.7.2",
- "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.2.tgz",
- "integrity": "sha512-EdlUizq13o0Pd+uCp+WO/JpkLvHRVGt97RqfeGhXqAcorYo1ypJSpkV+WDT0vY/kmh/p7wRdJNJtuyK540PXDw==",
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.3.tgz",
+ "integrity": "sha512-CD9cXeKeXLcnMw8FZdtfrRrLaM7gwCl4nKuKn2YkY2Bw5wdlB8zU2cCzw+w2zS9RFvbrufTBkMCJACNPwqQA0w==",
"dev": true,
"dependencies": {
"schema-utils": "^4.0.0"
@@ -18396,9 +18396,9 @@
"dev": true
},
"node_modules/webpack": {
- "version": "5.75.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz",
- "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==",
+ "version": "5.76.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.0.tgz",
+ "integrity": "sha512-l5sOdYBDunyf72HW8dF23rFtWq/7Zgvt/9ftMof71E/yUb1YLOBmTgA2K4vQthB3kotMrSj609txVE0dnr2fjA==",
"devOptional": true,
"dependencies": {
"@types/eslint-scope": "^3.7.3",
@@ -25439,9 +25439,9 @@
}
},
"hls.js": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.3.4.tgz",
- "integrity": "sha512-iFEwVqtEDk6sKotcTwtJ5OMo/nuDTk9PrpB8FI2J2WYf8EriTVfR4FaK0aNyYtwbYeRSWCXJKlz23xeREdlNYg=="
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.2.4.tgz",
+ "integrity": "sha512-yC3K79Kzq1W+OgjT12JxKMDXv9DbfvulppxmPBl7D04SaTyd2IwWk5eNASQV1mUaPlKbjr16yI9292qpSGo0ig=="
},
"hoist-non-react-statics": {
"version": "3.3.2",
@@ -26875,9 +26875,9 @@
"dev": true
},
"mini-css-extract-plugin": {
- "version": "2.7.2",
- "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.2.tgz",
- "integrity": "sha512-EdlUizq13o0Pd+uCp+WO/JpkLvHRVGt97RqfeGhXqAcorYo1ypJSpkV+WDT0vY/kmh/p7wRdJNJtuyK540PXDw==",
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.3.tgz",
+ "integrity": "sha512-CD9cXeKeXLcnMw8FZdtfrRrLaM7gwCl4nKuKn2YkY2Bw5wdlB8zU2cCzw+w2zS9RFvbrufTBkMCJACNPwqQA0w==",
"dev": true,
"requires": {
"schema-utils": "^4.0.0"
@@ -32855,9 +32855,9 @@
"dev": true
},
"webpack": {
- "version": "5.75.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz",
- "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==",
+ "version": "5.76.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.0.tgz",
+ "integrity": "sha512-l5sOdYBDunyf72HW8dF23rFtWq/7Zgvt/9ftMof71E/yUb1YLOBmTgA2K4vQthB3kotMrSj609txVE0dnr2fjA==",
"devOptional": true,
"requires": {
"@types/eslint-scope": "^3.7.3",
diff --git a/package.json b/package.json
index d876adea3b..0b6aadd097 100644
--- a/package.json
+++ b/package.json
@@ -44,7 +44,7 @@
"expose-loader": "4.0.0",
"html-loader": "4.2.0",
"html-webpack-plugin": "5.5.0",
- "mini-css-extract-plugin": "2.7.2",
+ "mini-css-extract-plugin": "2.7.3",
"postcss": "8.4.21",
"postcss-loader": "7.0.2",
"postcss-preset-env": "8.0.1",
@@ -60,7 +60,7 @@
"stylelint-scss": "4.4.0",
"ts-loader": "9.4.2",
"typescript": "4.9.5",
- "webpack": "5.75.0",
+ "webpack": "5.76.0",
"webpack-cli": "5.0.1",
"webpack-dev-server": "4.11.1",
"webpack-merge": "5.8.0",
@@ -89,7 +89,7 @@
"flv.js": "1.6.2",
"headroom.js": "0.12.0",
"history": "5.3.0",
- "hls.js": "1.3.4",
+ "hls.js": "1.2.4",
"intersection-observer": "0.12.2",
"jellyfin-apiclient": "1.10.0",
"jquery": "3.6.3",
diff --git a/src/controllers/dashboard/general.html b/src/controllers/dashboard/general.html
index f099a81c5b..62f92d097c 100644
--- a/src/controllers/dashboard/general.html
+++ b/src/controllers/dashboard/general.html
@@ -80,6 +80,13 @@
+
+
${HeaderPerformance}
+
+