bitbucket 代码备份


项目说明

本项目用于代码仓库bitbucket进行备份,通过配置访问凭证,拉取bitbucket所有的仓库,通过遍历仓库内的项目,使用git命令进行代码下载备份

本项目使用到的bitbucket服务器为 Atlassian Bitbucket v5.8.1

使用到的 bitbucket api

1、获取仓库列表

接口URL

http://{your bitbucket server url}/rest/api/1.0/projects

请求方式

GET

Content-Type

json

请求Header参数
参数名示例值参数类型是否必填参数描述
AuthorizationBearer 管理员的访问凭证Text访问凭证
请求Query参数
参数名示例值参数类型是否必填参数描述
limit10000Text请求返回的记录条数,默认值为25
curl --location --request GET --X GET 'http://{your bitbucket server url}/rest/api/1.0/projects?limit=1000' \
--header 'Authorization: Bearer 管理员的访问凭证' \
--header 'Content-Type: application/json' \
--data ''

管理员的访问凭证获取方式

1、使用管理员账号密码登录bitbucket服务器
bitbucket 登录界面
2、点击用户头像,管理账户
在这里插入图片描述
3、点击左侧菜单列表中的 Personal access tokens
在这里插入图片描述
4、点击 Create a token 按钮,创建访问凭证
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5、用户凭证需要单独记录,对话框关闭后,只能修改权限,无法查看密钥,只能删除后,重复上述操作
在这里插入图片描述

2、获取仓库下的项目列表

接口URL

http://{your bitbucket server url}/rest/api/1.0/projects/{projectKey}/repos?limit=1000

请求方式

GET

Content-Type

json

请求Header参数
参数名示例值参数类型是否必填参数描述
AuthorizationBearer 管理员的访问凭证Text访问凭证
请求Query参数
参数名示例值参数类型是否必填参数描述
limit1000Text请求返回的记录条数,默认值为25
curl --location --request GET --X GET 'http://{your bitbucket server url}/rest/api/1.0/projects/{projectKey}/repos?limit=1000' \
--header 'Authorization: Bearer 管理员的访问凭证' \
--header 'Content-Type: application/json' \
--data ''

bitbucket server rest apis

bitbucket server rest apis 地址

项目介绍

项目构成

├─java
│  └─com
│      └─tools
│          └─bitbucket
│              │  BitbucketApplication.java            启动类
│              ├─config
│              │      BitbucketConfig.java             bitbucket配置类
│              │      ThreadPoolConfig.java            线程池配置类
│              ├─controller
│              │      BitbucketController.java         
│              ├─pojo
│              │      AjaxResult.java
│              │      BackUpRequest.java
│              │      CloneObject.java
│              │      LinkObject.java
│              │      BitbucketRepository.java
│              │      Repository.java
│              ├─service
│              │      BackUpAsyncService.java
│              └─utils
│                      BashUtils.java                  shell执行工具类
│                      FileUtils.java                  文件操作工具类
│                      HttpUtils.java                  http请求工具栏
│                      MailUtils.java                  邮件发送工具类
│                      SpringUtils.java                spring工具类
│
└─resources
    │  application.yml                                 配置文件
    ├─static
    └─templates

配置文件说明

server:
  #服务端口
  port: 8888

# bitbucket 仓库配置
bitbucket:
  #bitbucket 仓库url
  baseUrl: 
  #管理员的访问凭证 或者有权查看所有仓库的用户访问凭证
  adminToken: 
  #备份路径 ,不要包含中文 以及 空格,可以在备份时,临时将文件夹改为英文轮径,备份完成后再改为中文路径
  backUpPath: 
  #需要备份的项目和仓库
  backUpProjects:
#    - key: "YSXM"
#      name: "验收项目"
    - key: "CSXM"
      name: "测试项目"
      repositoryList:
        - href: "http://xxx/xxx.git"
          name: "http"
  #需要跳过的项目和仓库  例如 文件大于1G的仓库,建议手动备份
  ignoreProjects:
#    - key: "YSXM"
#      name: "验收项目"
    - key: "CSXM"
      name: "测试项目"
      repositoryList:
        - href: "http://xxx/xxx.git"
          name: "http"


# 邮箱配置
spring:
  mail:
    # 邮箱主机 smtp.163.com,smtp.qq.com,smtp.aliyun.com https://blog.51cto.com/aiyc/5153900
    host: smtp.163.com
    # 邮箱用户名
    username: xxx@163.com
    # 用户昵称,自定义配置
    nickname: 运维部-xxx
    # 授权码 https://consumer.huawei.com/cn/support/content/zh-cn15872099/
    password: 
    # 端口
    port: 465
    # 协议
    protocol: smtp
    # 默认编码
    default-encoding: UTF-8
    # 开启SSL
    properties:
      mail:
        smtp:
          ssl:
            enable: true
          # 认证
          auth: true
          # 开启SSL安全模式
          starttls:
            enable: true
            # 必须启动SSL安全模式
            required: true
          # 套接字工厂端口
          socketFactory:
            port: 465
            # 套接字工厂类
            class: javax.net.ssl.SSLSocketFactory

使用说明

1、修改配置文件
2、启动项目
3、通过接口调用工具发送post请求
4、等待邮件通知

影响初次备份速度的因素如下

网络IO(主要因素):项目运行时,网络使用率近乎100%
线程数:默认的线程数为5个,若cpu和内存使用率偏高,可以通过线程配置类自行修改
磁盘IO:几乎没有影响

初次备份完成后,可以适当调整线程数,提高同步效率

写在后面

本想通过代码,解放双手,结果代码又臭又长,到处都是 bad smell。。。

代码仓库 地址

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_42232745

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值