Compare commits

..

4 Commits

Author SHA1 Message Date
CanbiZ (MickLesk)
466e2fd897 Add guidance when storage lacks rootdir support
Show actionable guidance when the selected storage does not support 'rootdir' content. Adds msg_custom lines with instructions to enable 'Disk image' (rootdir) for the storage (Datacenter → Storage → <name> → Edit → Content), plus links to the Proxmox storage docs and a GitHub discussions help page. Improves user troubleshooting before exiting with the existing error code.
2026-04-29 14:23:43 +02:00
CanbiZ (MickLesk)
c5cbb46743 Enhance issue matching and redirect handling in close_issue_in_dev workflow 2026-04-29 14:04:04 +02:00
community-scripts-pr-app[bot]
d134fa200c Update CHANGELOG.md (#14100)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-04-29 03:55:15 +00:00
Slaviša Arežina
48774489f6 Unpin release (#14097) 2026-04-29 05:54:47 +02:00
5 changed files with 36 additions and 9 deletions

View File

@@ -62,10 +62,10 @@ jobs:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
issues=$(gh issue list --repo community-scripts/ProxmoxVED --json number,title --jq '.[] | {number, title}')
best_match_score=0
best_match_number=0
for issue in $(echo "$issues" | jq -r '. | @base64'); do
_jq() {
echo ${issue} | base64 --decode | jq -r ${1}
@@ -113,7 +113,8 @@ jobs:
const http = require('http');
const url = require('url');
function request(fullUrl, opts) {
function request(fullUrl, opts, redirectsLeft) {
if (redirectsLeft === undefined) redirectsLeft = 5;
return new Promise(function(resolve, reject) {
const u = url.parse(fullUrl);
const isHttps = u.protocol === 'https:';
@@ -128,6 +129,19 @@ jobs:
if (body) options.headers['Content-Length'] = Buffer.byteLength(body);
const lib = isHttps ? https : http;
const req = lib.request(options, function(res) {
// Follow redirects (301/302/307/308)
if ([301, 302, 307, 308].indexOf(res.statusCode) !== -1 && res.headers.location && redirectsLeft > 0) {
res.resume();
const nextUrl = url.resolve(fullUrl, res.headers.location);
// For 301/302, browsers historically downgrade to GET; preserve method for 307/308.
const nextOpts = Object.assign({}, opts);
if (res.statusCode === 301 || res.statusCode === 302) {
nextOpts.method = 'GET';
delete nextOpts.body;
}
resolve(request(nextUrl, nextOpts, redirectsLeft - 1));
return;
}
let data = '';
res.on('data', function(chunk) { data += chunk; });
res.on('end', function() {

View File

@@ -448,6 +448,14 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
</details>
## 2026-04-29
### 🚀 Updated Scripts
- #### 🔧 Refactor
- PatchMon: Unpin release [@tremor021](https://github.com/tremor021) ([#14097](https://github.com/community-scripts/ProxmoxVE/pull/14097))
## 2026-04-28
### 🆕 New Scripts

View File

@@ -29,8 +29,7 @@ function update_script() {
exit
fi
RELEASE="v2.0.2"
if check_for_gh_release "PatchMon" "PatchMon/PatchMon" "${RELEASE}"; then
if check_for_gh_release "PatchMon" "PatchMon/PatchMon"; then
msg_info "Stopping Service"
systemctl stop patchmon-server
msg_ok "Stopped Service"
@@ -73,12 +72,13 @@ function update_script() {
msg_ok "Migration complete!"
fi
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "PatchMon" "PatchMon/PatchMon" "singlefile" "${RELEASE}" "/opt/patchmon" "patchmon-server-linux-amd64"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "PatchMon" "PatchMon/PatchMon" "singlefile" "latest" "/opt/patchmon" "patchmon-server-linux-amd64"
mv /opt/patchmon/PatchMon /opt/patchmon/patchmon-server
msg_info "Fetching PatchMon agent binaries"
RELEASE=$(get_latest_github_release "PatchMon/PatchMon")
[[ ! -d /opt/patchmon/agents ]] && mkdir -p /opt/patchmon/agents
FILE_URL="https://github.com/PatchMon/PatchMon/releases/download/${RELEASE}/patchmon-agent-"
FILE_URL="https://github.com/PatchMon/PatchMon/releases/download/v${RELEASE}/patchmon-agent-"
AGENT_NAME=(
"linux-amd64"
"linux-arm64"

View File

@@ -21,7 +21,7 @@ PG_VERSION="17" setup_postgresql
PG_DB_NAME="patchmon_db" PG_DB_USER="patchmon_usr" setup_postgresql_db
RELEASE="v2.0.2"
fetch_and_deploy_gh_release "PatchMon" "PatchMon/PatchMon" "singlefile" "$RELEASE" "/opt/patchmon" "patchmon-server-linux-amd64"
fetch_and_deploy_gh_release "PatchMon" "PatchMon/PatchMon" "singlefile" "latest" "/opt/patchmon" "patchmon-server-linux-amd64"
mv /opt/patchmon/PatchMon /opt/patchmon/patchmon-server
msg_info "Configuring PatchMon"
@@ -64,8 +64,9 @@ EOF
msg_ok "Configured PatchMon"
msg_info "Fetching PatchMon agent binaries"
RELEASE=$(get_latest_github_release "PatchMon/PatchMon")
mkdir -p /opt/patchmon/agents
FILE_URL="https://github.com/PatchMon/PatchMon/releases/download/${RELEASE}/patchmon-agent-"
FILE_URL="https://github.com/PatchMon/PatchMon/releases/download/v${RELEASE}/patchmon-agent-"
AGENT_NAME=(
"linux-amd64"
"linux-arm64"

View File

@@ -5678,6 +5678,10 @@ create_lxc_container() {
if ! pvesm status -content rootdir 2>/dev/null | awk 'NR>1{print $1}' | grep -qx "$CONTAINER_STORAGE"; then
msg_error "Storage '$CONTAINER_STORAGE' ($STORAGE_TYPE) does not support 'rootdir' content."
msg_custom "💡" "${YW}" "Enable 'Disk image' (rootdir) for storage '${CONTAINER_STORAGE}' in:"
msg_custom " " "${YW}" "Datacenter → Storage → ${CONTAINER_STORAGE} → Edit → Content"
msg_custom "📖" "${YW}" "See: https://pve.proxmox.com/wiki/Storage"
msg_custom "🔗" "${YW}" "Help: https://github.com/community-scripts/ProxmoxVE/discussions"
exit 213
fi
msg_ok "Storage '$CONTAINER_STORAGE' ($STORAGE_TYPE) validated"