diff --git a/tools/docs/schema.ts b/tools/docs/schema.ts
index abc3c6cbb133dbd79f7f73fe40d8ddb8a25f042a..ed40fbe3c25dcd903891a8dd49700e97c79368fb 100644
--- a/tools/docs/schema.ts
+++ b/tools/docs/schema.ts
@@ -49,7 +49,12 @@ function createSingleConfig(option: RenovateOptions): Record<string, unknown> {
     if (hasKey('format', option) && option.format) {
       temp.format = option.format;
     }
-    if (option.allowedValues) {
+    if (option.name === 'versioning') {
+      temp.oneOf = [
+        { enum: option.allowedValues },
+        { type: 'string', pattern: '^regex:' },
+      ];
+    } else if (option.allowedValues) {
       temp.enum = option.allowedValues;
     }
   }
@@ -83,7 +88,13 @@ function addChildrenArrayInParents(): void {
         allOf: [
           {
             type: 'object',
-            properties: {},
+            properties: {
+              description: {
+                type: 'string',
+                description:
+                  'A custom description for this configuration object',
+              },
+            },
           },
         ],
       };