name: πŸ› οΈ Issues Manager on: issues: types: [opened, edited, labeled, unlabeled] # Re also listen to comments, to remove stale labels right away issue_comment: types: [created] permissions: contents: read issues: write jobs: label-on-content: name: 🏷️ Label Issues by Content runs-on: ubuntu-latest if: always() steps: - name: Mint App Token id: app # Create a GitHub App token # https://github.com/marketplace/actions/create-github-app-token uses: actions/create-github-app-token@v2 with: app-id: ${{ vars.ST_BOT_APP_ID }} private-key: ${{ secrets.ST_BOT_PRIVATE_KEY }} owner: ${{ github.repository_owner }} - name: Checkout Repository # Checkout # https://github.com/marketplace/actions/checkout uses: actions/checkout@v4.2.2 - name: Auto-Label Issues (Based on Issue Content) # only auto label based on issue content once, on open (to prevent re-labeling removed labels) if: github.event.action == 'opened' # Issue Labeler # https://github.com/marketplace/actions/regex-issue-labeler uses: github/issue-labeler@v3.4 with: configuration-path: .github/issues-auto-labels.yml enable-versioned-regex: 0 repo-token: ${{ steps.app.outputs.token }} label-on-labels: name: 🏷️ Label Issues by Labels needs: [label-on-content] runs-on: ubuntu-latest if: always() steps: - name: Mint App Token id: app # Create a GitHub App token # https://github.com/marketplace/actions/create-github-app-token uses: actions/create-github-app-token@v2 with: app-id: ${{ vars.ST_BOT_APP_ID }} private-key: ${{ secrets.ST_BOT_PRIVATE_KEY }} owner: ${{ github.repository_owner }} - name: βœ… Add "πŸ‘ Approved" for relevant labels if: contains(fromJSON('["πŸ‘©β€πŸ’» Good First Issue", "πŸ™ Help Wanted", "πŸͺ² Confirmed", "⚠️ High Priority", "❕ Medium Priority", "πŸ’€ Low Priority"]'), github.event.label.name) # πŸ€– Issues Helper # https://github.com/marketplace/actions/issues-helper uses: actions-cool/issues-helper@v3.6.0 with: actions: 'add-labels' token: ${{ steps.app.outputs.token }} labels: 'πŸ‘ Approved' - name: ❌ Remove progress labels when issue is marked done or stale if: contains(fromJSON('["βœ… Done", "βœ… Done (staging)", "⚰️ Stale", "❌ wontfix"]'), github.event.label.name) # πŸ€– Issues Helper # https://github.com/marketplace/actions/issues-helper uses: actions-cool/issues-helper@v3.6.0 with: actions: 'remove-labels' token: ${{ steps.app.outputs.token }} labels: 'πŸ§‘β€πŸ’» In Progress,πŸ€” Unsure,πŸ€” Under Consideration' - name: ❌ Remove temporary labels when confirmed labels are added if: contains(fromJSON('["❌ wontfix","πŸ‘ Approved","πŸ‘©β€πŸ’» Good First Issue"]'), github.event.label.name) # πŸ€– Issues Helper # https://github.com/marketplace/actions/issues-helper uses: actions-cool/issues-helper@v3.6.0 with: actions: 'remove-labels' token: ${{ steps.app.outputs.token }} labels: 'πŸ€” Unsure,πŸ€” Under Consideration' - name: ❌ Remove no bug labels when "πŸͺ² Confirmed" is added if: github.event.label.name == 'πŸͺ² Confirmed' # πŸ€– Issues Helper # https://github.com/marketplace/actions/issues-helper uses: actions-cool/issues-helper@v3.6.0 with: actions: 'remove-labels' token: ${{ steps.app.outputs.token }} labels: 'βœ–οΈ Not Reproducible,βœ–οΈ Not A Bug' remove-stale-label: name: πŸ—‘οΈ Remove Stale Label on Comment needs: [label-on-content, label-on-labels] runs-on: ubuntu-latest # Only run this on new comments, to automatically remove the stale label if: always() && (github.event_name == 'issue_comment' && github.event.sender.type != 'Bot') steps: - name: Mint App Token id: app # Create a GitHub App token # https://github.com/marketplace/actions/create-github-app-token uses: actions/create-github-app-token@v2 with: app-id: ${{ vars.ST_BOT_APP_ID }} private-key: ${{ secrets.ST_BOT_PRIVATE_KEY }} owner: ${{ github.repository_owner }} - name: Remove Stale Label # πŸ€– Issues Helper # https://github.com/marketplace/actions/issues-helper uses: actions-cool/issues-helper@v3.6.0 with: actions: 'remove-labels' token: ${{ steps.app.outputs.token }} issue-number: ${{ github.event.issue.number }} labels: '⚰️ Stale,πŸ•ΈοΈ Inactive,🚏 Awaiting User Response,πŸ›‘ No Response' write-auto-comments: name: πŸ’¬ Post Issue Comments Based on Labels needs: [label-on-content, label-on-labels, remove-stale-label] runs-on: ubuntu-latest if: always() steps: - name: Mint App Token id: app # Create a GitHub App token # https://github.com/marketplace/actions/create-github-app-token uses: actions/create-github-app-token@v2 with: app-id: ${{ vars.ST_BOT_APP_ID }} private-key: ${{ secrets.ST_BOT_PRIVATE_KEY }} owner: ${{ github.repository_owner }} - name: Checkout Repository # Checkout # https://github.com/marketplace/actions/checkout uses: actions/checkout@v4.2.2 - name: Post Issue Comments Based on Labels # Label Commenter # https://github.com/marketplace/actions/label-commenter uses: peaceiris/actions-label-commenter@v1.10.0 with: config_file: .github/issues-auto-comments.yml github_token: ${{ steps.app.outputs.token }}