feat: moss all repos
This commit is contained in:
parent
d094d7a974
commit
07db55402b
|
@ -1,3 +1,4 @@
|
||||||
|
import glob
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
|
@ -6,6 +7,7 @@ from pathlib import Path
|
||||||
from time import sleep
|
from time import sleep
|
||||||
from typing import TYPE_CHECKING, List
|
from typing import TYPE_CHECKING, List
|
||||||
|
|
||||||
|
import mosspy
|
||||||
from filelock import FileLock
|
from filelock import FileLock
|
||||||
from git import Repo
|
from git import Repo
|
||||||
from typer import Argument, Exit, Option, Typer, echo
|
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.teapot import Teapot
|
||||||
from joint_teapot.utils import joj3
|
from joint_teapot.utils import joj3
|
||||||
from joint_teapot.utils.logger import logger, set_logger
|
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:
|
if TYPE_CHECKING:
|
||||||
import focs_gitea
|
import focs_gitea
|
||||||
|
@ -75,6 +75,23 @@ def clone_all_repos() -> None:
|
||||||
tea.pot.clone_all_repos()
|
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")
|
@app.command("create-issues", help="create issues on gitea")
|
||||||
def create_issue_for_repos(
|
def create_issue_for_repos(
|
||||||
repo_names: List[str],
|
repo_names: List[str],
|
||||||
|
|
|
@ -43,6 +43,9 @@ class Settings(BaseSettings):
|
||||||
joj3_lock_file_path: str = ".git/teapot.lock"
|
joj3_lock_file_path: str = ".git/teapot.lock"
|
||||||
joj3_lock_file_timeout: int = 30
|
joj3_lock_file_timeout: int = 30
|
||||||
|
|
||||||
|
# moss
|
||||||
|
moss_user_id: int
|
||||||
|
|
||||||
# log file
|
# log file
|
||||||
log_file_path: str = "joint-teapot.log"
|
log_file_path: str = "joint-teapot.log"
|
||||||
stderr_log_level: str = "INFO"
|
stderr_log_level: str = "INFO"
|
||||||
|
|
|
@ -6,6 +6,7 @@ GitPython>=3.1.18
|
||||||
joj-submitter>=0.0.8
|
joj-submitter>=0.0.8
|
||||||
loguru>=0.5.3
|
loguru>=0.5.3
|
||||||
mattermostdriver>=7.3.2
|
mattermostdriver>=7.3.2
|
||||||
|
mosspy>=1.0.9
|
||||||
patool>=1.12
|
patool>=1.12
|
||||||
pydantic>=2.0.2
|
pydantic>=2.0.2
|
||||||
pydantic-settings>=2.0.1
|
pydantic-settings>=2.0.1
|
||||||
|
|
Loading…
Reference in New Issue
Block a user