首页 > 其他 > 详细

git_backup.py gitlab项目备份

时间:2019-12-30 01:01:45      阅读:126      评论:0      收藏:0      [点我收藏+]
#!/usr/bin/env python
# coding=utf-8
# gitlab源码备份

import os
import datetime
import requests

class GitlabBackup:
    def backup_projects(self):
        url = http://xxx.xxx.xxx.xxx/api/v3/projects/all?page=1&per_page=1000
        headers = {PRIVATE-TOKEN: xxxxxx}
        result = requests.get(url, headers=headers, verify=False)
        json_obj = result.json()
        path = datetime.datetime.now().strftime(%Y%m%d-git-src)
        os.system("rm -rf " + path)
        os.system("mkdir " + path)
        for proj in json_obj:
            self.backup(proj, path)
        # clear data 1 month ago
        del_date = datetime.datetime.now() + datetime.timedelta(days=-32)
        del_path = del_date.strftime("%Y%m*")
        os.system("rm -rf " + del_path)

    def backup(self, proj, path):
        url = proj[http_url_to_repo]
        dir = path + / + proj[path_with_namespace]
        branch = proj[default_branch]
        if branch is not None:
            print starting backup ------> + dir + , + branch
            if os.path.exists(dir):
                os.system("rm -rf " + dir)

            os.system("git clone -b " + branch + " " + url.replace("http://", "http://xxx:xxx@") + " " + dir)



if __name__ == __main__:
    gitlab = GitlabBackup()
    gitlab.backup_projects()

 

git_backup.py gitlab项目备份

原文:https://www.cnblogs.com/zhaohz/p/12117156.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!