feat: moss all repos
This commit is contained in:
parent
d094d7a974
commit
07db55402b
|
@ -1,3 +1,4 @@
|
|||
import glob
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
|
@ -6,6 +7,7 @@ from pathlib import Path
|
|||
from time import sleep
|
||||
from typing import TYPE_CHECKING, List
|
||||
|
||||
import mosspy
|
||||
from filelock import FileLock
|
||||
from git import Repo
|
||||
from typer import Argument, Exit, Option, Typer, echo
|
||||
|
@ -14,8 +16,6 @@ from joint_teapot.config import Settings, set_settings, settings
|
|||
from joint_teapot.teapot import Teapot
|
||||
from joint_teapot.utils import joj3
|
||||
from joint_teapot.utils.logger import logger, set_logger
|
||||
from joint_teapot.utils.main import first
|
||||
from joint_teapot.workers.joj import JOJ
|
||||
|
||||
if TYPE_CHECKING:
|
||||
import focs_gitea
|
||||
|
@ -75,6 +75,23 @@ def clone_all_repos() -> None:
|
|||
tea.pot.clone_all_repos()
|
||||
|
||||
|
||||
@app.command("moss-all-repos", help="moss all gitea repos")
|
||||
def moss_all_repos(language: str = "cc", wildcards: List[str] = ["*.*"]) -> None:
|
||||
m = mosspy.Moss(settings.moss_user_id, language)
|
||||
for repo_name in tea.pot.gitea.get_all_repo_names():
|
||||
base_dir = os.path.join(settings.repos_dir, repo_name)
|
||||
for wildcard in wildcards:
|
||||
full_wildcard = os.path.join(base_dir, wildcard)
|
||||
for file in glob.glob(full_wildcard, recursive=True):
|
||||
if not os.path.isfile(file):
|
||||
continue
|
||||
logger.info(f"Adding file {file}")
|
||||
m.files.append((file, os.path.relpath(file, settings.repos_dir)))
|
||||
logger.info("Sending files")
|
||||
url = m.send()
|
||||
echo("Report Url: " + url)
|
||||
|
||||
|
||||
@app.command("create-issues", help="create issues on gitea")
|
||||
def create_issue_for_repos(
|
||||
repo_names: List[str],
|
||||
|
|
|
@ -43,6 +43,9 @@ class Settings(BaseSettings):
|
|||
joj3_lock_file_path: str = ".git/teapot.lock"
|
||||
joj3_lock_file_timeout: int = 30
|
||||
|
||||
# moss
|
||||
moss_user_id: int
|
||||
|
||||
# log file
|
||||
log_file_path: str = "joint-teapot.log"
|
||||
stderr_log_level: str = "INFO"
|
||||
|
|
|
@ -6,6 +6,7 @@ GitPython>=3.1.18
|
|||
joj-submitter>=0.0.8
|
||||
loguru>=0.5.3
|
||||
mattermostdriver>=7.3.2
|
||||
mosspy>=1.0.9
|
||||
patool>=1.12
|
||||
pydantic>=2.0.2
|
||||
pydantic-settings>=2.0.1
|
||||
|
|
Loading…
Reference in New Issue
Block a user