summaryrefslogtreecommitdiffhomepage
path: root/.github/workflows/auto-label-tui.yml
blob: c2f81a380112a8d760a31a121e41df56331751e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
name: Auto-label TUI Issues

on:
  issues:
    types: [opened]

jobs:
  auto-label:
    runs-on: blacksmith-4vcpu-ubuntu-2404
    permissions:
      contents: read
      issues: write
    steps:
      - name: Auto-label and assign issues
        uses: actions/github-script@v7
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          script: |
            const issue = context.payload.issue;
            const title = issue.title;
            const description = issue.body || '';

            // Check for "opencode web" keyword
            const webPattern = /(opencode web)/i;
            const isWebRelated = webPattern.test(title) || webPattern.test(description);

            // Check for version patterns like v1.0.x or 1.0.x
            const versionPattern = /[v]?1\.0\./i;
            const isVersionRelated = versionPattern.test(title) || versionPattern.test(description);

            // Check for "nix" keyword
            const nixPattern = /\bnix\b/i;
            const isNixRelated = nixPattern.test(title) || nixPattern.test(description);

            const labels = [];

            if (isWebRelated) {
              labels.push('web');
              
              // Assign to adamdotdevin
              await github.rest.issues.addAssignees({
                owner: context.repo.owner,
                repo: context.repo.repo,
                issue_number: issue.number,
                assignees: ['adamdotdevin']
              });
            } else if (isVersionRelated) {
              // Only add opentui if NOT web-related
              labels.push('opentui');
            }

            if (isNixRelated) {
              labels.push('nix');
            }

            if (labels.length > 0) {
              await github.rest.issues.addLabels({
                owner: context.repo.owner,
                repo: context.repo.repo,
                issue_number: issue.number,
                labels: labels
              });
            }