This commit is contained in:
stewartshea
2026-07-06 23:53:42 -04:00
parent 0d8d94d19e
commit b401b3e3ec
7 changed files with 17 additions and 73 deletions
@@ -58,7 +58,7 @@
- Generated by `runwhen-platform-mcp` `render_codecollection_skill` v0.0.0-dev
- Source workspace: `stg-test`
- Generated at: `2026-07-07T02:45:19Z`
- Generated at: `2026-07-07T03:52:40Z`
## Deploying this codecollection
@@ -58,7 +58,7 @@
- Generated by `runwhen-platform-mcp` `render_codecollection_skill` v0.0.0-dev
- Source workspace: `stg-test`
- Generated at: `2026-07-07T02:45:19Z`
- Generated at: `2026-07-07T03:52:40Z`
## Deploying this codecollection
@@ -1,51 +1,22 @@
#!/bin/bash
main() {
issues='[]'
total=0
failed=0
issues='[]'; total=0; failed=0
name="$(uname -n 2>/dev/null || echo 'unknown')"
total=$((total + 1))
if [ "$name" != "unknown" ]; then
issue=$(jq -n --arg n "$name" '{
"issue title": "Hostname collected successfully",
"issue description": ("Hostname retrieved: " + $n),
"issue severity": 4,
"issue next steps": "No action needed. Informational check."
}')
issue=$(jq -n --arg n "$name" '{"issue title":"Hostname collected successfully","issue description":("Hostname retrieved: "+$n),"issue severity":4,"issue next steps":"No action needed. Informational check."}')
issues=$(echo "$issues" | jq --argjson i "$issue" '. += [$i]')
else
failed=$((failed + 1))
issue=$(jq -n '{
"issue title": "Failed to collect hostname",
"issue description": "uname -n returned no output",
"issue severity": 2,
"issue next steps": "Check runner image and available commands."
}')
issue=$(jq -n '{"issue title":"Failed to collect hostname","issue description":"uname -n returned no output","issue severity":2,"issue next steps":"Check runner image and available commands."}')
issues=$(echo "$issues" | jq --argjson i "$issue" '. += [$i]')
fi
disks=$(df -h / 2>/dev/null | tail -1 | awk '{print $4, $5}' || echo 'unknown')
total=$((total + 1))
issue=$(jq -n --arg d "$disks" '{
"issue title": "Disk space collected",
"issue description": ("Root filesystem available/full: " + $d),
"issue severity": 4,
"issue next steps": "No action needed. Informational check."
}')
issue=$(jq -n --arg d "$disks" '{"issue title":"Disk space collected","issue description":("Root filesystem available/full: "+$d),"issue severity":4,"issue next steps":"No action needed. Informational check."}')
issues=$(echo "$issues" | jq --argjson i "$issue" '. += [$i]')
summary=$(jq -n \
--arg t "$total" \
--arg f "$failed" \
'{
"issue title": "System Info Check (Bash) — Summary",
"issue description": ("Checked " + $t + " system commands; " + $f + " failed."),
"issue severity": 4,
"issue next steps": "Informational. Review details in description."
}')
summary=$(jq -n --arg t "$total" --arg f "$failed" '{"issue title":"System Info Check (Bash) — Summary","issue description":("Checked "+$t+" system commands; "+$f+" failed."),"issue severity":4,"issue next steps":"Informational. Review details in description."}')
issues=$(echo "$issues" | jq --argjson i "$summary" '. += [$i]')
echo "$issues" >&3
}
@@ -16,7 +16,7 @@ spec:
- name: TASK_TITLE
value: Run system info check (bash)
- name: GEN_CMD
value: IyEvYmluL2Jhc2gKCm1haW4oKSB7CiAgICBpc3N1ZXM9J1tdJwogICAgdG90YWw9MAogICAgZmFpbGVkPTAKCiAgICBuYW1lPSIkKHVuYW1lIC1uIDI+L2Rldi9udWxsIHx8IGVjaG8gJ3Vua25vd24nKSIKICAgIHRvdGFsPSQoKHRvdGFsICsgMSkpCiAgICBpZiBbICIkbmFtZSIgIT0gInVua25vd24iIF07IHRoZW4KICAgICAgICBpc3N1ZT0kKGpxIC1uIC0tYXJnIG4gIiRuYW1lIiAnewogICAgICAgICAgICAiaXNzdWUgdGl0bGUiOiAiSG9zdG5hbWUgY29sbGVjdGVkIHN1Y2Nlc3NmdWxseSIsCiAgICAgICAgICAgICJpc3N1ZSBkZXNjcmlwdGlvbiI6ICgiSG9zdG5hbWUgcmV0cmlldmVkOiAiICsgJG4pLAogICAgICAgICAgICAiaXNzdWUgc2V2ZXJpdHkiOiA0LAogICAgICAgICAgICAiaXNzdWUgbmV4dCBzdGVwcyI6ICJObyBhY3Rpb24gbmVlZGVkLiBJbmZvcm1hdGlvbmFsIGNoZWNrLiIKICAgICAgICB9JykKICAgICAgICBpc3N1ZXM9JChlY2hvICIkaXNzdWVzIiB8IGpxIC0tYXJnanNvbiBpICIkaXNzdWUiICcuICs9IFskaV0nKQogICAgZWxzZQogICAgICAgIGZhaWxlZD0kKChmYWlsZWQgKyAxKSkKICAgICAgICBpc3N1ZT0kKGpxIC1uICd7CiAgICAgICAgICAgICJpc3N1ZSB0aXRsZSI6ICJGYWlsZWQgdG8gY29sbGVjdCBob3N0bmFtZSIsCiAgICAgICAgICAgICJpc3N1ZSBkZXNjcmlwdGlvbiI6ICJ1bmFtZSAtbiByZXR1cm5lZCBubyBvdXRwdXQiLAogICAgICAgICAgICAiaXNzdWUgc2V2ZXJpdHkiOiAyLAogICAgICAgICAgICAiaXNzdWUgbmV4dCBzdGVwcyI6ICJDaGVjayBydW5uZXIgaW1hZ2UgYW5kIGF2YWlsYWJsZSBjb21tYW5kcy4iCiAgICAgICAgfScpCiAgICAgICAgaXNzdWVzPSQoZWNobyAiJGlzc3VlcyIgfCBqcSAtLWFyZ2pzb24gaSAiJGlzc3VlIiAnLiArPSBbJGldJykKICAgIGZpCgogICAgZGlza3M9JChkZiAtaCAvIDI+L2Rldi9udWxsIHwgdGFpbCAtMSB8IGF3ayAne3ByaW50ICQ0LCAkNX0nIHx8IGVjaG8gJ3Vua25vd24nKQogICAgdG90YWw9JCgodG90YWwgKyAxKSkKICAgIGlzc3VlPSQoanEgLW4gLS1hcmcgZCAiJGRpc2tzIiAnewogICAgICAgICJpc3N1ZSB0aXRsZSI6ICJEaXNrIHNwYWNlIGNvbGxlY3RlZCIsCiAgICAgICAgImlzc3VlIGRlc2NyaXB0aW9uIjogKCJSb290IGZpbGVzeXN0ZW0gYXZhaWxhYmxlL2Z1bGw6ICIgKyAkZCksCiAgICAgICAgImlzc3VlIHNldmVyaXR5IjogNCwKICAgICAgICAiaXNzdWUgbmV4dCBzdGVwcyI6ICJObyBhY3Rpb24gbmVlZGVkLiBJbmZvcm1hdGlvbmFsIGNoZWNrLiIKICAgIH0nKQogICAgaXNzdWVzPSQoZWNobyAiJGlzc3VlcyIgfCBqcSAtLWFyZ2pzb24gaSAiJGlzc3VlIiAnLiArPSBbJGldJykKCiAgICBzdW1tYXJ5PSQoanEgLW4gXAogICAgICAgIC0tYXJnIHQgIiR0b3RhbCIgXAogICAgICAgIC0tYXJnIGYgIiRmYWlsZWQiIFwKICAgICAgICAnewogICAgICAgICAgICAiaXNzdWUgdGl0bGUiOiAiU3lzdGVtIEluZm8gQ2hlY2sgKEJhc2gpIOKAlCBTdW1tYXJ5IiwKICAgICAgICAgICAgImlzc3VlIGRlc2NyaXB0aW9uIjogKCJDaGVja2VkICIgKyAkdCArICIgc3lzdGVtIGNvbW1hbmRzOyAiICsgJGYgKyAiIGZhaWxlZC4iKSwKICAgICAgICAgICAgImlzc3VlIHNldmVyaXR5IjogNCwKICAgICAgICAgICAgImlzc3VlIG5leHQgc3RlcHMiOiAiSW5mb3JtYXRpb25hbC4gUmV2aWV3IGRldGFpbHMgaW4gZGVzY3JpcHRpb24uIgogICAgICAgIH0nKQogICAgaXNzdWVzPSQoZWNobyAiJGlzc3VlcyIgfCBqcSAtLWFyZ2pzb24gaSAiJHN1bW1hcnkiICcuICs9IFskaV0nKQoKICAgIGVjaG8gIiRpc3N1ZXMiID4mMwp9
value: IyEvYmluL2Jhc2gKCm1haW4oKSB7CiAgICBpc3N1ZXM9J1tdJzsgdG90YWw9MDsgZmFpbGVkPTAKICAgIG5hbWU9IiQodW5hbWUgLW4gMj4vZGV2L251bGwgfHwgZWNobyAndW5rbm93bicpIgogICAgdG90YWw9JCgodG90YWwgKyAxKSkKICAgIGlmIFsgIiRuYW1lIiAhPSAidW5rbm93biIgXTsgdGhlbgogICAgICAgIGlzc3VlPSQoanEgLW4gLS1hcmcgbiAiJG5hbWUiICd7Imlzc3VlIHRpdGxlIjoiSG9zdG5hbWUgY29sbGVjdGVkIHN1Y2Nlc3NmdWxseSIsImlzc3VlIGRlc2NyaXB0aW9uIjooIkhvc3RuYW1lIHJldHJpZXZlZDogIiskbiksImlzc3VlIHNldmVyaXR5Ijo0LCJpc3N1ZSBuZXh0IHN0ZXBzIjoiTm8gYWN0aW9uIG5lZWRlZC4gSW5mb3JtYXRpb25hbCBjaGVjay4ifScpCiAgICAgICAgaXNzdWVzPSQoZWNobyAiJGlzc3VlcyIgfCBqcSAtLWFyZ2pzb24gaSAiJGlzc3VlIiAnLiArPSBbJGldJykKICAgIGVsc2UKICAgICAgICBmYWlsZWQ9JCgoZmFpbGVkICsgMSkpCiAgICAgICAgaXNzdWU9JChqcSAtbiAneyJpc3N1ZSB0aXRsZSI6IkZhaWxlZCB0byBjb2xsZWN0IGhvc3RuYW1lIiwiaXNzdWUgZGVzY3JpcHRpb24iOiJ1bmFtZSAtbiByZXR1cm5lZCBubyBvdXRwdXQiLCJpc3N1ZSBzZXZlcml0eSI6MiwiaXNzdWUgbmV4dCBzdGVwcyI6IkNoZWNrIHJ1bm5lciBpbWFnZSBhbmQgYXZhaWxhYmxlIGNvbW1hbmRzLiJ9JykKICAgICAgICBpc3N1ZXM9JChlY2hvICIkaXNzdWVzIiB8IGpxIC0tYXJnanNvbiBpICIkaXNzdWUiICcuICs9IFskaV0nKQogICAgZmkKICAgIGRpc2tzPSQoZGYgLWggLyAyPi9kZXYvbnVsbCB8IHRhaWwgLTEgfCBhd2sgJ3twcmludCAkNCwgJDV9JyB8fCBlY2hvICd1bmtub3duJykKICAgIHRvdGFsPSQoKHRvdGFsICsgMSkpCiAgICBpc3N1ZT0kKGpxIC1uIC0tYXJnIGQgIiRkaXNrcyIgJ3siaXNzdWUgdGl0bGUiOiJEaXNrIHNwYWNlIGNvbGxlY3RlZCIsImlzc3VlIGRlc2NyaXB0aW9uIjooIlJvb3QgZmlsZXN5c3RlbSBhdmFpbGFibGUvZnVsbDogIiskZCksImlzc3VlIHNldmVyaXR5Ijo0LCJpc3N1ZSBuZXh0IHN0ZXBzIjoiTm8gYWN0aW9uIG5lZWRlZC4gSW5mb3JtYXRpb25hbCBjaGVjay4ifScpCiAgICBpc3N1ZXM9JChlY2hvICIkaXNzdWVzIiB8IGpxIC0tYXJnanNvbiBpICIkaXNzdWUiICcuICs9IFskaV0nKQogICAgc3VtbWFyeT0kKGpxIC1uIC0tYXJnIHQgIiR0b3RhbCIgLS1hcmcgZiAiJGZhaWxlZCIgJ3siaXNzdWUgdGl0bGUiOiJTeXN0ZW0gSW5mbyBDaGVjayAoQmFzaCkg4oCUIFN1bW1hcnkiLCJpc3N1ZSBkZXNjcmlwdGlvbiI6KCJDaGVja2VkICIrJHQrIiBzeXN0ZW0gY29tbWFuZHM7ICIrJGYrIiBmYWlsZWQuIiksImlzc3VlIHNldmVyaXR5Ijo0LCJpc3N1ZSBuZXh0IHN0ZXBzIjoiSW5mb3JtYXRpb25hbC4gUmV2aWV3IGRldGFpbHMgaW4gZGVzY3JpcHRpb24uIn0nKQogICAgaXNzdWVzPSQoZWNobyAiJGlzc3VlcyIgfCBqcSAtLWFyZ2pzb24gaSAiJHN1bW1hcnkiICcuICs9IFskaV0nKQogICAgZWNobyAiJGlzc3VlcyIgPiYzCn0=
- name: INTERPRETER
value: bash
- name: CONFIG_ENV_MAP
@@ -58,7 +58,7 @@
- Generated by `runwhen-platform-mcp` `render_codecollection_skill` v0.0.0-dev
- Source workspace: `stg-test`
- Generated at: `2026-07-07T02:45:19Z`
- Generated at: `2026-07-07T03:52:40Z`
## Deploying this codecollection
@@ -1,44 +1,17 @@
import subprocess
def main():
issues = []
total = 0
failed = 0
issues = []; total = 0; failed = 0
try:
result = subprocess.run(
["uname", "-a"], capture_output=True, text=True, timeout=10
)
total += 1
kernel_info = result.stdout.strip()
result = subprocess.run(["uname", "-a"], capture_output=True, text=True, timeout=10)
total += 1; kernel_info = result.stdout.strip()
if result.returncode == 0:
issues.append({
"issue title": "Kernel info collected successfully",
"issue description": f"Kernel info retrieved: {kernel_info}",
"issue severity": 4,
"issue next steps": "No action needed. Informational check.",
})
issues.append({"issue title":"Kernel info collected successfully","issue description":f"Kernel info retrieved: {kernel_info}","issue severity":4,"issue next steps":"No action needed. Informational check."})
else:
failed += 1
issues.append({
"issue title": "Failed to collect kernel info",
"issue description": f"uname command failed (rc={result.returncode})",
"issue severity": 2,
"issue next steps": "Check runner image and available commands.",
})
issues.append({"issue title":"Failed to collect kernel info","issue description":f"uname command failed (rc={result.returncode})","issue severity":2,"issue next steps":"Check runner image and available commands."})
except Exception as e:
failed += 1
issues.append({
"issue title": "Error collecting system info",
"issue description": f"Exception occurred: {str(e)}",
"issue severity": 2,
"issue next steps": "Investigate runner environment.",
})
issues.append({
"issue title": "System Info Check — Summary",
"issue description": f"Checked {total} system commands; {failed} failed.",
"issue severity": 4,
"issue next steps": "Informational. Review details in description.",
})
issues.append({"issue title":"Error collecting system info","issue description":f"Exception occurred: {str(e)}","issue severity":2,"issue next steps":"Investigate runner environment."})
issues.append({"issue title":"System Info Check — Summary","issue description":f"Checked {total} system commands; {failed} failed.","issue severity":4,"issue next steps":"Informational. Review details in description."})
return issues
@@ -16,7 +16,7 @@ spec:
- name: TASK_TITLE
value: Run system info check
- name: GEN_CMD
value: aW1wb3J0IHN1YnByb2Nlc3MKCmRlZiBtYWluKCk6CiAgICBpc3N1ZXMgPSBbXQogICAgdG90YWwgPSAwCiAgICBmYWlsZWQgPSAwCgogICAgdHJ5OgogICAgICAgIHJlc3VsdCA9IHN1YnByb2Nlc3MucnVuKAogICAgICAgICAgICBbInVuYW1lIiwgIi1hIl0sIGNhcHR1cmVfb3V0cHV0PVRydWUsIHRleHQ9VHJ1ZSwgdGltZW91dD0xMAogICAgICAgICkKICAgICAgICB0b3RhbCArPSAxCiAgICAgICAga2VybmVsX2luZm8gPSByZXN1bHQuc3Rkb3V0LnN0cmlwKCkKICAgICAgICBpZiByZXN1bHQucmV0dXJuY29kZSA9PSAwOgogICAgICAgICAgICBpc3N1ZXMuYXBwZW5kKHsKICAgICAgICAgICAgICAgICJpc3N1ZSB0aXRsZSI6ICJLZXJuZWwgaW5mbyBjb2xsZWN0ZWQgc3VjY2Vzc2Z1bGx5IiwKICAgICAgICAgICAgICAgICJpc3N1ZSBkZXNjcmlwdGlvbiI6IGYiS2VybmVsIGluZm8gcmV0cmlldmVkOiB7a2VybmVsX2luZm99IiwKICAgICAgICAgICAgICAgICJpc3N1ZSBzZXZlcml0eSI6IDQsCiAgICAgICAgICAgICAgICAiaXNzdWUgbmV4dCBzdGVwcyI6ICJObyBhY3Rpb24gbmVlZGVkLiBJbmZvcm1hdGlvbmFsIGNoZWNrLiIsCiAgICAgICAgICAgIH0pCiAgICAgICAgZWxzZToKICAgICAgICAgICAgZmFpbGVkICs9IDEKICAgICAgICAgICAgaXNzdWVzLmFwcGVuZCh7CiAgICAgICAgICAgICAgICAiaXNzdWUgdGl0bGUiOiAiRmFpbGVkIHRvIGNvbGxlY3Qga2VybmVsIGluZm8iLAogICAgICAgICAgICAgICAgImlzc3VlIGRlc2NyaXB0aW9uIjogZiJ1bmFtZSBjb21tYW5kIGZhaWxlZCAocmM9e3Jlc3VsdC5yZXR1cm5jb2RlfSkiLAogICAgICAgICAgICAgICAgImlzc3VlIHNldmVyaXR5IjogMiwKICAgICAgICAgICAgICAgICJpc3N1ZSBuZXh0IHN0ZXBzIjogIkNoZWNrIHJ1bm5lciBpbWFnZSBhbmQgYXZhaWxhYmxlIGNvbW1hbmRzLiIsCiAgICAgICAgICAgIH0pCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgZmFpbGVkICs9IDEKICAgICAgICBpc3N1ZXMuYXBwZW5kKHsKICAgICAgICAgICAgImlzc3VlIHRpdGxlIjogIkVycm9yIGNvbGxlY3Rpbmcgc3lzdGVtIGluZm8iLAogICAgICAgICAgICAiaXNzdWUgZGVzY3JpcHRpb24iOiBmIkV4Y2VwdGlvbiBvY2N1cnJlZDoge3N0cihlKX0iLAogICAgICAgICAgICAiaXNzdWUgc2V2ZXJpdHkiOiAyLAogICAgICAgICAgICAiaXNzdWUgbmV4dCBzdGVwcyI6ICJJbnZlc3RpZ2F0ZSBydW5uZXIgZW52aXJvbm1lbnQuIiwKICAgICAgICB9KQoKICAgIGlzc3Vlcy5hcHBlbmQoewogICAgICAgICJpc3N1ZSB0aXRsZSI6ICJTeXN0ZW0gSW5mbyBDaGVjayDigJQgU3VtbWFyeSIsCiAgICAgICAgImlzc3VlIGRlc2NyaXB0aW9uIjogZiJDaGVja2VkIHt0b3RhbH0gc3lzdGVtIGNvbW1hbmRzOyB7ZmFpbGVkfSBmYWlsZWQuIiwKICAgICAgICAiaXNzdWUgc2V2ZXJpdHkiOiA0LAogICAgICAgICJpc3N1ZSBuZXh0IHN0ZXBzIjogIkluZm9ybWF0aW9uYWwuIFJldmlldyBkZXRhaWxzIGluIGRlc2NyaXB0aW9uLiIsCiAgICB9KQogICAgcmV0dXJuIGlzc3Vlcw==
value: aW1wb3J0IHN1YnByb2Nlc3MKCmRlZiBtYWluKCk6CiAgICBpc3N1ZXMgPSBbXTsgdG90YWwgPSAwOyBmYWlsZWQgPSAwCiAgICB0cnk6CiAgICAgICAgcmVzdWx0ID0gc3VicHJvY2Vzcy5ydW4oWyJ1bmFtZSIsICItYSJdLCBjYXB0dXJlX291dHB1dD1UcnVlLCB0ZXh0PVRydWUsIHRpbWVvdXQ9MTApCiAgICAgICAgdG90YWwgKz0gMTsga2VybmVsX2luZm8gPSByZXN1bHQuc3Rkb3V0LnN0cmlwKCkKICAgICAgICBpZiByZXN1bHQucmV0dXJuY29kZSA9PSAwOgogICAgICAgICAgICBpc3N1ZXMuYXBwZW5kKHsiaXNzdWUgdGl0bGUiOiJLZXJuZWwgaW5mbyBjb2xsZWN0ZWQgc3VjY2Vzc2Z1bGx5IiwiaXNzdWUgZGVzY3JpcHRpb24iOmYiS2VybmVsIGluZm8gcmV0cmlldmVkOiB7a2VybmVsX2luZm99IiwiaXNzdWUgc2V2ZXJpdHkiOjQsImlzc3VlIG5leHQgc3RlcHMiOiJObyBhY3Rpb24gbmVlZGVkLiBJbmZvcm1hdGlvbmFsIGNoZWNrLiJ9KQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIGZhaWxlZCArPSAxCiAgICAgICAgICAgIGlzc3Vlcy5hcHBlbmQoeyJpc3N1ZSB0aXRsZSI6IkZhaWxlZCB0byBjb2xsZWN0IGtlcm5lbCBpbmZvIiwiaXNzdWUgZGVzY3JpcHRpb24iOmYidW5hbWUgY29tbWFuZCBmYWlsZWQgKHJjPXtyZXN1bHQucmV0dXJuY29kZX0pIiwiaXNzdWUgc2V2ZXJpdHkiOjIsImlzc3VlIG5leHQgc3RlcHMiOiJDaGVjayBydW5uZXIgaW1hZ2UgYW5kIGF2YWlsYWJsZSBjb21tYW5kcy4ifSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBmYWlsZWQgKz0gMQogICAgICAgIGlzc3Vlcy5hcHBlbmQoeyJpc3N1ZSB0aXRsZSI6IkVycm9yIGNvbGxlY3Rpbmcgc3lzdGVtIGluZm8iLCJpc3N1ZSBkZXNjcmlwdGlvbiI6ZiJFeGNlcHRpb24gb2NjdXJyZWQ6IHtzdHIoZSl9IiwiaXNzdWUgc2V2ZXJpdHkiOjIsImlzc3VlIG5leHQgc3RlcHMiOiJJbnZlc3RpZ2F0ZSBydW5uZXIgZW52aXJvbm1lbnQuIn0pCiAgICBpc3N1ZXMuYXBwZW5kKHsiaXNzdWUgdGl0bGUiOiJTeXN0ZW0gSW5mbyBDaGVjayDigJQgU3VtbWFyeSIsImlzc3VlIGRlc2NyaXB0aW9uIjpmIkNoZWNrZWQge3RvdGFsfSBzeXN0ZW0gY29tbWFuZHM7IHtmYWlsZWR9IGZhaWxlZC4iLCJpc3N1ZSBzZXZlcml0eSI6NCwiaXNzdWUgbmV4dCBzdGVwcyI6IkluZm9ybWF0aW9uYWwuIFJldmlldyBkZXRhaWxzIGluIGRlc2NyaXB0aW9uLiJ9KQogICAgcmV0dXJuIGlzc3Vlcw==
- name: INTERPRETER
value: python
- name: CONFIG_ENV_MAP