bitbucket 代码备份
  CMERiIcVAU9t 2023年11月02日 54 0

项目说明

本项目用于代码仓库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参数

参数名

示例值

参数类型

是否必填

参数描述

Authorization

Bearer 管理员的访问凭证

Text


访问凭证

请求Query参数

参数名

示例值

参数类型

是否必填

参数描述

limit

10000

Text


请求返回的记录条数,默认值为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、点击用户头像,管理账户


bitbucket 代码备份_参数类型_02

3、点击左侧菜单列表中的 Personal access tokens


bitbucket 代码备份_json_03

4、点击 Create a token 按钮,创建访问凭证


bitbucket 代码备份_参数类型_04

bitbucket 代码备份_json_05

bitbucket 代码备份_json_06

5、用户凭证需要单独记录,对话框关闭后,只能修改权限,无法查看密钥,只能删除后,重复上述操作 在这里插入图片描述

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

接口URL

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

请求方式

GET

Content-Type

json

请求Header参数

参数名

示例值

参数类型

是否必填

参数描述

Authorization

Bearer 管理员的访问凭证

Text


访问凭证

请求Query参数

参数名

示例值

参数类型

是否必填

参数描述

limit

1000

Text


请求返回的记录条数,默认值为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:几乎没有影响

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

写在后面

代码仓库 地址

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  D04qQxYJZ4A6   2023年11月19日   24   0   0 mysqljava读写分离
  UP4ONKOBnkdD   2023年11月28日   24   0   0 java
  9JCEeX0Eg8g4   2023年12月10日   30   0   0 应用程序javaApache
  KRsXEGSB49bk   2023年11月27日   29   0   0 javaApache
  xwGmYGXf1w4S   2023年11月22日   43   0   0 tomcatjavaApache