Spaces:
Runtime error
Runtime error
| import os | |
| import shutil | |
| from git import Repo | |
| def clone_repo(repo_url, clone_dir='cloned_repo'): | |
| """ | |
| Clones a GitHub repository to the local machine. | |
| :param repo_url: URL of the GitHub repository | |
| :param clone_dir: Directory where the repository will be cloned | |
| :return: List of markdown file paths | |
| """ | |
| if os.path.exists(clone_dir): | |
| shutil.rmtree(clone_dir) | |
| Repo.clone_from(repo_url, clone_dir) | |
| markdown_files = [] | |
| for root, _, files in os.walk(clone_dir): | |
| for file in files: | |
| if file.endswith('.md'): | |
| markdown_files.append(os.path.join(root, file)) | |
| return markdown_files | |
| def push_translated_files(repo_url, translated_files, clone_dir='cloned_repo'): | |
| """ | |
| Pushes translated files back to the GitHub repository. | |
| :param repo_url: URL of the GitHub repository | |
| :param translated_files: List of translated file data | |
| :param clone_dir: Directory where the repository is cloned | |
| """ | |
| repo = Repo(clone_dir) | |
| origin = repo.remote(name='origin') | |
| for file in translated_files: | |
| with open(os.path.join(clone_dir, file['filename']), 'w', encoding='utf-8') as f: | |
| f.write(file['content']) | |
| repo.index.add([file['filename'] for file in translated_files]) | |
| repo.index.commit('Add translated files') | |
| origin.push() | |
| def clean_local_repo(clone_dir='cloned_repo'): | |
| """ | |
| Cleans up the local cloned repository. | |
| :param clone_dir: Directory where the repository is cloned | |
| """ | |
| if os.path.exists(clone_dir): | |
| shutil.rmtree(clone_dir) | |