refactor: move moss-all-repos to teapot.py

This commit is contained in:
张泊明518370910136 2025-03-26 21:28:51 -04:00
parent 55ad49d199
commit 691c8a4adc
GPG Key ID: CA088E6D9284F870
2 changed files with 19 additions and 14 deletions

View File

@ -1,4 +1,3 @@
import glob
import json import json
import os import os
import re import re
@ -7,7 +6,6 @@ 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
@ -77,18 +75,7 @@ def clone_all_repos() -> None:
@app.command("moss-all-repos", help="moss all gitea repos") @app.command("moss-all-repos", help="moss all gitea repos")
def moss_all_repos(language: str = "cc", wildcards: List[str] = ["*.*"]) -> None: def moss_all_repos(language: str = "cc", wildcards: List[str] = ["*.*"]) -> None:
m = mosspy.Moss(settings.moss_user_id, language) url = tea.pot.moss_all_repos(language, wildcards)
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) echo("Report Url: " + url)

View File

@ -1,8 +1,12 @@
import functools import functools
import glob
import os
import re import re
from datetime import datetime from datetime import datetime
from typing import Any, Callable, Dict, List, Optional, TypeVar from typing import Any, Callable, Dict, List, Optional, TypeVar
import mosspy
from joint_teapot.config import settings from joint_teapot.config import settings
from joint_teapot.utils.logger import logger from joint_teapot.utils.logger import logger
from joint_teapot.utils.main import default_repo_name_convertor, first from joint_teapot.utils.main import default_repo_name_convertor, first
@ -116,6 +120,20 @@ class Teapot:
logger.info(f"{i}, {self.gitea.org_name}/{repo_name} cloning...") logger.info(f"{i}, {self.gitea.org_name}/{repo_name} cloning...")
self.git.repo_clean_and_checkout(repo_name, settings.default_branch) self.git.repo_clean_and_checkout(repo_name, settings.default_branch)
def moss_all_repos(self, language: str, wildcards: List[str]) -> str:
m = mosspy.Moss(settings.moss_user_id, language)
for repo_name in self.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")
return m.send()
def create_issue_for_repos( def create_issue_for_repos(
self, self,
repo_names: List[str], repo_names: List[str],