目录

  • 项目说明
  • 使用到的 bitbucket api
    • 1、获取仓库列表
      • 接口URL
      • 请求方式
      • Content-Type
      • 请求Header参数
      • 请求Query参数
    • 管理员的访问凭证获取方式
    • 2、获取仓库下的项目列表
      • 接口URL
      • 请求方式
      • Content-Type
      • 请求Header参数
      • 请求Query参数
    • bitbucket server rest apis
  • 项目介绍
    • 项目构成
    • 配置文件说明
    • 使用说明
  • 写在后面

项目说明

本项目用于代码仓库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服务器

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参数

参数名 示例值 参数类型 是否必填 参数描述
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 仓库urlbaseUrl: #管理员的访问凭证 或者有权查看所有仓库的用户访问凭证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/5153900host: 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# 开启SSLproperties: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。。。

代码仓库 地址

bitbucket 代码备份相关推荐

  1. 博客使用的CSS代码备份

    CSS代码备份 /*simplememory*/ #google_ad_c1, #google_ad_c2 {display: none; }.syntaxhighlighter a, .syntax ...

  2. 拉拉交友 http://www.les-sky.net 代码备份: 开发自己的可视化编辑器

    拉拉交友 http://www.les-sky.net/ 代码备份: 开发自己的可视化编辑器最近使用了FreeTextBox可以,发现加载可视化编辑器的速度非常的慢,新版本的FreeTextBox已经 ...

  3. Android短信管家视频播放器代码备份

    自己保留备份,增强记忆 这是video的类 public class VideoActivity extends Activity {/*** 解析网络页面*/private WebView wv;/ ...

  4. SSM整合时Maven项目的pom.xml版本兼容的代码备份

    场景 jdk:1.8 Tomcat:7.0 本地mysql:8.0 Eclipse:Eclipse Jee Photon Spring:4.3.8 AOP:1.8.0 mybatis:3.3.0 My ...

  5. Bitbucket代码合并及冲突处理

    一.各分支代码冲突处理 同步个人分支 2.本地个人分支合并master分支,处理冲突 处理单个文件的: 3.在本地启动测试,确认代码没有问题 4.commit个人分支到远程仓库 二.分支代码合并 在b ...

  6. 关于生成漏洞信息属性代码备份

    1,先爬取基础属性 2,爬取影响产品 3,爬取对应的POC信息 4,添加其他属性 具体代码:密码myname大写! https://www.exploit-db.com/能够成功下载的一个CVE编号

  7. html和js基础功能代码备份

    1)贴图:<img src="图片地址"> 2)加入连接:<a href="所要连接的相关地址">写上你想写的字</a> 3 ...

  8. 获取手机号码被360标记问题(代码备份)

    /***********************************************************************     * 检查大号是否被360标志     * 作者 ...

  9. 我的mongoose代码备份

    const users = ones.docs.map(x => {return new ObjectId(x.id);})const userInDepart = await UserDepa ...

  10. mysql+代码备份,一个很简单的MYSQL数据库备份脚本代码

    假设有三个库 m_site,m_bbs,m_cms. #!/bin/sh # # MySQL Backup Scripts. # Created by david. # # Created time: ...

最新文章

  1. poj2912(种类并查集+枚举)
  2. Python执行 SQL 命令并实时打印输出
  3. JAVA引用和垃圾回收
  4. [MEGA DEAL]完整的Java编程训练营(94%折扣)
  5. 谷歌浏览器怎么截图 Google Chrome截图方法
  6. OpenCV imread读取图片,imshow展示图片,出现cv:Exception at memory location异常
  7. python3中find函数的用法_Python3正则匹配re.split,re.finditer及re.findall函数用法详解...
  8. 教学网站毕业设计源码【演示视频】
  9. rs485与modbus流程图_RS485通讯基础及通讯应用详解
  10. 基于HTML的旋转立方体的实现
  11. 基于51单片机及MAX6675的8通道测温系统 protues仿真
  12. 素人程序员:如何在技术浪潮更迭中保持较高成长速度?
  13. Error writing to process file pid.nbf问题
  14. java poi 操作word遇到的问题
  15. 关于length specifier
  16. 地热能类毕业论文文献有哪些?
  17. android实现音乐播放器(进度条)
  18. memcache1.5.8——LUR策略
  19. java串口读取数据设置超时时间,附详细答案
  20. jdk新特性::作用

热门文章

  1. IDEA集成Gerrit插件
  2. python实现排序算法lowb三人组之冒泡排序
  3. 卖油的都开始卖菜了,打败你的往往不是对手
  4. 安卓一键清理内存_雨点清理安卓版下载-雨点清理官方版下载v1.0
  5. 阿里P9首次公开:阿里面试官都问些什么?
  6. 记录下如何判断错误:no such file or directory
  7. CSDN,hen hao,hen qiang da
  8. html5辅助,Disable HTML5 Autoplay
  9. video标签 设置autoplay无效
  10. TP5 页面跳转与重定向