forked from toolshed/abra-bash
		
	Add renovate script
This commit is contained in:
		
							
								
								
									
										88
									
								
								bin/renovate-ls-apps.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										88
									
								
								bin/renovate-ls-apps.py
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,88 @@
 | 
			
		||||
#!/usr/bin/env python3
 | 
			
		||||
 | 
			
		||||
# Usage: ./renovate-ls-apps.py
 | 
			
		||||
#
 | 
			
		||||
# Output list of apps for Renovate bot configuration
 | 
			
		||||
 | 
			
		||||
from logging import DEBUG, basicConfig, getLogger
 | 
			
		||||
from os.path import expanduser
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
from shlex import split
 | 
			
		||||
from subprocess import check_output
 | 
			
		||||
from sys import exit
 | 
			
		||||
 | 
			
		||||
from requests import get
 | 
			
		||||
 | 
			
		||||
HOME_PATH = expanduser("~/")
 | 
			
		||||
CLONES_PATH = Path(f"{HOME_PATH}/.abra/apps").absolute()
 | 
			
		||||
YQ_PATH = Path(f"{HOME_PATH}/.abra/vendor/yq")
 | 
			
		||||
SCRIPT_PATH = Path(__file__).absolute().parent
 | 
			
		||||
REPOS_TO_SKIP = (
 | 
			
		||||
    "abra",
 | 
			
		||||
    "abra-apps",
 | 
			
		||||
    "abra-gandi",
 | 
			
		||||
    "abra-hetzner",
 | 
			
		||||
    "backup-bot",
 | 
			
		||||
    "coopcloud.tech",
 | 
			
		||||
    "coturn",
 | 
			
		||||
    "docker-cp-deploy",
 | 
			
		||||
    "docker-dind-bats-kcov",
 | 
			
		||||
    "docs.coopcloud.tech",
 | 
			
		||||
    "example",
 | 
			
		||||
    "gardening",
 | 
			
		||||
    "organising",
 | 
			
		||||
    "pyabra",
 | 
			
		||||
    "radicle-seed-node",
 | 
			
		||||
    "stack-ssh-deploy",
 | 
			
		||||
    "swarm-cronjob",
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
log = getLogger(__name__)
 | 
			
		||||
basicConfig()
 | 
			
		||||
log.setLevel(DEBUG)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def _run_cmd(cmd, shell=False, **kwargs):
 | 
			
		||||
    """Run a shell command."""
 | 
			
		||||
    args = [split(cmd)]
 | 
			
		||||
 | 
			
		||||
    if shell:
 | 
			
		||||
        args = [cmd]
 | 
			
		||||
        kwargs = {"shell": shell}
 | 
			
		||||
 | 
			
		||||
    try:
 | 
			
		||||
        return check_output(*args, **kwargs).decode("utf-8").strip()
 | 
			
		||||
    except Exception as exception:
 | 
			
		||||
        log.error(f"Failed to run {cmd}, saw {str(exception)}")
 | 
			
		||||
        exit(1)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def get_repos_json():
 | 
			
		||||
    """ Retrieve repo list from Gitea """
 | 
			
		||||
    url = "https://git.autonomic.zone/api/v1/orgs/coop-cloud/repos"
 | 
			
		||||
 | 
			
		||||
    repos = []
 | 
			
		||||
    response = True
 | 
			
		||||
    page = 1
 | 
			
		||||
 | 
			
		||||
    try:
 | 
			
		||||
        while response:
 | 
			
		||||
            response = get(url + f"?page={page}", timeout=10).json()
 | 
			
		||||
            repos.extend(response)
 | 
			
		||||
            page += 1
 | 
			
		||||
 | 
			
		||||
        return repos
 | 
			
		||||
    except Exception as exception:
 | 
			
		||||
        log.error(f"Failed to retrieve {url}, saw {str(exception)}")
 | 
			
		||||
        exit(1)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def main():
 | 
			
		||||
    """Run the script."""
 | 
			
		||||
    repos = [p["full_name"] for p in get_repos_json()]
 | 
			
		||||
    repos.sort()
 | 
			
		||||
    for repo in repos:
 | 
			
		||||
        print(f'"{repo}",')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
main()
 | 
			
		||||
		Reference in New Issue
	
	Block a user