Change "regex" to "glob"

afc1fa6f27f4f4c5382ab6108530dcaaf7f1beb8

Tucker McKnight <tucker@pangolin.lan> | Wed Dec 31 2025

Change "regex" to "glob"

The goal here is to allow branch names -- and eventually tag names --
to be specified as a glob instead of a specific string.

So that way people can say "generate pages for everything matching
release/**" or "the 20 most recent tags matching "v1*" and "v2*" etc.
schemas/ReposConfiguration.json:5
Before
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
    "GitConfig": {
      "additionalProperties": false,
      "properties": {
        "artifactSteps": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "command": {
                "type": "string"
              },
              "copyFrom": {
                "type": "string"
              },
              "copyTo": {
                "type": "string"
              }
            },
            "required": [
              "command",
              "copyFrom",
              "copyTo"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "branchesToPull": {
          "items": {
            "anyOf": [
After
4
5
6























7
8
    "GitConfig": {
      "additionalProperties": false,
      "properties": {
⁣
⁣
⁣
⁣
⁣
⁣
⁣
⁣
⁣
⁣
⁣
⁣
⁣
⁣
⁣
⁣
⁣
⁣
⁣
⁣
⁣
⁣
⁣
        "branchesToPull": {
          "items": {
            "anyOf": [
schemas/ReposConfiguration.json:37
Before
36
37
38
39
40
41
42
43
44
45
46
47
48
49
              {
                "additionalProperties": false,
                "properties": {
                  "max": {
                    "type": "number"
                  },
                  "regex": {
                    "type": "string"
                  }
                },
                "required": [
                  "regex",
                  "max"
                ],
                "type": "object"
After
36
37
38
39
40
41
42
43
44
45
46
47
48
49
              {
                "additionalProperties": false,
                "properties": {
                  "glob": {
                    "type": "string"
                  },
                  "max": {
                    "type": "number"
                  }
                },
                "required": [
                  "glob",
                  "max"
                ],
                "type": "object"
schemas/ReposConfiguration.json:54
Before
53
54
55























56
57
          },
          "type": "array"
        },
⁣
⁣
⁣
⁣
⁣
⁣
⁣
⁣
⁣
⁣
⁣
⁣
⁣
⁣
⁣
⁣
⁣
⁣
⁣
⁣
⁣
⁣
⁣
        "defaultBranch": {
          "type": "string"
        },
After
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
          },
          "type": "array"
        },
        "buildSteps": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "command": {
                "type": "string"
              },
              "copyFrom": {
                "type": "string"
              },
              "copyTo": {
                "type": "string"
              }
            },
            "required": [
              "command",
              "copyFrom",
              "copyTo"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "defaultBranch": {
          "type": "string"
        },
schemas/ReposConfiguration.json:109
Before
108
109
110
111
112
113
114
115
116
117
118
119
120
121
              {
                "additionalProperties": false,
                "properties": {
                  "max": {
                    "type": "number"
                  },
                  "regex": {
                    "type": "string"
                  }
                },
                "required": [
                  "regex",
                  "max"
                ],
                "type": "object"
After
108
109
110
111
112
113
114
115
116
117
118
119
120
121
              {
                "additionalProperties": false,
                "properties": {
                  "glob": {
                    "type": "string"
                  },
                  "max": {
                    "type": "number"
                  }
                },
                "required": [
                  "glob",
                  "max"
                ],
                "type": "object"
src/configTypes.ts:53
Before
52
53
54
55
56
57
58
59
60
61
62
63
64
65
  location: string,
  description?: string,
  defaultBranch: string,
  branchesToPull: Array<string | {regex: string, max: number}>,
  tags?: Array<string | {regex: string, max: number}>,
  languageExtensions?: {
    [fileExtension: string]: string
  },
  buildSteps?: 
      command: string,
      copyFrom: string,
      copyTo: string,
  }[],
  defaultTemplateConfiguration?: {
    homepageButtons: Array<{
After
52
53
54
55
56
57
58
59
60
61
62
63
64
65
  location: string,
  description?: string,
  defaultBranch: string,
  branchesToPull: Array<string | {glob: string, max: number}>,
  tags?: Array<string | {glob: string, max: number}>,
  languageExtensions?: {
    [fileExtension: string]: string
  },
  buildSteps?: {
    command: string,
    copyFrom: string,
    copyTo: string,
  }[],
  defaultTemplateConfiguration?: {
    homepageButtons: Array<{