mirror of
https://github.com/alexhopeoconnor/default.git
synced 2026-10-21 18:22:39 +10:00
New Github actions (#481)
* Test new check * Add quote * test * test * move check * move back * use env * test multistep * test trigger * if: github.event.label.name * quotes * hassfest? * Fix clone * Update hassfest * check hassfest * Use real domain * Lmit * Test hassfest * Check domain * Fix domain * No changes * Enable on unlable * Change HACS validate * Move inputs * Add dummy integration * TEst * Move to env * Fix repo * Remove entry
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
import asyncio
|
||||
import json
|
||||
import os
|
||||
from glob import glob
|
||||
|
||||
from aiogithubapi import GitHub
|
||||
from scripts.changed.category import get_category
|
||||
from scripts.changed.repo import get_repo
|
||||
from scripts.helpers.manifest import get_manifest
|
||||
|
||||
TOKEN = os.getenv("GITHUB_TOKEN")
|
||||
|
||||
|
||||
async def check():
|
||||
if get_category() != "integration":
|
||||
print("Only integrations are checked.")
|
||||
return
|
||||
|
||||
manifest = get_manifest()
|
||||
|
||||
domain = manifest.get("domain")
|
||||
if domain is None:
|
||||
print("No domain")
|
||||
exit(1)
|
||||
|
||||
async with GitHub(TOKEN) as github:
|
||||
repository = await github.get_repo("home-assistant/brands")
|
||||
files = await repository.get_contents("custom_integrations")
|
||||
if domain not in [x.attributes["name"] for x in files]:
|
||||
print(f"{domain} is not added to https://github.com/home-assistant/brands")
|
||||
print("This is needed to ensure the best possible experience for the user")
|
||||
exit(1)
|
||||
else:
|
||||
print(
|
||||
f"{domain} is added to https://github.com/home-assistant/brands, NICE!"
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.get_event_loop().run_until_complete(check())
|
||||
@@ -0,0 +1,23 @@
|
||||
from scripts.changed.category import get_category
|
||||
from scripts.helpers.hacs_manifest import get_hacs_manifest
|
||||
|
||||
|
||||
def check():
|
||||
if get_category() != "integration":
|
||||
print("Only integrations are checked.")
|
||||
return
|
||||
|
||||
manifest = get_hacs_manifest()
|
||||
issues = []
|
||||
|
||||
if manifest.get("name") is None:
|
||||
issues.append("No name")
|
||||
|
||||
if issues:
|
||||
for issue in issues:
|
||||
print(issue)
|
||||
exit(1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
check()
|
||||
@@ -0,0 +1,20 @@
|
||||
from scripts.changed.category import get_category
|
||||
from scripts.helpers.info import get_info
|
||||
|
||||
|
||||
def check():
|
||||
if get_category() not in ["plugin", "theme"]:
|
||||
print("Only plugin and theme are checked.")
|
||||
return
|
||||
|
||||
info = get_info()
|
||||
if "<img" in info or "![" in info:
|
||||
print("Has image(s)")
|
||||
return
|
||||
|
||||
print("There should be images to show the user what they get.")
|
||||
exit(1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
check()
|
||||
@@ -0,0 +1,13 @@
|
||||
from scripts.changed.category import get_category
|
||||
from scripts.helpers.info import get_info
|
||||
|
||||
|
||||
def check():
|
||||
info = get_info()
|
||||
if not info:
|
||||
print("No information provided.")
|
||||
exit(1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
check()
|
||||
@@ -0,0 +1,35 @@
|
||||
from scripts.changed.category import get_category
|
||||
from scripts.helpers.manifest import get_manifest
|
||||
|
||||
|
||||
def check():
|
||||
if get_category() != "integration":
|
||||
print("Only integrations are checked.")
|
||||
return
|
||||
|
||||
manifest = get_manifest()
|
||||
issues = []
|
||||
|
||||
if manifest.get("domain") is None:
|
||||
issues.append("No domain")
|
||||
|
||||
if manifest.get("documentation") is None:
|
||||
issues.append("No documentation")
|
||||
|
||||
if manifest.get("issue_tracker") is None:
|
||||
issues.append("No issue_tracker")
|
||||
|
||||
if manifest.get("codeowners") is None:
|
||||
issues.append("No codeowners")
|
||||
|
||||
if manifest.get("homeassistant"):
|
||||
issues.append("homeassistant is not valid here")
|
||||
|
||||
if issues:
|
||||
for issue in issues:
|
||||
print(issue)
|
||||
exit(1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
check()
|
||||
@@ -0,0 +1,36 @@
|
||||
import asyncio
|
||||
import json
|
||||
import os
|
||||
from glob import glob
|
||||
|
||||
from aiogithubapi import GitHub
|
||||
from scripts.changed.repo import get_repo
|
||||
|
||||
TOKEN = os.getenv("GITHUB_TOKEN")
|
||||
|
||||
|
||||
async def check():
|
||||
repo = get_repo()
|
||||
issues = []
|
||||
async with GitHub(TOKEN) as github:
|
||||
repository = await github.get_repo(repo)
|
||||
repo = repository.attributes
|
||||
|
||||
|
||||
if not repo["has_issues"]:
|
||||
issues.append("Issues not enabled.")
|
||||
|
||||
if not repo["description"]:
|
||||
issues.append("No description. (https://hacs.xyz/docs/publish/start#description)")
|
||||
|
||||
if not repo["topics"]:
|
||||
issues.append("No topics. (https://hacs.xyz/docs/publish/start#topics)")
|
||||
|
||||
if issues:
|
||||
for issue in issues:
|
||||
print(issue)
|
||||
exit(1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.get_event_loop().run_until_complete(check())
|
||||
@@ -0,0 +1,48 @@
|
||||
import asyncio
|
||||
import json
|
||||
import os
|
||||
from glob import glob
|
||||
|
||||
from aiogithubapi import GitHub
|
||||
from scripts.changed.category import get_category
|
||||
from scripts.changed.repo import get_repo
|
||||
from scripts.helpers.manifest import get_manifest
|
||||
|
||||
TOKEN = os.getenv("GITHUB_TOKEN")
|
||||
|
||||
|
||||
async def check():
|
||||
if get_category() != "integration":
|
||||
print("Only integrations are checked.")
|
||||
return
|
||||
|
||||
manifest = get_manifest()
|
||||
|
||||
domain = manifest.get("domain")
|
||||
requirements = manifest.get("requirements")
|
||||
if domain is None:
|
||||
print("No domain")
|
||||
exit(1)
|
||||
|
||||
if not requirements:
|
||||
print("No requirements found")
|
||||
return
|
||||
|
||||
async with GitHub(TOKEN) as github:
|
||||
repository = await github.get_repo("home-assistant/wheels-custom-integrations")
|
||||
files = await repository.get_contents("components")
|
||||
components = [x.attributes["name"] for x in files]
|
||||
if domain in components or f"{domain}.json" in components:
|
||||
print(
|
||||
f"{domain} is added to https://github.com/home-assistant/wheels-custom-integrations, NICE!"
|
||||
)
|
||||
return
|
||||
print(
|
||||
f"{domain} is not added to https://github.com/home-assistant/wheels-custom-integrations"
|
||||
)
|
||||
print("This is needed to ensure the best possible experience for the user")
|
||||
exit(1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.get_event_loop().run_until_complete(check())
|
||||
Reference in New Issue
Block a user