mirror of
https://github.com/Balshgit/github_mirror.git
synced 2025-09-10 23:20:41 +03:00
Compare commits
5 Commits
1162cb2fb3
...
4704763995
Author | SHA1 | Date | |
---|---|---|---|
|
4704763995 | ||
161517c0e9 | |||
2a683e09f3 | |||
438bf4197c | |||
c1b716b310 |
2
.gitignore
vendored
2
.gitignore
vendored
@ -63,7 +63,7 @@ __pycache__/
|
||||
.Python
|
||||
env/
|
||||
develop-eggs/
|
||||
dist/
|
||||
# dist/
|
||||
downloads/
|
||||
eggs/
|
||||
lib/
|
||||
|
@ -1 +0,0 @@
|
||||
3.9.1
|
13
README.md
13
README.md
@ -2,6 +2,12 @@
|
||||
|
||||
Use python version > 3.8
|
||||
|
||||
## Build
|
||||
|
||||
```bash
|
||||
pyinstaller -F github_mirror.py
|
||||
```
|
||||
|
||||
|
||||
## Argumetns:
|
||||
|
||||
@ -46,3 +52,10 @@ python3 github_mirror.py [-h] [-g GROUP] (-u URLS [URLS ...] | -f FILE) -t TOKEN
|
||||
python3 github_mirror.py -f github_mirrors.txt -u "https://github.com/s3rius/FastAPI-template.git" -t "gtb-QwertY125kde"
|
||||
|
||||
python3 github_mirror.py --giturl "https://gitea.company.ru" -t "gtb-QwertY1245kde" -u "https://github.com/Balshgit/sonar-scanner.git" -g "Personal" -T "ghb-Qwerty321ldf"
|
||||
|
||||
|
||||
## Create Bin
|
||||
|
||||
```bash
|
||||
pyinstaller github_mirror.py -F
|
||||
```
|
@ -1,5 +1,6 @@
|
||||
import random
|
||||
from typing import Union
|
||||
from http import HTTPStatus
|
||||
|
||||
import requests
|
||||
from requests import Response
|
||||
@ -9,11 +10,20 @@ from core.utils import logger
|
||||
|
||||
class RepositoryCreator:
|
||||
|
||||
def __init__(self, git_url: str, headers: dict):
|
||||
def __init__(self, git_url: str, headers: dict) -> None:
|
||||
self.git_url = git_url
|
||||
self.headers = headers
|
||||
self.HTTP_201_CREATED = 201
|
||||
self.HTTP_200_OK = 200
|
||||
|
||||
def create_repository_mirror(self, github_url: str, group_id: str, auth_token: str) -> None:
|
||||
"""
|
||||
Base action for one thread. Creates repository, add mirror url and triggers pull at te end
|
||||
|
||||
:param github_url: GitGub url which will be mirrored
|
||||
:param group_id: Gitlab group id which contains created repository
|
||||
:param auth_token: GitGub token to access private repositories
|
||||
"""
|
||||
|
||||
self.__create_new_project(github_url, group_id, auth_token)
|
||||
|
||||
def __git_request(self, method: str, url: str, data: dict = None) -> Union[Response, None]:
|
||||
"""
|
||||
@ -53,26 +63,14 @@ class RepositoryCreator:
|
||||
|
||||
request = self.__git_request('POST', f'{self.git_url}/api/v1/repos/migrate', git_data)
|
||||
try:
|
||||
if request.status_code == self.HTTP_201_CREATED:
|
||||
repo_data = request.json()
|
||||
name_with_namespace = repo_data.get('full_name', None)
|
||||
if request.status_code == HTTPStatus.CREATED:
|
||||
response = request.json()
|
||||
name_with_namespace = response.get('full_name', None)
|
||||
if name_with_namespace:
|
||||
logger.info(f'Repository {name_with_namespace} has been created')
|
||||
else:
|
||||
logger.info(f'Repository {repo_data["name"]} has been created')
|
||||
return repo_data['id']
|
||||
logger.info(f'Repository {response["name"]} has been created')
|
||||
else:
|
||||
logger.error(f'Cant create {name} project. Status code: {request.status_code}. Reason: {request.text}')
|
||||
except AttributeError:
|
||||
pass
|
||||
|
||||
def create_repository_mirror(self, github_url: str, group_id: str, auth_token: str):
|
||||
"""
|
||||
Base action for one thread. Creates repository, add mirror url and triggers pull at te end
|
||||
|
||||
:param github_url: GitGub url which will be mirrored
|
||||
:param group_id: Gitlab group id which contains created repository
|
||||
:param auth_token: GitGub token to access private repositories
|
||||
"""
|
||||
|
||||
self.__create_new_project(github_url, group_id, auth_token)
|
||||
|
@ -27,7 +27,7 @@ else:
|
||||
logger.addHandler(console_handler)
|
||||
|
||||
|
||||
def threads_ready_statistic(threads: List[Thread]):
|
||||
def threads_ready_statistic(threads: List[Thread]) -> None:
|
||||
"""
|
||||
Getting information how many threads are running right now
|
||||
|
||||
|
BIN
dist/github_mirror
vendored
Executable file
BIN
dist/github_mirror
vendored
Executable file
Binary file not shown.
@ -6,7 +6,7 @@ from core.repo_creator import RepositoryCreator
|
||||
from core.utils import logger, threads_ready_statistic
|
||||
|
||||
|
||||
def main():
|
||||
def main() -> None:
|
||||
|
||||
parser = create_parser()
|
||||
args = parser.parse_args(sys.argv[1:])
|
||||
|
@ -1 +1,2 @@
|
||||
requests
|
||||
requests
|
||||
pyinstaller
|
Loading…
x
Reference in New Issue
Block a user