Merge branch 'is-a-dev:main' into main

This commit is contained in:
Tawhid Bin Omar
2025-04-04 13:33:28 +06:00
committed by GitHub
13 changed files with 58 additions and 87 deletions
-7
View File
@@ -10,7 +10,6 @@ on:
- "tests/*"
- "util/*"
- ".github/workflows/ci.yml"
- "dnsconfig.js"
workflow_dispatch:
@@ -44,11 +43,5 @@ jobs:
env:
GH_TOKEN: ${{ github.token }}
- name: Run DNSControl tests
if: github.event_name == 'pull_request' && contains(fromJson(env.CHANGED_FILES), 'dnsconfig.js')
uses: is-a-dev/dnscontrol-action@main
with:
args: check
- name: Run tests
run: npx ava tests/*.test.js --timeout=1m
+25
View File
@@ -0,0 +1,25 @@
name: DNSControl
on:
push:
branches: [main]
paths:
- ".github/workflows/dnscontrol.yml"
- "dnsconfig.js"
workflow_dispatch:
concurrency:
group: ${{ github.ref }}-dnscontrol
cancel-in-progress: true
jobs:
tests:
name: Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: is-a-dev/dnscontrol-action@main
with:
args: check
+6 -3
View File
@@ -1,12 +1,15 @@
name: Pull Request Labeler
name: Label
on:
schedule:
- cron: "*/10 * * * *"
jobs:
labeler:
pull-requests:
name: Pull Requests
runs-on: ubuntu-latest
steps:
- uses: docker://docker.io/ilyam8/periodic-pr-labeler:v0.1.1
- uses: ilyam8/periodic-pr-labeler@v0.3.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_REPOSITORY: ${{ github.repository }}
-5
View File
@@ -22,11 +22,6 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Run DNSControl tests
uses: is-a-dev/dnscontrol-action@main
with:
args: check
- name: Generate creds.json
run: echo '{"cloudflare":{"TYPE":"CLOUDFLAREAPI","apitoken":"$CLOUDFLARE_API_TOKEN"}}' > ./creds.json
+6 -4
View File
@@ -1,12 +1,14 @@
name: StaleBOT
name: Stale
on:
workflow_dispatch:
schedule:
- cron: "30 14 * * *"
- cron: "0 12 * * *"
workflow_dispatch:
jobs:
stale:
label:
name: Label
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v3
-11
View File
@@ -1,11 +0,0 @@
{
"owner": {
"username": "ThangLe9999",
"discord": "872078632565215282",
"OWL": "eyJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiUlNBLU9BRVAiLCJraWQiOiJaa1VsRmRqVThiUEstLXVVM2JJR09PVHFYYVFFS1ZINFVXOW53MTR6WTJnIn0.G5BtkuOaAUmFdixUP1IN4ZTmec-NZCllzsliK6q8sggJkBzasXefGfeEh6pBOiZ6ZkV2gr-GCdTN7LkP7QLPgLN6FglXac8BP1DSGDF3Lo8ULvrM-CpLUdeR0mqes6OQVvWdmPhZgVFGF3ItzDXQ7SqB6zrMbEWEwuZeg2KLHyPqvHsdrWLjzNpvVUwZRBuxicPyNTT70oMbPaOn3cvg4J_mVxNywnrIY5F34-T4tmiOEijsHmPwG2RzHsTCzC3cGYfNmokQtAsL0jhIMH4GzYdbTUsjDOrqbLdT-W2y33pQkeQuCjdf8KkeYCfacE0oWAZKFhrW2X0zJLYvGQBeuw.3qY1yT9H2x2WH2DePTziiw.PJvjWBGxfTgCKqZiHuAsRaUEdjld3XeMAw7NwX9P28VSFOS3-xsSiOvbLrCo1n1nTF-4g8EIRkkFJPn2P1T6YUDNuHVqbvnGg2wfhpfdSaM.yxghx67x9iGLMjDEKJdeAw"
},
"record": {
"TXT": "dh=8d98fb5fefbb1915e89d5dc43c9fdd9fa801557f"
}
}
-9
View File
@@ -1,9 +0,0 @@
{
"owner": {
"username": "chewieleaf",
"email": "cchirrpy@outlook.com"
},
"record": {
"TXT": "dh=440ef941b9b55391f86cf985e87ed861fc6e9512"
}
}
-10
View File
@@ -1,10 +0,0 @@
{
"owner": {
"username": "chewieleaf",
"email": "cchirrpy@outlook.com",
"discord": "898255050592366642"
},
"record": {
"TXT": "dh=440ef941b9b55391f86cf985e87ed861fc6e9512"
}
}
-9
View File
@@ -1,9 +0,0 @@
{
"owner": {
"username": "xqxyzl",
"email": "exemailhelp+3@gmail.com"
},
"record": {
"TXT": "_discord.exx.is-a.dev"
}
}
-10
View File
@@ -1,10 +0,0 @@
{
"owner": {
"username": "FaultyFaulty-glitch",
"email": "faultywindows+github@gmail.com",
"discord": "1041028534690386051"
},
"record": {
"TXT": "google-site-verification=ix1jczu2q87igryc4eaexvdv1vrzjxolu14sjfpsnko"
}
}
-9
View File
@@ -1,9 +0,0 @@
{
"owner": {
"username": "jacksoncraft859",
"email": "pollardjackson@outlook.com"
},
"record": {
"TXT": "replit-verify=ac38945f-f53b-4b1b-980d-e2a1d64175c6"
}
}
-9
View File
@@ -1,9 +0,0 @@
{
"owner": {
"username": "thangle9999",
"discord": "thangle9999"
},
"record": {
"TXT": "vc-domain-verify=thangle.is-a.dev,bd6f80914ee2949ce900"
}
}
+21 -1
View File
@@ -216,7 +216,10 @@ function validateRecordValues(t, data, file) {
Number.isInteger(record.matchingType) && record.matchingType >= 0 && record.matchingType <= 255,
`${file}: Invalid matchingType for ${key} at index ${idx}`
);
t.true(isValidHexadecimal(record.certificate), `${file}: Invalid certificate for ${key} at index ${idx}`);
t.true(
isValidHexadecimal(record.certificate),
`${file}: Invalid certificate for ${key} at index ${idx}`
);
}
});
}
@@ -310,3 +313,20 @@ t("All files should have valid record types", (t) => {
t.pass();
});
t("Root subdomains should have at least one usable record", (t) => {
const usableRecordTypes = ["A", "AAAA", "CNAME", "MX", "NS", "URL"];
files.forEach((file) => {
const subdomain = file.replace(/\.json$/, "");
if (subdomain.includes(".") || subdomain.startsWith("_")) return;
const data = getDomainData(file);
const recordKeys = Object.keys(data.record);
t.true(
usableRecordTypes.some((record) => recordKeys.includes(record)),
`${file}: Root subdomains must have at least one A, AAAA, CNAME, MX, NS, or URL record`
);
});
});