Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
57be254
Merge branch 'release/v26.2.0' into develop
dgibbs64 Nov 8, 2025
18155a9
Merge branch 'master' into develop
dgibbs64 Nov 9, 2025
77f9429
feat: Support ntfy alerts (#4779)
rconjoe Nov 9, 2025
fc5e723
fix(info_messages): Correct IFTTT alert condition check
dgibbs64 Nov 9, 2025
31031c6
feat: update various game server distro compatibility's (#4853)
dgibbs64 Nov 9, 2025
3cefc9c
fix(hz): HumanitZ 1.0 new binary path (#4873)
o1rik Feb 8, 2026
30dcde0
fix(scpsl): Add libicu76 as a dependency of scpsl (#4869)
marcsello Mar 12, 2026
e1cbee0
chore: synced local '.github/' with remote 'general/.github/' (#4852)
dgibbs64 Mar 12, 2026
fef128f
fix (alerts): Alerts on update uses the old game server version not t…
dgibbs64 Mar 12, 2026
82b8208
docs(license): update copyright year(s) (#4866)
github-actions[bot] Mar 12, 2026
b930161
fix: re-add missing module
dgibbs64 Mar 13, 2026
397f26e
Update papermc.io API usage to new format (#4895)
untone-survive Apr 18, 2026
1c69f75
chore: synced local '.github/' with remote 'general/.github/' (#4886)
dgibbs64 Apr 18, 2026
f45456e
fix(mcserver): update Ubuntu 24.04 Java dependency to OpenJDK 25 (#4890)
Huguiz Apr 18, 2026
2a177a8
fix: Update game server directories for HumanitZServer for 1.0 (#4882)
Plankt0n Apr 18, 2026
cba689a
feat(etl): add ET: Legacy downloader and update module (#4896)
dgibbs64 Apr 19, 2026
9dfbb8e
fix(install_config): replace cp -nv with explicit file existence chec…
dgibbs64 Apr 19, 2026
0b7aa62
feat(tf2c): add Team Fortress 2 Classified server (#4898)
dgibbs64 Apr 19, 2026
7e472ba
Release v26.1.0
dgibbs64 Apr 19, 2026
a7186b8
fix(alert_slack): add missing closing brace on section object
dgibbs64 Apr 19, 2026
d04d5b6
fix: address review feedback
dgibbs64 Apr 19, 2026
329660d
fix(vints): assign remotebuild instead of unused remotebuildversion
dgibbs64 Apr 19, 2026
a14433c
fix(xnt): unset exitbypass after command_stop.sh in fn_update_localbuild
dgibbs64 Apr 19, 2026
db4253f
fix(ci): resolve super-linter failures
dgibbs64 Apr 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
56 changes: 28 additions & 28 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,30 +1,30 @@
{
"name": "BASH Dev Container",
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
"features": {
"ghcr.io/devcontainers-community/npm-features/prettier:1": {
"plugins": "prettier-plugin-sh"
},
"ghcr.io/devcontainers-extra/features/actionlint:1": {},
"ghcr.io/devcontainers-extra/features/checkov:1": {},
"ghcr.io/devcontainers-extra/features/markdownlint-cli:1": {},
"ghcr.io/devcontainers-extra/features/shellcheck:1": {},
"ghcr.io/devcontainers-extra/features/yamllint:2": {},
"ghcr.io/devcontainers/features/github-cli:1": {}
},
"customizations": {
"vscode": {
"extensions": [
"DavidAnson.vscode-markdownlint",
"editorconfig.editorconfig",
"esbenp.prettier-vscode",
"github.vscode-github-actions",
"GitHub.vscode-pull-request-github",
"redhat.vscode-yaml",
"timonwong.shellcheck",
"yzhang.markdown-all-in-one"
]
}
},
"postCreateCommand": "npm init -y >/dev/null 2>&1 || true && npm install --no-save prettier prettier-plugin-sh prettier-plugin-jinja-template"
"name": "BASH Dev Container",
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
"features": {
"ghcr.io/devcontainers-community/npm-features/prettier:1": {
"plugins": "prettier-plugin-sh"
},
"ghcr.io/devcontainers-extra/features/actionlint:1": {},
"ghcr.io/devcontainers-extra/features/checkov:1": {},
"ghcr.io/devcontainers-extra/features/markdownlint-cli:1": {},
"ghcr.io/devcontainers-extra/features/shellcheck:1": {},
"ghcr.io/devcontainers-extra/features/yamllint:2": {},
"ghcr.io/devcontainers/features/github-cli:1": {}
},
"customizations": {
"vscode": {
"extensions": [
"DavidAnson.vscode-markdownlint",
"editorconfig.editorconfig",
"esbenp.prettier-vscode",
"github.vscode-github-actions",
"GitHub.vscode-pull-request-github",
"redhat.vscode-yaml",
"timonwong.shellcheck",
"yzhang.markdown-all-in-one"
]
}
},
"postCreateCommand": "npm init -y >/dev/null 2>&1 || true && npm install --no-save prettier prettier-plugin-sh prettier-plugin-jinja-template"
}
17 changes: 16 additions & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,21 @@ insert_final_newline = true
trim_trailing_whitespace = true

# BASH Files
[*.{.sh}]
[*.sh]
indent_size = 4
indent_style = tab

# JSON Files (Biome formatting)
[*.json]
indent_style = tab
indent_size = 2

# Steam appmanifest files (Valve ACF format)
[*.acf]
indent_style = tab
indent_size = 4

# Python
[*.py]
indent_style = space
indent_size = 4
11 changes: 11 additions & 0 deletions .github/linters/.codespellrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
[codespell]
# Skip data tables that contain many short server identifiers (e.g. "fof", "nd")
skip =
lgsm/data/*.csv,
package-lock.json,
*/package-lock.json,
node_modules,
*/node_modules/*

# Ignore common identifiers/acronyms and extensions used throughout LinuxGSM
ignore-words-list = distroname,fof,nd,sav,parms,ThirdParty
2 changes: 2 additions & 0 deletions .github/linters/.flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[flake8]
max-line-length = 120
9 changes: 9 additions & 0 deletions .github/linters/.gitleaks.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
title = "LinuxGSM Gitleaks Config"

[allowlist]
description = "Known false positives"
regexes = [
# Google Analytics 4 Measurement Protocol API secret - not a sensitive credential,
# it is intentionally embedded in client-side code and is safe to be public.
'''apisecret="[A-Za-z0-9_\-]+"''',
]
20 changes: 20 additions & 0 deletions .github/linters/.markdown-lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Configuration for markdownlint (used by Super Linter)

# MD041: README starts with HTML badges in this repo.
MD041: false

# MD051: GitHub heading anchor generation can differ (emoji, punctuation).
MD051: false

# MD013: The project documentation frequently contains long URLs/commands.
MD013: false

# MD033: The main README uses inline HTML for badges.
MD033: false

# MD007: Repo uses 2-space indentation for nested lists.
MD007:
indent: 2

# MD030: Repo mixes 1-space unordered and 2-space ordered list markers.
MD030: false
1 change: 1 addition & 0 deletions .github/linters/.shellcheckrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
disable=SC2154,SC2034
25 changes: 25 additions & 0 deletions .github/linters/.yaml-lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
extends: default

rules:
document-start: disable
truthy: disable

line-length:
max: 200
level: warning
allow-non-breakable-words: true
allow-non-breakable-inline-mappings: true

braces:
min-spaces-inside: 0
max-spaces-inside: 1
min-spaces-inside-empty: 0
max-spaces-inside-empty: 0

empty-lines:
max: 2
max-start: 0
max-end: 0

comments:
min-spaces-from-content: 1
30 changes: 15 additions & 15 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,30 +6,30 @@ Fixes #[issue]

## Type of change

- [ ] Bug fix (a change which fixes an issue).
- [ ] New feature (a change which adds functionality).
- [ ] New Server (new server added).
- [ ] Refactor (restructures existing code).
- [ ] Comment update (typo, spelling, explanation, examples, etc).
- [ ] Bug fix (a change which fixes an issue).
- [ ] New feature (a change which adds functionality).
- [ ] New Server (new server added).
- [ ] Refactor (restructures existing code).
- [ ] Comment update (typo, spelling, explanation, examples, etc).

## Checklist

PR will not be merged until all steps are complete.

- [ ] This pull request links to an issue.
- [ ] This pull request uses the `develop` branch as its base.
- [ ] This pull request subject follows the Conventional Commits standard.
- [ ] This code follows the style guidelines of this project.
- [ ] I have performed a self-review of my code.
- [ ] I have checked that this code is commented where required.
- [ ] I have provided a detailed enough description of this PR.
- [ ] I have checked if documentation needs updating.
- [ ] This pull request links to an issue.
- [ ] This pull request uses the `develop` branch as its base.
- [ ] This pull request subject follows the Conventional Commits standard.
- [ ] This code follows the style guidelines of this project.
- [ ] I have performed a self-review of my code.
- [ ] I have checked that this code is commented where required.
- [ ] I have provided a detailed enough description of this PR.
- [ ] I have checked if documentation needs updating.

## Documentation

If documentation does need updating either update it by creating a PR (preferred) or request a documentation update.

- User docs: https://github.com/GameServerManagers/LinuxGSM-Docs
- Dev docs: https://github.com/GameServerManagers/LinuxGSM-Dev-Docs
- User docs: <https://github.com/GameServerManagers/LinuxGSM-Docs>
- Dev docs: <https://github.com/GameServerManagers/LinuxGSM-Dev-Docs>

**Thank you for your Pull Request!**
2 changes: 1 addition & 1 deletion .github/workflows/action-prettier.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v5
uses: actions/checkout@v6
with:
persist-credentials: false

Expand Down
12 changes: 8 additions & 4 deletions .github/workflows/action-super-linter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@ jobs:

steps:
- name: Checkout code
uses: actions/checkout@v5
uses: actions/checkout@v6
with:
# super-linter needs the full git history to get the
# list of files that changed across commits
# Full clone required so super-linter can resolve GITHUB_BEFORE_SHA.
fetch-depth: 0
fetch-tags: false
persist-credentials: false

- name: Install Prettier plugins (for summary formatting)
Expand All @@ -41,11 +41,15 @@ jobs:
env:
# To report GitHub Actions status checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DEFAULT_BRANCH: ${{ github.ref_name }}
VALIDATE_BIOME_FORMAT: false
VALIDATE_BIOME_LINT: false
VALIDATE_GITHUB_ACTIONS_ZIZMOR: false
VALIDATE_JSCPD: false
VALIDATE_JSON_PRETTIER: false
VALIDATE_MARKDOWN_PRETTIER: false
VALIDATE_NATURAL_LANGUAGE: false
VALIDATE_PYTHON_RUFF_FORMAT: false
VALIDATE_SHELL_SHFMT: false
VALIDATE_TERRAFORM_TERRASCAN: false
VALIDATE_TRIVY: false
VALIDATE_YAML_PRETTIER: false
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
uses: actions/checkout@v6
with:
fetch-depth: 0
persist-credentials: false
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/add-to-project.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ on:
- opened
- labeled

permissions: {}

jobs:
add-to-project:
if: github.repository_owner == 'GameServerManagers'
Expand Down
10 changes: 6 additions & 4 deletions .github/workflows/details-check-generate-matrix.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,12 @@ while read -r line; do
export gamename
distro=$(echo "$line" | awk -F, '{ print $4 }')
export distro
echo -n "{" >> "shortnamearray.json"
echo -n "\"shortname\":" >> "shortnamearray.json"
echo -n "\"${shortname}\"" >> "shortnamearray.json"
echo -n "}," >> "shortnamearray.json"
{
echo -n "{";
echo -n "\"shortname\":";
echo -n "\"${shortname}\"";
echo -n "},";
} >> "shortnamearray.json"
done < <(tail -n +2 serverlist.csv)
sed -i '$ s/.$//' "shortnamearray.json"
echo -n "]" >> "shortnamearray.json"
Expand Down
7 changes: 5 additions & 2 deletions .github/workflows/details-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ on:
branches:
- develop

permissions:
contents: read

concurrency:
group: details-check-${{ github.ref_name }}
cancel-in-progress: true
Expand All @@ -28,7 +31,7 @@ jobs:
run: |
shortnamearray=$(cat shortnamearray.json)
echo "${shortnamearray}"
echo -n "matrix=${shortnamearray}" >> $GITHUB_OUTPUT
echo -n "matrix=${shortnamearray}" >> "$GITHUB_OUTPUT"

details-check:
if: github.repository_owner == 'GameServerManagers'
Expand All @@ -41,7 +44,7 @@ jobs:

steps:
- name: Download linuxgsm.sh
run: wget https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/${GITHUB_REF#refs/heads/}/linuxgsm.sh; chmod +x linuxgsm.sh
run: wget "https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/${GITHUB_REF#refs/heads/}/linuxgsm.sh"; chmod +x linuxgsm.sh

- name: Install dependencies
run: sudo apt-get install libxml2-utils jq
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/git-sync.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ on:
- master
- develop

permissions: {}

jobs:
gitHub-to-bitbucket:
if: github.repository_owner == 'GameServerManagers'
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/potential-duplicates.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@ on:
issues:
types:
- opened

permissions:
issues: write

jobs:
potential-duplicates:
if: github.repository_owner == 'GameServerManagers'
Expand Down
12 changes: 8 additions & 4 deletions .github/workflows/serverlist-validate-game-icons.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

cd "${datadir}" || exit

exitcode=0

echo ""
echo "Checking that all the game servers listed in serverlist.csv have a shortname-icon.png file"
for shortname in $(tail -n +2 serverlist.csv | cut -d ',' -f1); do
Expand All @@ -16,9 +18,11 @@ done

echo ""
echo "Checking if an unexpected gameicon exists"
for gameicon in $(ls -1 gameicons); do
shopt -s nullglob
for gameiconpath in gameicons/*; do
gameicon="$(basename "${gameiconpath}")"
# check if $gameicon is in serverlist.csv
if ! grep -q "${gameicon%-icon.png}" serverlist.csv; then
if ! grep -q -E "^${gameicon%-icon.png}," serverlist.csv; then
echo "ERROR: gameicon ${gameicon} is not in serverlist.csv"
exitcode=1
else
Expand All @@ -28,7 +32,7 @@ done

echo ""
echo "Checking that the number of gameicons matches the number of servers in serverlist.csv"
gameiconcount="$(ls -1 gameicons | wc -l)"
gameiconcount="$(find gameicons -mindepth 1 -maxdepth 1 -type f | wc -l)"
serverlistcount="$(tail -n +2 serverlist.csv | wc -l)"
if [ "${gameiconcount}" -ne "${serverlistcount}" ]; then
echo "ERROR: game icons (${gameiconcount}) does not match serverlist.csv ($serverlistcount)"
Expand All @@ -37,4 +41,4 @@ else
echo "OK: gameiconcount ($gameiconcount) matches serverlistcount ($serverlistcount)"
fi

exit ${exitcode}
exit "${exitcode}"
9 changes: 6 additions & 3 deletions .github/workflows/serverlist-validate.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,15 @@ echo "Checking that all the game servers are listed in all csv files"
echo "this check will ensure serverlist.csv has the same number of lines (-2 lines) as the other csv files"
# count the number of lines in the serverlist.csv
cd "${datadir}" || exit

exitcode=0
serverlistcount="$(tail -n +2 serverlist.csv | wc -l)"
echo "serverlistcount: $serverlistcount"
# get list of all csv files starting with ubunutu debian centos
csvlist="$(ls -1 | grep -E '^(ubuntu|debian|centos|rhel|almalinux|rocky).*\.csv$')"
shopt -s nullglob
csvlist=(ubuntu*.csv debian*.csv centos*.csv rhel*.csv almalinux*.csv rocky*.csv)
# loop though each csv file and make sure the number of lines is the same as the serverlistcount
for csv in $csvlist; do
for csv in "${csvlist[@]}"; do
csvcount="$(wc -l < "${csv}")"
csvcount=$((csvcount - 2))
if [ "$csvcount" -ne "$serverlistcount" ]; then
Expand All @@ -35,4 +38,4 @@ for shortname in $(tail -n +2 serverlist.csv | cut -d ',' -f1); do
fi
done

exit ${exitcode}
exit "${exitcode}"
3 changes: 3 additions & 0 deletions .github/workflows/serverlist-validate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ on:
workflow_dispatch:
push:

permissions:
contents: read

jobs:
serverlist-validate:
if: github.repository_owner == 'GameServerManagers'
Expand Down
Loading
Loading