golang--syncd快速發佈腳本

起因

公司使用syncd搭建的發佈系統,在有時候需要發佈的時候需要進行一系列繁瑣的操作才能發佈代碼。思考如何命令行一鍵快速發佈。

研究

通過抓公司頁面得到發佈的關鍵接口。

  • 登錄
    api/login

參數

參數名 備註
username
password md5

返回

type ResData struct {
	Code    int    `json:"code"`
	Data    Data   `json:"data"`
	Message string `json:"message"`
}
type Data struct {
	Token string `json:"token"`
}
  • 查看空間列表
    api/project/space/list
參數名 備註
token login返回
offset: 分頁
limit: 個數
type ResData struct {
	Code    int    `json:"code"`
	Data    Data   `json:"data"`
	Message string `json:"message"`
}
type List struct {
	ID          int    `json:"id"`
	Name        string `json:"name"`
	Description string `json:"description"`
	Ctime       int    `json:"ctime"`
}
type Data struct {
	List  []List `json:"list"`
	Total int    `json:"total"`
}
  • 查看項目列表
    api/project/list
    參數
參數名 備註
spaceId 空間ID
offset: 分頁
limit: 每頁條數
token login返回
type ResData struct {
	Code    int    `json:"code"`
	Data    Data   `json:"data"`
	Message string `json:"message"`
}
type List struct {
	ID        int    `json:"id"`
	Name      string `json:"name"`
	NeedAudit int    `json:"need_audit"` 
	Status    int    `json:"status"`
}
type Data struct {
	List  []List `json:"list"`
	Total int    `json:"total"`
}
  • 查看所有項目列表
    api/deploy/apply/project/all
參數名 備註
token login返回
type ResData []struct {
	ProjectID   int    `json:"project_id"`
	ProjectName string `json:"project_name"`
	SpaceID     int    `json:"space_id"`
	SpaceName   string `json:"space_name"`
}
  • 構建任務
    api/deploy/build/start
    參數
參數名 備註
id 項目ID
  • 查看構建狀態
    api/deploy/build/status
    參數
參數名 備註
id 項目ID

返回

map[string]interface{}

在這裏插入圖片描述
status 解釋

	BUILD_STATUS_INIT    = 0
	BUILD_STATUS_RUNNING = 1
	BUILD_STATUS_DONE    = 2
	BUILD_STATUS_ERROR   = 3
  • 部署任務
    api/deploy/deploy/start
    參數
參數名 備註
id 項目ID
  • 部署狀態
    api/deploy/deploy/status
    參數
參數名 備註
id 項目ID

在這裏插入圖片描述
status 解釋

    DEPLOY_STATUS_NONE = 0
    DEPLOY_STATUS_START = 1
    DEPLOY_STATUS_SUCCESS = 2
    DEPLOY_STATUS_FAILED = 3

所以根據以上寫出代碼
代碼放在github了
github地址:syncd-console

1.做了項目名模糊查詢
2.未做回滾功能

效果

在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章