feat: moss all repos

This commit is contained in:
张泊明518370910136 2025-03-26 18:20:01 -04:00
parent d094d7a974
commit 07db55402b
GPG Key ID: CA088E6D9284F870
3 changed files with 23 additions and 2 deletions

View File

@ -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],

View File

@ -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"

View File

@ -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