|
|
@@ -3,7 +3,12 @@ import { Buildpack } from "main/home/app-dashboard/types/buildpack";
|
|
|
import React, { useState } from "react";
|
|
|
import styled, { keyframes } from "styled-components";
|
|
|
|
|
|
-function isValidURL(url: string): boolean {
|
|
|
+function isValidBuildpack(url: string): boolean {
|
|
|
+ const urnPrefix = "urn:cnb:registry:";
|
|
|
+ if (url.startsWith(urnPrefix)) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
const pattern = /^(https?:\/\/)?([\w.-]+)\.([a-z]{2,})(:\d{2,5})?([\/\w.-]*)*\/?$/i;
|
|
|
return pattern.test(url);
|
|
|
}
|
|
|
@@ -15,7 +20,7 @@ const AddCustomBuildpack: React.FC<{
|
|
|
const [error, setError] = useState(false);
|
|
|
|
|
|
const handleAddCustomBuildpack = () => {
|
|
|
- if (buildpackUrl === "" || !isValidURL(buildpackUrl)) {
|
|
|
+ if (buildpackUrl === "" || !isValidBuildpack(buildpackUrl)) {
|
|
|
setError(true);
|
|
|
return;
|
|
|
}
|