bitbucket 代码备份
目录
- 项目说明
- 使用到的 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 代码备份相关推荐
- 博客使用的CSS代码备份
CSS代码备份 /*simplememory*/ #google_ad_c1, #google_ad_c2 {display: none; }.syntaxhighlighter a, .syntax ...
- 拉拉交友 http://www.les-sky.net 代码备份: 开发自己的可视化编辑器
拉拉交友 http://www.les-sky.net/ 代码备份: 开发自己的可视化编辑器最近使用了FreeTextBox可以,发现加载可视化编辑器的速度非常的慢,新版本的FreeTextBox已经 ...
- Android短信管家视频播放器代码备份
自己保留备份,增强记忆 这是video的类 public class VideoActivity extends Activity {/*** 解析网络页面*/private WebView wv;/ ...
- 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 ...
- Bitbucket代码合并及冲突处理
一.各分支代码冲突处理 同步个人分支 2.本地个人分支合并master分支,处理冲突 处理单个文件的: 3.在本地启动测试,确认代码没有问题 4.commit个人分支到远程仓库 二.分支代码合并 在b ...
- 关于生成漏洞信息属性代码备份
1,先爬取基础属性 2,爬取影响产品 3,爬取对应的POC信息 4,添加其他属性 具体代码:密码myname大写! https://www.exploit-db.com/能够成功下载的一个CVE编号
- html和js基础功能代码备份
1)贴图:<img src="图片地址"> 2)加入连接:<a href="所要连接的相关地址">写上你想写的字</a> 3 ...
- 获取手机号码被360标记问题(代码备份)
/*********************************************************************** * 检查大号是否被360标志 * 作者 ...
- 我的mongoose代码备份
const users = ones.docs.map(x => {return new ObjectId(x.id);})const userInDepart = await UserDepa ...
- mysql+代码备份,一个很简单的MYSQL数据库备份脚本代码
假设有三个库 m_site,m_bbs,m_cms. #!/bin/sh # # MySQL Backup Scripts. # Created by david. # # Created time: ...
最新文章
- poj2912(种类并查集+枚举)
- Python执行 SQL 命令并实时打印输出
- JAVA引用和垃圾回收
- [MEGA DEAL]完整的Java编程训练营(94%折扣)
- 谷歌浏览器怎么截图 Google Chrome截图方法
- OpenCV imread读取图片,imshow展示图片,出现cv:Exception at memory location异常
- python3中find函数的用法_Python3正则匹配re.split,re.finditer及re.findall函数用法详解...
- 教学网站毕业设计源码【演示视频】
- rs485与modbus流程图_RS485通讯基础及通讯应用详解
- 基于HTML的旋转立方体的实现
- 基于51单片机及MAX6675的8通道测温系统 protues仿真
- 素人程序员:如何在技术浪潮更迭中保持较高成长速度?
- Error writing to process file pid.nbf问题
- java poi 操作word遇到的问题
- 关于length specifier
- 地热能类毕业论文文献有哪些?
- android实现音乐播放器(进度条)
- memcache1.5.8——LUR策略
- java串口读取数据设置超时时间,附详细答案
- jdk新特性::作用