GitLab workflow automation for AI Initiative repos (exploration + rollout)
## Summary Build out an automated GitLab workflow layer for the Drupal AI Initiative's GitLab projects (`project/ai`, `project/ai_agents`, providers, etc.) so that issue and MR housekeeping — state transitions, label hygiene, completeness checks, dependency review pings — happens automatically instead of requiring manual maintainer effort. This is split into two phases: 1. **Exploration** — evaluate which Drupal-side platform is the right host for the automation logic (Rules, ECA, or a custom module on top of [`gitlab_api`](https://www.drupal.org/project/gitlab_api)). 2. **Automation rollout** — implement the concrete behaviors (custom slash-style quick actions, CI-driven state transitions, template completeness checks, dependency-review pings, etc.) on top of whichever platform comes out of exploration. ## Goals - A single Drupal-hosted service that subscribes to GitLab webhooks for the AI Initiative repos and reacts with state/label/comment updates via the GitLab API. - Reduce maintainer toil: issue states, labels, and comments stay current without manual nudging. - Enforce a minimum quality bar on issues and MRs (template completeness, tests required for code changes, dependency review for `composer.json` diffs). - Provide custom AI-Initiative-specific quick-action style commands (`/ai:assign-me`, `/ai:label-add`, etc.) that bundle multiple GitLab updates into one comment. ## Work Track Cross-track (AI Core / AI UX / coordination) ## Owner / Lead To be assigned. ## Sub-issues ### Exploration - [ ] #xxx — Explore Rules-based Drupal → GitLab integration - [ ] #xxx — Explore ECA + simple setup module for GitLab automation - [ ] #xxx — Audit `gitlab_api` module and write follow-up webhook issues ### Automation rollout (blocked by exploration outcome) - [ ] #xxx — Custom AI-Initiative quick-action commands (assign/unassign/label add/remove) - [ ] #xxx — CI failure on MR returns issue from `state::needsReview` to `state::needsWork` - [ ] #xxx — New commits on a branch reopen the issue and set `state::needsWork` - [ ] #xxx — Issue template completeness enforcement (`needs-info` + comment) - [ ] #xxx — Auto-label `needs-rebase` on MRs that need rebasing - [ ] #xxx — `composer.json` change → `needs-dependency-review` + ping marcus and artem - [ ] #xxx — Feature change without tests → return to `state::needsWork` and add `needs-tests` ## Timeline Exploration first; automation rollout begins once a platform is chosen (target: within the current AI Initiative quarter). ## AI Usage - [x] AI Assisted Issue — This issue was generated with AI assistance, but was reviewed and refined by the creator.
issue