|
@@ -9,6 +9,7 @@
|
|
|
import os,sys,re
|
|
|
import logging
|
|
|
import argparse
|
|
|
+import yaml
|
|
|
|
|
|
from repo_sync.base_repo import BaseRepo
|
|
|
|
|
@@ -16,24 +17,31 @@ class GitHubRepo(BaseRepo):
|
|
|
'''
|
|
|
GitHubRepo class
|
|
|
'''
|
|
|
- def __init__(self, repo_name, repo_url, repo_branch, repo_path, repo_type):
|
|
|
- super(GitHubRepo, self).__init__(repo_name, repo_url, repo_branch, repo_path, repo_type)
|
|
|
- self.repo_type = 'github'
|
|
|
- self.repos=None
|
|
|
+ def __init__(self, user_name, repo_name, logger : logging.Logger):
|
|
|
+ super(GitHubRepo, self).__init__(user_name, repo_name,logger)
|
|
|
|
|
|
def sync(self):
|
|
|
'''
|
|
|
sync repo
|
|
|
'''
|
|
|
- self.logger.info("sync repo: %s", self.repo_name)
|
|
|
- self.sess.headers={
|
|
|
- "Authorization": "token 6b0b9"
|
|
|
- }
|
|
|
- if self.repos==None:
|
|
|
- self.repos = self.sess.get("https://api.github.com/user/repos").json()
|
|
|
- # if repo is not exist, create it
|
|
|
- if self.repo_name not in [repo["name"] for repo in self.repos]:
|
|
|
- self.logger.info("create repo: %s", self.repo_name)
|
|
|
- self.sess.post("https://api.github.com/user/repos", json={"name": self.repo_name})
|
|
|
+ # read conf/config.yml
|
|
|
+ with open("conf/config.yml", "r") as f:
|
|
|
+ config = yaml.load(f, Loader=yaml.FullLoader)
|
|
|
+ # get github token
|
|
|
+ zUser = config["zhizhou"]["user"]
|
|
|
+ if zUser == self.user_name:
|
|
|
+ self.repo_url = "https://github.com"+"/"+config["github"]["user"]+"/"+self.repo_name+".git"
|
|
|
+ self.logger.info("sync repo: %s", self.repo_name)
|
|
|
+ self.sess.headers={
|
|
|
+ "Authorization": "token "+config["github"]["token"],
|
|
|
+ }
|
|
|
+ if self.repos==None:
|
|
|
+ self.repos = self.sess.get("https://api.github.com/user/repos").json()
|
|
|
+ # if repo is not exist, create it
|
|
|
+ if self.repo_name not in [repo["name"] for repo in self.repos]:
|
|
|
+ self.logger.info("create repo: %s", self.repo_name)
|
|
|
+ self.sess.post("https://api.github.com/user/repos", json={"name": self.repo_name})
|
|
|
|
|
|
- os.system("git push %s %s" % (self.repo_url, self.repo_path))
|
|
|
+ os.system("git push %s %s" % (self.repo_url, self.repo_path))
|
|
|
+ else:
|
|
|
+ self.logger.info("not sync repo: %s", self.repo_name)
|