layer5io / layer5io/recognition
[CI] End-to-End Badge Assignment Automation
Nobody has claimed this yet.
- 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:
- In-App Cloud Events: Backend triggers when users perform first-time in-app actions.
- Project Contribution PR Merges: Reusable GitHub Action running on merged PRs to grant project badges.
- Monthly Contributor Crons: Scheduled GitHub Action calculating multi-month / cumulative milestones.
- 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): InterceptPOST /api/application.first-share(Sharing is Caring): Intercept catalog publish / visibility change inPUT /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): InterceptPOST /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).
- Reusable PR merge workflow mapping merged PR paths to contributor badges (
- 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.
- Scheduled monthly workflow (1st of every month) querying GitHub GraphQL API for
- Track 4: Org & Role Webhooks
- Webhook integration for
employeeandmeshmatebadges.
- Webhook integration for
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
- 🛠 Meshery Build & Release Strategy
- 🎨 Wireframes and designs for Layer5 site in Figma (open invite)
- 🙋🏾🙋🏼 Questions: Layer5 Discussion Forum and Layer5 Community Slack
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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