Browse Source

增加仓库私有公开选项,修复gitlab错误

liuyuqi-dellpc 1 year ago
parent
commit
f9ebd7b3d7

+ 6 - 0
.env

@@ -1,29 +1,35 @@
 # github
 github_username="jianboy"
 github_token="xx"
+github_private=true
 
 # gitlab
 gitlab_host="https://gitlab.com"
 gitlab_username="jianboy"
 gitlab_token="glpat-xx-m1"
+gitlab_private=true
 
 # gogs
 gogs_host = "https://git.yoqi.me"
 gogs_username="xx"
 gogs_token="xx"
+gogs_private=true
 
 #gitea
 gitea_username="xx"
 gitea_token=""
+gitea_private=true
 
 # gitee
 gitee_username="xx"
 gitee_token="xx"
+gitee_private=true
 
 # coding
 coding_username="xx"
 coding_token="xx"
 coding_project="flutter-team"
+coding_private=true
 
 # bitbucket
 bitbucket_username=""

+ 6 - 5
repo_sync/platform/coding/coding.py

@@ -24,6 +24,7 @@ class CodingIE(BasePlatform):
         """init"""
         super().__init__(username , token)
         self.project_name = params.get('coding_project', '')
+        self.repo_private = True if params.get('coding_private', "true").lower()  == 'true' else False
 
     def create_project(self):
         ''' createt a project '''
@@ -135,11 +136,11 @@ class CodingIE(BasePlatform):
 
         url = f'{self._host}/open-api/repos'
         data = {
-            "Action": "CreateGitDepot",
-            "ProjectId": project.Id,
-            "DepotName": repo_name,
-            "Shared": False,
-            "Description": ""
+                "Action": "CreateGitDepot",
+                "ProjectId": project.Id, 
+                "DepotName": repo_name,
+                "Shared": self.repo_private,
+                "Description": "this is your first depot"
             }
         r = self.sess.post(url, json=data)
         if r.status_code == 200:

+ 5 - 1
repo_sync/platform/gitee.py

@@ -21,11 +21,15 @@ class GiteeIE(BasePlatform):
     def __init__(self, username:str, token:str,host:str =None, params: dict = None) -> None:
         super().__init__(username=username, token=token)
         self.sess.headers.update({'Content-Type': 'multipart/form-data'})
+        self.repo_private = True if params.get('gitee_private', "true").lower()  == 'true' else False
 
     def create_repo(self, repo_name: str):
         """create a repo"""        
         url = f'{self._api}/user/repos'
-        form_data = {'name': repo_name, 'private': True}
+        form_data = {
+        'name': repo_name, 
+        'private': self.repo_private,
+        }
         r = self.sess.post(url, params=form_data)
         if r.status_code != 201:
             print(

+ 2 - 1
repo_sync/platform/github.py

@@ -23,13 +23,14 @@ class GithubIE(BasePlatform):
         # 60 unauthenticated requests per hour
         if self.token:
             self.sess.headers.update({'Accept': 'application/vnd.github.v3+json'})
+        self.repo_private = True if params.get('gitlab_private', "true").lower()  == 'true' else False
 
     def create_repo(self, repo_name: str):
         """create a repo"""
         url = f'{self._host}/user/repos'
         payload = {
             'name': repo_name,
-            'private': True,
+            'private': self.repo_private,
             'has_issues': True,
             'has_projects': False,
             'has_wiki': False,

+ 3 - 2
repo_sync/platform/gitlab.py

@@ -17,8 +17,9 @@ class GitlabIE(BasePlatform):
 
     def __init__(self, username:str, token:str, host:str =None, params: dict = None) -> None:
         super().__init__(username=username, token=token)
-        self.host = self.host or 'https://gitlab.com'
+        self.host = host or 'https://gitlab.com'
         self.sess.headers.update({"Authorization": f"Bearer {self.token}"})
+        self.repo_private = 'private' if params.get('gitlab_private', "true").lower()  == 'true' else 'public'
 
     def create_repo(self, repo_name: str):
         """create a repo
@@ -27,7 +28,7 @@ class GitlabIE(BasePlatform):
         url = f"{self.host}/api/v4/projects"
         payload = {
             "name": repo_name,
-            "visibility": "private",
+            "visibility": self.repo_private,
         }
         r = self.sess.post(url, data=json.dumps(payload))
         if r.status_code != 201:

+ 2 - 1
repo_sync/platform/gogs.py

@@ -19,6 +19,7 @@ class GogsIE(BasePlatform):
     def __init__(self, username:str, token:str, host:str =None ,params: dict = None) -> None:
         super().__init__(username=username,token=token)
         self._host = 'https://git.yoqi.me' if host is None else host
+        self.repo_private = True if params.get('gogs_private', "true").lower()  == 'true' else False
 
     def create_org_repo(self, org_name: str, repo_name: str):
         """create org repo"""
@@ -26,7 +27,7 @@ class GogsIE(BasePlatform):
         payload = {
             'name': repo_name,
             'description': 'This is your first repository',
-            'private': True,
+            'private': self.repo_private,
             'auto_init': True,
             'gitignores': 'Go',
             'license': 'Apache v2 License',