feat: implement Platinum Maintenance suite (Dependabot, Social Cards, Automated Triage) [skip ci]

This commit is contained in:
Nubenetes Bot
2026-05-19 10:47:41 +02:00
parent 6d1d265481
commit 2e334ee8af
6 changed files with 71 additions and 0 deletions

22
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,22 @@
version: 2
updates:
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
groups:
python-dependencies:
patterns:
- "*"
open-pull-requests-limit: 5
reviewers:
- "inafev"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "monthly"
groups:
action-updates:
patterns:
- "*"

View File

@@ -61,3 +61,21 @@ jobs:
PYTHONUNBUFFERED: 1
run: |
python src/intelligent_health_checker.py
- name: Open Triage Issue for High-Value Links
if: always()
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
if [ -f triage_report.md ]; then
ISSUE_TITLE="🚨 Manual Triage Required: High-Value Links Failing ($(date +'%Y-%m-%d'))"
# Check if an open issue with the same title already exists to avoid duplicates
EXISTING_ISSUE=$(gh issue list --search "$ISSUE_TITLE" --state open --json number --jq '.[0].number')
if [ -z "$EXISTING_ISSUE" ]; then
gh issue create --title "$ISSUE_TITLE" --body-file triage_report.md --label "triage, automated-report"
else
echo "A triage issue already exists (#$EXISTING_ISSUE). Updating with new report..."
gh issue comment $EXISTING_ISSUE --body-file triage_report.md
fi
fi

View File

@@ -259,6 +259,10 @@ The bot must rotate between profiles to avoid detection:
- **Playwright Caching**: Integrated `actions/cache` for Playwright binaries to reduce curation/cleaning setup time by >70%.
- **Metric Consolidation**: Integrated `README.md` metric synchronization directly into the `V2 Agentic Builder` workflow to reduce redundant maintenance commits on the `develop` branch.
- **O'Reilly Learning Flow**: Refined the O'Reilly-style technical hierarchy in the V2 portal to ensure a logical knowledge progression from foundations to advanced internals.
- **Platinum Maintenance & Security (May 2026)**:
- **Automated Triage System**: The health monitoring engine MUST open/update a GitHub Issue whenever high-value resources (`review_required`) fail validation. This ensures visibility for manual rescue attempts.
- **OpenGraph Social Cards**: The V2 Portal MUST generate dynamic social sharing cards for every page using the `social` plugin to maximize ecosystem engagement.
- **Dependency Guard (Dependabot)**: Automated monitoring of Python and GitHub Action dependencies is mandatory. Any security vulnerability MUST be addressed via prioritized bot-generated PRs.
- **AI and Artificial Intelligence Dimension**: Renamed from "Intelligent Control Plane" for better industry alignment.
- **Zero-to-Hero Grouping**: Implemented complexity-based levels (Fundamentals to Architect) for high-density learning paths.

View File

@@ -248,6 +248,9 @@ The autonomy of Nubenetes is powered by a modern, resilient tech stack that ensu
| **Optimization** | Adaptive AI Tiering | Dynamic model selection (Pro/Flash) and Global rate limiting. |
| **CI/CD Hardening** | Concurrency & [skip ci] | Prevention of race conditions and recursive trigger loops. |
| **Performance** | Playwright Caching | Setup optimization (reduces initialization time by >70%). |
| **Security** | Dependabot | Automated vulnerability monitoring for Python and CI Actions. |
| **Engagement** | Social Cards (OG) | Dynamic OpenGraph image generation for the V2 Portal. |
| **Maintenance** | Automated Triage | GitHub Issue generation for failing high-value resources. |
| **Automation** | Python 3.11 | Core logic for parsing, gitops, and reporting. |
| **Discovery** | Twikit and Playwright | Autonomous scraping and account rotation. |
| **Resilience** | Identity Rotation | Evasion of anti-bot blocks using multiple profiles. |

View File

@@ -271,6 +271,22 @@ class IntelligentLinkCleaner:
report = SafetyGuard().generate_audit_report()
metrics = {"total_extracted": len(self.link_registry), "full_report": self.full_report_metrics, "end_date": datetime.now().isoformat()}
if final_payload: self.git_controller.apply_multi_file_changes(final_payload, metrics, safety_report=report)
# --- AUTOMATED TRIAGE REPORT GENERATION ---
triage_links = []
for url, meta in self.inventory.items():
if meta.get('status') == 'review_required':
triage_links.append({"url": url, "stars": meta.get('stars', 0), "desc": meta.get('description', 'N/A')})
if triage_links:
# Sort by stars (impact) DESC
triage_links.sort(key=lambda x: x['stars'], reverse=True)
with open("triage_report.md", "w") as f:
f.write(f"### 🚨 Manual Triage Required ({len(triage_links)} High-Value Links)\n\n")
f.write("The following resources were flagged for manual review because they failed health checks but are considered high-value assets.\n\n")
f.write("| Impact | Resource | Description |\n| :---: | :--- | :--- |\n")
for item in triage_links:
f.write(f"| {'🌟'*item['stars']} | {item['url']} | {item['desc']} |\n")
async def prune_orphaned_metadata(self):
valid_map = {}

View File

@@ -45,6 +45,14 @@ theme:
- content.action.edit
- toc.integrate
plugins:
- search
- social:
cards: true
cards_layout_options:
background_color: "#263238"
font_family: "Inter"
extra:
social:
- icon: fontawesome/brands/github