layer5io / layer5io/recognition

[CI] End-to-End Badge Assignment Automation

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

Nobody has claimed this yet.

area/ci
Dominant language
JavaScript
Stars
23
Forks
15
Avg merge
3h 18m
Merged PRs (30d)
3

Description

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

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.

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.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.