Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(ci): Declarative github labels #36833

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
355 changes: 355 additions & 0 deletions .github/labels.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,355 @@
# This file is used to declaratively define the sentry repository labels.
#
# XXX: A note on renaming labels, from the documentation of the sync action:
#
# > If a label color or description changes, the same label is updated with the
# > new color or description.
# >
# > If a label name changes, the previous label is deleted by default. Also all
# > existing labels which not listed in manifest will be deleted by default. All
# > issues and PRs that were previously labeled with this label are now
# > unlabeled.
#
# If you want to RENAME a label, without all issues and PRs being unlabeled you
# MUST rename the label in the UI AND merge a PR renaming the label here
# simultaneously.

# Getsentry workflow control
- name: trigger-getsentry-external
color: '3E5E06'
description: 'once code is reviewed: apply label to PR to trigger getsentry tests'

# Dependabot
- name: dependencies
color: 'ffffff'
description: Pull requests that update a dependency file

# Scopes
- name: 'Scope: Backend'
color: 'F5B000'
description: Automatically applied to PRs that change backend components
- name: 'Scope: Frontend'
color: '3C74DD'
description: Automatically applied to PRs that change frontend components

# Status for use with stalebot
- name: 'Status: Backlog'
color: '8D5494'
description: stalebot will ignore
- name: 'Status: In Progress'
color: '8D5494'
description: stalebot will ignore
- name: 'Status: Invalid'
color: '8D5494'
description: null
- name: 'Status: Investigating'
color: '8D5494'
description: null
- name: 'Status: Needs More Information'
color: '8D5494'
description: stalebot will close after four weeks of inactivity
- name: 'Status: Stale'
color: '8D5494'
description: stalebot will close after another week of inactivity
- name: 'Status: Unrouted'
color: '8D5494'
description: stalebot will close after four weeks of inactivity
- name: 'Status: Untriaged'
color: '8D5494'
description: stalebot will close after four weeks of inactivity

# Issue type
- name: 'Type: Bug'
color: '584774'
description: null
- name: 'Type: CI Flakiness'
color: '584774'
description: null
- name: 'Type: Design'
color: '584774'
description: null
- name: 'Type: Feature Request'
color: '584774'
description: null
- name: 'Type: Improvement'
color: '584774'
description: null
- name: 'Type: Support'
color: '584774'
description: null
- name: 'Type: Support Request'
color: '584774'
description: null
- name: 'Type: User Feedback'
color: '584774'
description: null

# Components
- name: 'Component: Analytics'
color: '584774'
description: null
- name: 'Component: API'
color: '584774'
description: null
- name: 'Component: Auth'
color: '584774'
description: null
- name: 'Component: Beacon'
color: '584774'
description: null
- name: 'Component: CI'
color: '584774'
description: Continuous Integration pipeline (GitHub Actions)
- name: 'Component: Core Frontend (React)'
color: '584774'
description: null
- name: 'Component: Debugger'
color: '584774'
description: null
- name: 'Component: Developer Environment'
color: '584774'
description: This covers issues related to setting up a developer's environment to be able to contribute to Sentr
- name: 'Component: Documentation'
color: '584774'
description: null
- name: 'Component: Event Pipeline'
color: '584774'
description: null
- name: 'Component: Feedback'
color: '584774'
description: null
- name: 'Component: Grouping'
color: '584774'
description: null
- name: 'Component: i18n'
color: '584774'
description: null
- name: 'Component: Inbound Filters'
color: '584774'
description: null
- name: 'Component: Integrations'
color: '584774'
description: null
- name: 'Component: Issues'
color: '584774'
description: null
- name: 'Component: Logging'
color: '584774'
description: null
- name: 'Component: Monitoring'
color: '584774'
description: null
- name: 'Component: Notifications'
color: '584774'
description: null
- name: 'Component: Onboarding'
color: '584774'
description: null
- name: 'Component: Package'
color: '584774'
description: null
- name: 'Component: Relay'
color: '584774'
description: null
- name: 'Component: Releases'
color: '584774'
description: null
- name: 'Component: Replay Details'
color: '584774'
description: Session Replays → Details
- name: 'Component: Replay Index'
color: '584774'
description: Session Replays → Index page
- name: 'Component: Rules'
color: '584774'
description: null
- name: 'Component: SDK'
color: '584774'
description: null
- name: 'Component: Search'
color: '584774'
description: null
- name: 'Component: Source Maps'
color: '584774'
description: null
- name: 'Component: UI'
color: '584774'
description: null
- name: 'Component: User Crash Report'
color: '584774'
description: null
- name: 'Component: Workflow'
color: '584774'
description: null

# Teams
- name: 'Team: Backend'
color: '8D5494'
description: app-backend
- name: 'Team: Design'
color: '8D5494'
description: null
- name: 'Team: Ecosystem'
color: '8D5494'
description: null
- name: 'Team: Emerging Technology'
color: '8D5494'
description: team-emerging-technology
- name: 'Team: Enterprise'
color: '8D5494'
description: null
- name: 'Team: Front End'
color: '8D5494'
description: app-frontend
- name: 'Team: Growth'
color: '8D5494'
description: null
- name: 'Team: Infrastructure'
color: '8D5494'
description: null
- name: 'Team: Ingest'
color: '8D5494'
description: owners-ingest
- name: 'Team: Mobile Platform'
color: '8D5494'
description: team-mobile
- name: 'Team: Native Platform'
color: '8D5494'
description: owners-native
- name: 'Team: Open Source'
color: '8D5494'
description: null
- name: 'Team: Ops'
color: '8D5494'
description: null
- name: 'Team: Revenue'
color: '8D5494'
description: null
- name: 'Team: Search & Storage'
color: '8D5494'
description: sns
- name: 'Team: Support'
color: '8D5494'
description: null
- name: 'Team: Visibility'
color: '8D5494'
description: null
- name: 'Team: Web SDKs - Backend'
color: '8D5494'
description: team-web-sdk-backend
- name: 'Team: Web SDKs - Frontend'
color: '8D5494'
description: team-web-sdk-frontend
- name: 'Team: Workflow'
color: '8D5494'
description: null

# Deploy types
- name: 'Deploy: Monitored'
color: 'FFB287'
description: This PR requires a monitored deploy
- name: 'Deploy: Risky'
color: 'C83852'
description: This is a particularly risky deploy

# Feature types
- name: 'Feature: Alert Rule'
color: '8A7259'
description: null
- name: 'Feature: Errors'
color: 'ffa0df'
description: null

# Hacktoberfest
- name: 'Hacktoberfest :jack_o_lantern:'
color: 'ffa500'
description: null
- name: Hacktoberfest-accepted
color: 'e99695'
description: Accept for Hacktoberfest - will merge later

# Impacts
- name: 'Impact: Large'
color: 'C83852'
description: null
- name: 'Impact: Medium'
color: 'FFB287'
description: null
- name: 'Impact: Migration'
color: 'C83852'
description: null
- name: 'Impact: Small'
color: '452650'
description: null

# Platforms
- name: 'Platform: Cocoa'
color: '584774'
description: null
- name: 'Platform: Dart'
color: '584774'
description: null
- name: 'Platform: Java'
color: '584774'
description: null
- name: 'Platform: JavaScript'
color: '584774'
description: null
- name: 'Platform: PHP'
color: '584774'
description: null
- name: 'Platform: Python'
color: '584774'
description: null
- name: 'Platform: Ruby'
color: '584774'
description: null
- name: 'Platform: Unity'
color: '584774'
description: null

# Hosting type
- name: 'Hosting: Self-hosted'
color: '584774'
description: null
- name: 'Hosting: sentry.io'
color: '584774'
description: null

# Legacy tags
- name: WIP
color: 'F6F6F8'
description: null
- name: 'Package: browser'
color: '6780AD'
description: null
- name: Design Review
color: 'F6F6F8'
description: null
- name: Do Not Merge
color: 'C83852'
description: Don't merge
- name: Easy Task
color: 'F6F6F8'
description: null
- name: enhancement
color: 'a2eeef'
description: null
- name: help wanted
color: '159818'
description: null
- name: invalid
color: 'F6F6F8'
description: null
- name: javascript
color: 'F6F6F8'
description: Pull requests that update Javascript code
- name: python
color: 'F6F6F8'
description: Pull requests that update Python code
- name: Security
color: 'C83852'
description: null
- name: wcgw
color: 'F6F6F8'
description: null
20 changes: 20 additions & 0 deletions .github/workflows/sync-labels.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Sync labels
on:
push:
branches:
- master
paths:
- .github/labels.yml
jobs:
build:
Comment on lines +8 to +9
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's set the explicit permissions we want here just to be ~slightly safer -- https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good call

runs-on: ubuntu-latest
# Labels can be manipulated with no permissions
permissions: {}
steps:
- uses: actions/checkout@v3
- uses: micnncim/action-label-syncer@3abd5ab72fda571e69fffd97bd4e0033dd5f495c
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
manifest: .github/labels.yml
prune: false