[CI] End-to-End Badge Assignment Automation

Open
#116 2 comments 0 reactions 0 assignees View on GitHub

@PARTH-TUSSLE is already working on this.

Since Sep 19, 2026.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
github-actions, graphql, javascript

Research direction

Start with badge-award.yml and the four tracks listed in the issue, then trace the existing Design Pioneer assignment. Review the named Layer5 Cloud entry points, including POST /api/application, PUT /api/pattern, and the webhook and telemetry events. Done means merged PRs, monthly milestones, org or role changes, and in-app actions award the specified badges and satisfy the listed acceptance tests.

Written by the indexing model from the issue text.

Description

area/ci
Current Behavior

Currently, only a few badges (like Design Pioneer / first-design) are programmatically assigned in Layer5 Cloud when a user performs a first-time action, while others rely on manual trigger scripts or Slack commands (badge-award.yml). Most badges on badges.layer5.io require manual tracking.

Desired Behavior

Automate badge assignments programmatically across ~30 eligible badges on badges.layer5.io using quantifiable criteria, categorized into 4 core execution tracks:

  1. In-App Cloud Events: Backend triggers when users perform first-time in-app actions.
  2. Project Contribution PR Merges: Reusable GitHub Action running on merged PRs to grant project badges.
  3. Monthly Contributor Crons: Scheduled GitHub Action calculating multi-month / cumulative milestones.
  4. Org & Role Webhooks: Automated badge sync for GitHub Org & Slack role grants.
Implementation
  • Track 1: In-App Cloud Events (Layer5 Cloud Backend)
    • first-application (Application Pioneer): Intercept POST /api/application.
    • first-share (Sharing is Caring): Intercept catalog publish / visibility change in PUT /api/pattern.
    • bring-a-buddy (Bring a Buddy): Award upon invitation acceptance.
    • gitops-connected (GitOps Connected): Trigger on GitHub App installation webhook.
    • first-deployment (Shipped): Telemetry event on successful deployment.
    • need-for-speed (Need for Speed): Intercept POST /api/perf/profile/result.
    • first-interactive-terminal-session (Hip Hacker): Pod exec websocket open telemetry.
    • first-log-streaming-session (Log Streamer): Pod log stream websocket open telemetry.
  • Track 2: Project Contribution PR Merges (GitHub Actions)
    • Reusable PR merge workflow mapping merged PR paths to contributor badges (sistent-contributor, meshery, meshery-operator, meshsync, meshery-docs, meshery-catalog, landscape, ui-ux).
  • Track 3: Monthly Contributor Milestone Crons (GitHub Actions)
    • Scheduled monthly workflow (1st of every month) querying GitHub GraphQL API for continuous-contributor, longevity-legend, review-rockstar, code-cleanup-crew, security-sentinel.
  • Track 4: Org & Role Webhooks
    • Webhook integration for employee and meshmate badges.
Acceptance Tests
  • Merging a PR in project repositories automatically triggers badge award API calls for authors.
  • End-of-month scheduled workflows calculate contributor thresholds and issue badges accurately.
  • In-app actions trigger badge assignment and notifications seamlessly.

Contributor Guides and Resources
Dominant language
JavaScript
Stars
23
Forks
15
Avg merge
3h 51m
Merged PRs (30d)
1

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from layer5io/recognition

All issues in layer5io/recognition

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.