From 3a1f8fe7b7c982955de51a9f9f2a462b116e207f Mon Sep 17 00:00:00 2001 From: Giovanni Toraldo Date: Thu, 3 Sep 2026 16:23:13 +0200 Subject: [PATCH 1/2] Add repo hygiene tooling: Dependabot grouping, pre-commit, AI assistant docs Groups Dependabot updates per ecosystem with a weekly schedule and cooldown, adds a pre-commit baseline (YAML/JSON/whitespace checks, markdownlint, actionlint, GitHub Actions SHA-pin enforcement) wired into a new pre-checks workflow, and documents the codebase in AGENTS.md with a CLAUDE.md import so Claude and Copilot share one source of truth. --- .github/dependabot.yml | 31 +++++++++++++++++++++++++-- .github/workflows/pre-checks.yml | 17 +++++++++++++++ .gitignore | 7 +++++++ .markdownlint.yaml | 5 +++++ .pre-commit-config.yaml | 36 ++++++++++++++++++++++++++++++++ AGENTS.md | 33 +++++++++++++++++++++++++++++ CLAUDE.md | 1 + CNAME | 2 +- events/2026-03-apericoder.md | 5 ----- 9 files changed, 129 insertions(+), 8 deletions(-) create mode 100644 .github/workflows/pre-checks.yml create mode 100644 .markdownlint.yaml create mode 100644 .pre-commit-config.yaml create mode 100644 AGENTS.md create mode 100644 CLAUDE.md diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 70a98e6..abe9dd6 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,6 +1,33 @@ +# Documentation for all configuration options: +# https://docs.github.com/en/code-security/reference/supply-chain-security/dependabot-options-reference version: 2 updates: - package-ecosystem: "bundler" - directory: "/" + directories: + - "/" schedule: - interval: "monthly" + interval: "weekly" + labels: + - "dependencies" + - "ruby" + cooldown: + default-days: 7 + groups: + bundler: + patterns: + - "*" + + - package-ecosystem: "github-actions" + directories: + - "/" + schedule: + interval: "weekly" + labels: + - "dependencies" + - "github_actions" + cooldown: + default-days: 7 + groups: + github-actions: + patterns: + - "*" diff --git a/.github/workflows/pre-checks.yml b/.github/workflows/pre-checks.yml new file mode 100644 index 0000000..5fd1b9b --- /dev/null +++ b/.github/workflows/pre-checks.yml @@ -0,0 +1,17 @@ +name: pre-checks + +on: + pull_request: + branches: [master] + push: + branches: [master] + +jobs: + pre-commit: + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - uses: Alfresco/alfresco-build-tools/.github/actions/pre-commit@v18.27.0 + with: + auto-commit: "false" diff --git a/.gitignore b/.gitignore index 5328c24..ec91a1c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,9 @@ _site +.jekyll-cache +.jekyll-metadata +.bundle +vendor/bundle .vscode + +# Claude Code local artifacts +.claude diff --git a/.markdownlint.yaml b/.markdownlint.yaml new file mode 100644 index 0000000..b302d97 --- /dev/null +++ b/.markdownlint.yaml @@ -0,0 +1,5 @@ +default: true +MD013: false # long-form prose lines are fine +MD026: false # headings intentionally end with punctuation/emoji +MD033: false # event pages embed iframes/buttons for video and CTAs +MD041: false # CLAUDE.md is intentionally just an @AGENTS.md import, no heading diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..222c6bd --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,36 @@ +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v6.0.0 + hooks: + - id: check-yaml + args: [--allow-multiple-documents] + - id: check-json + - id: check-xml + - id: check-merge-conflict + - id: fix-byte-order-marker + - id: mixed-line-ending + args: ['--fix=lf'] + - id: end-of-file-fixer + - id: trailing-whitespace + + - repo: https://github.com/sirosen/check-jsonschema + rev: 0.38.0 + hooks: + - id: check-dependabot + - id: check-github-actions + - id: check-github-workflows + + - repo: https://github.com/igorshubovych/markdownlint-cli + rev: v0.49.1 + hooks: + - id: markdownlint + + - repo: https://github.com/rhysd/actionlint + rev: v1.7.12 + hooks: + - id: actionlint + + - repo: https://github.com/hyland/github-actions-ensure-sha-pinned-actions + rev: v2.0.1 + hooks: + - id: gha-sha-convert diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..8d32be2 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,33 @@ +# Montacchiello.dev + +Jekyll site for Montacchiello Developers, an independent software developer community in +Pisa, Italy. Built with `jekyll-theme-cayman` (no custom layouts/includes — theme defaults +are used as-is). Deployed to via GitHub Pages. + +## Structure + +- `index.md` — homepage: recent events, archive, contacts, sponsors, photo gallery. +- `events/` — one Markdown page per past event, front matter `layout`, `title`, `image`. +- `slides/` — PDF slide decks linked from event entries. +- `images/` — event photos and logos referenced from `index.md` and event pages. +- `_config.yml` — site title, description, theme, plugins (`jekyll-sitemap`). +- `CNAME` — custom domain for GitHub Pages. + +## Working locally + +Ruby version is pinned in `.ruby-version` (see that file for the exact version). + +```bash +bundle install +bundle exec jekyll serve # http://localhost:4000 +bundle exec jekyll build # outputs to _site/ +``` + +## Conventions + +- Content is authored in Italian. +- Adding a past event: create `events/.md` with front matter (`layout: default`, + `title`, optional `image`), then link it from the archive list in `index.md`. +- Slide decks go in `slides/` and are linked as `[💾 Slides](/slides/.pdf)`. +- Dependency updates (Ruby gems, GitHub Actions) are managed by Dependabot + (`.github/dependabot.yml`). diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..43c994c --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1 @@ +@AGENTS.md diff --git a/CNAME b/CNAME index d755fa2..9059783 100644 --- a/CNAME +++ b/CNAME @@ -1 +1 @@ -montacchiello.dev \ No newline at end of file +montacchiello.dev diff --git a/events/2026-03-apericoder.md b/events/2026-03-apericoder.md index aa6f9cf..50f3ff3 100644 --- a/events/2026-03-apericoder.md +++ b/events/2026-03-apericoder.md @@ -4,7 +4,6 @@ title: Apericoder marzo 2026 image: /images/2026-03-19-apericoder-1.jpg --- - Giovedì sera ci siamo ritrovati così: **una quindicina di persone**, un tavolo molto lungo e una **conversazione sull'AI** che è andata avanti per ore. Abbiamo parlato di come la stiamo usando davvero nel lavoro: cosa ci accelera, cosa ci mette in @@ -12,17 +11,13 @@ difficoltà, cosa ancora non ci torna fino in fondo, **senza slide o talk prepar PRE-Covid, quando ci si trovava dal vivo e le conversazioni prendevano direzioni inaspettate. Sono usciti punti di vista diversi, ma soprattutto **esperienze concrete** e quella sensazione rara di stare pensando insieme. - Forse è proprio questo che ci mancava. - **Montacchiello.dev** per me è anche questo: uno spazio dove il tech torna a essere **relazione, confronto vero**. - E chissà… magari è il momento giusto per tornare anche con **nuovi eventi ufficiali** 👀 - Ho incontrato persone che **non vedevo da un'eternità** e mi ha fatto davvero tanto piacere. 🥹🥹 From 8d40758b349f3a882015c866b4c66feac8d5349c Mon Sep 17 00:00:00 2001 From: Giovanni Toraldo Date: Thu, 3 Sep 2026 16:52:44 +0200 Subject: [PATCH 2/2] Fix formatting flagged by pre-commit hooks after merging master The redesign merge brought in files missing a trailing newline and a README list using a different bullet marker than the rest of the file. --- .github/workflows/pages.yml | 2 +- README.md | 7 +++---- _includes/google-analytics.html | 2 +- _layouts/default.html | 2 +- assets/css/style.scss | 2 +- 5 files changed, 7 insertions(+), 8 deletions(-) diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml index 744c429..1604468 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/pages.yml @@ -44,4 +44,4 @@ jobs: steps: - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4.0.5 \ No newline at end of file + uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4.0.5 diff --git a/README.md b/README.md index 7090b32..ab677e9 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,6 @@ Siamo una community indipendente di **sviluppatori software** professionisti a * * 2026-05-13 - [gRPC nei Microservizi: quando usarlo (e quando no)](https://www.eventbrite.it/e/grpc-nei-microservizi-quando-usarlo-e-quando-no-apericoder-tickets-1988351894040) - [💾 Slides](/slides/2026-05-13-grpc.pdf) * 2026-03-19 - [Apericoder 🍹](/events/2026-03-apericoder/) -

Archivio eventi

* 2025-12-10 - Apericoder 🍹 @@ -36,9 +35,9 @@ Siamo una community indipendente di **sviluppatori software** professionisti a *

Come partecipare

-- Chatta con noi sul canale [Telegram](https://t.me/joinchat/AB-kXVDvi56sg5ENu1edIA) oppure scrivici una [email](mailto:info@montacchiello.dev). -- Vuoi proporre un argomento per i prossimi eventi? [Raccontaci la tua idea](https://forms.gle/VVsNwB3J4U6yNRmW7). -- Vuoi sponsorizzare un nostro evento? Scrivici una [email](mailto:info@montacchiello.dev). +* Chatta con noi sul canale [Telegram](https://t.me/joinchat/AB-kXVDvi56sg5ENu1edIA) oppure scrivici una [email](mailto:info@montacchiello.dev). +* Vuoi proporre un argomento per i prossimi eventi? [Raccontaci la tua idea](https://forms.gle/VVsNwB3J4U6yNRmW7). +* Vuoi sponsorizzare un nostro evento? Scrivici una [email](mailto:info@montacchiello.dev). diff --git a/_includes/google-analytics.html b/_includes/google-analytics.html index 4f5ef4f..bffdbfa 100644 --- a/_includes/google-analytics.html +++ b/_includes/google-analytics.html @@ -4,4 +4,4 @@ function gtag() { dataLayer.push(arguments); } gtag('js', new Date()); gtag('config', '{{ site.google_analytics }}'); - \ No newline at end of file + diff --git a/_layouts/default.html b/_layouts/default.html index cdccb23..93c7c27 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -188,4 +188,4 @@

{{ page.title }}

}()); - \ No newline at end of file + diff --git a/assets/css/style.scss b/assets/css/style.scss index 177c62d..b6f7462 100644 --- a/assets/css/style.scss +++ b/assets/css/style.scss @@ -155,4 +155,4 @@ a:focus-visible { outline: 3px solid var(--coral); outline-offset: 4px; } .footer-grid { grid-template-columns: 1fr; gap: 8px; padding-bottom: 8px; } .footer-bottom { display: block; } .footer-bottom span { display: block; margin-top: 2px; } -} \ No newline at end of file +}