参数管理
This commit is contained in:
		
							parent
							
								
									41118f6d12
								
							
						
					
					
						commit
						cb90dc1f51
					
				
							
								
								
									
										127
									
								
								api_document.md
								
								
								
								
							
							
						
						
									
										127
									
								
								api_document.md
								
								
								
								
							| 
						 | 
				
			
			@ -1,4 +1,3 @@
 | 
			
		|||
---
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# API文档
 | 
			
		||||
| 
						 | 
				
			
			@ -19,7 +18,6 @@
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
### API接口
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
#### 用户注册(通过其他平台)
 | 
			
		||||
```
 | 
			
		||||
| 
						 | 
				
			
			@ -4830,8 +4828,133 @@ curl --location --request DELETE 'http://localhost:3000/api/ci/templates/10'
 | 
			
		|||
 | 
			
		||||
------
 | 
			
		||||
 | 
			
		||||
#### 参数列表查询
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
GET /api/ci/secrets/secrets?owner={owner}&repo={repo}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
*示例*
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
curl --location --request GET 'http://localhost:3000/api/ci/secrets?owner=test&repo=test'
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
*请求参数说明:*
 | 
			
		||||
 | 
			
		||||
| 参数名 | 必选 | 类型   | 说明       |
 | 
			
		||||
| ------ | ---- | ------ | ---------- |
 | 
			
		||||
| owner  | 是   | string | 仓库所有人 |
 | 
			
		||||
| repo   | 是   | string | 仓库名     |
 | 
			
		||||
 | 
			
		||||
*返回参数说明:*
 | 
			
		||||
 | 
			
		||||
| 参数名 | 类型   | 说明   |
 | 
			
		||||
| ------ | ------ | ------ |
 | 
			
		||||
| name   | string | 参数名 |
 | 
			
		||||
| data   | string | 参数值 |
 | 
			
		||||
| repo   | string | 仓库   |
 | 
			
		||||
 | 
			
		||||
返回值
 | 
			
		||||
 | 
			
		||||
```json
 | 
			
		||||
 [
 | 
			
		||||
        {
 | 
			
		||||
            "id": 1,
 | 
			
		||||
            "name": "test",
 | 
			
		||||
            "data": "test",
 | 
			
		||||
            "repo": "test"
 | 
			
		||||
        }
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
------
 | 
			
		||||
 | 
			
		||||
#### 参数新增/更新
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
POST  /api/ci/secrets?owner={owner}&repo={repo}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
*示例*
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
curl --location --request POST 'http://localhost:3000/api/ci/secrets?owner=test&repo=test' \
 | 
			
		||||
--data-raw ' {
 | 
			
		||||
            "name": "ip",
 | 
			
		||||
            "data": "1.1.1.1",
 | 
			
		||||
            "id": 21
 | 
			
		||||
}' 
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
*请求参数说明:*
 | 
			
		||||
 | 
			
		||||
| 参数名 | 必选 | 类型   | 说明         |
 | 
			
		||||
| ------ | ---- | ------ | ------------ |
 | 
			
		||||
| owner  | 是   | string | 仓库拥有者   |
 | 
			
		||||
| repo   | 是   | string | 仓库名       |
 | 
			
		||||
| name   | 是   | string | 参数名       |
 | 
			
		||||
| data   | 是   | string | 参数值       |
 | 
			
		||||
| id     | 否   | int    | id,更新时传 |
 | 
			
		||||
 | 
			
		||||
*返回参数说明:*
 | 
			
		||||
 | 
			
		||||
| 参数名  | 类型   | 说明         |
 | 
			
		||||
| ------- | ------ | ------------ |
 | 
			
		||||
| status  | int    | 状态码 0成功 |
 | 
			
		||||
| message | string | 消息         |
 | 
			
		||||
 | 
			
		||||
返回值
 | 
			
		||||
 | 
			
		||||
```json
 | 
			
		||||
{
 | 
			
		||||
    "status": 0,
 | 
			
		||||
    "message": "success"
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
------
 | 
			
		||||
 | 
			
		||||
#### 参数删除
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
DELETE  /api/ci/secrets/{id}/{name}?owner={owner}&repo={repo}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
*示例*
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
curl --location --request DELETE 'http://localhost:3000/api/ci/secrets/1/p2?owner=victor&repo=trustieTest' \
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
*请求参数说明:*
 | 
			
		||||
 | 
			
		||||
| 参数名 | 必选 | 类型   | 说明   |
 | 
			
		||||
| ------ | ---- | ------ | ------ |
 | 
			
		||||
| name   | 是   | string | 参数名 |
 | 
			
		||||
| id     | 是   | int    | 参数id |
 | 
			
		||||
 | 
			
		||||
*返回参数说明:*
 | 
			
		||||
 | 
			
		||||
| 参数名  | 类型   | 说明         |
 | 
			
		||||
| ------- | ------ | ------------ |
 | 
			
		||||
| status  | int    | 状态码 0成功 |
 | 
			
		||||
| message | string | 返回消息     |
 | 
			
		||||
 | 
			
		||||
返回值
 | 
			
		||||
 | 
			
		||||
```json
 | 
			
		||||
{
 | 
			
		||||
    "status": 0,
 | 
			
		||||
    "message": "success"
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#### 解除CI服务器绑定
 | 
			
		||||
```
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,49 @@
 | 
			
		|||
class Ci::SecretsController < Ci::BaseController
 | 
			
		||||
 | 
			
		||||
  before_action :load_repo
 | 
			
		||||
 | 
			
		||||
  # 参数列表
 | 
			
		||||
  def index
 | 
			
		||||
    cloud_account = current_user.ci_cloud_account
 | 
			
		||||
    result = Ci::Drone::API.new(@ci_user.user_hash, cloud_account.drone_url, params[:owner], params[:repo], nil).secrets
 | 
			
		||||
    @secrets = result
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  #新增、更新参数
 | 
			
		||||
  def create
 | 
			
		||||
    cloud_account = current_user.ci_cloud_account
 | 
			
		||||
    options = {
 | 
			
		||||
        name: params[:name],
 | 
			
		||||
        data: params[:data]
 | 
			
		||||
    }
 | 
			
		||||
    id = params[:id]
 | 
			
		||||
    if id
 | 
			
		||||
      result = Ci::Drone::API.new(@ci_user.user_hash, cloud_account.drone_url, params[:owner], params[:repo], options).update_secret
 | 
			
		||||
      if result["id"]
 | 
			
		||||
        render_ok
 | 
			
		||||
      else
 | 
			
		||||
        render_error(result["message"])
 | 
			
		||||
      end
 | 
			
		||||
    else
 | 
			
		||||
      result = Ci::Drone::API.new(@ci_user.user_hash, cloud_account.drone_url, params[:owner], params[:repo], options).create_secret
 | 
			
		||||
      if result["id"]
 | 
			
		||||
        render_ok
 | 
			
		||||
      else
 | 
			
		||||
        render_error(result["message"])
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  #删除参数
 | 
			
		||||
  def destroy
 | 
			
		||||
    name = params[:name]
 | 
			
		||||
    if !name.blank?
 | 
			
		||||
      cloud_account = current_user.ci_cloud_account
 | 
			
		||||
      Ci::Drone::API.new(@ci_user.user_hash, cloud_account.drone_url, params[:owner], params[:repo], {name: name}).delete_secret
 | 
			
		||||
      render_ok
 | 
			
		||||
    else
 | 
			
		||||
      render_error("参数名不能为空")
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -85,4 +85,24 @@ class Ci::Drone::API < Ci::Drone::Request
 | 
			
		|||
    post(endpoint, "/api/users", {login: options[:login], email: options[:email], avatar_url:options[:avatar_url],active:true, drone_token: options[:token]})
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  # Creates a secret.
 | 
			
		||||
  def create_secret
 | 
			
		||||
    post(endpoint, "/api/repos/#{owner}/#{repo}/secrets", {name: options[:name], data: options[:data], pull_request:true, drone_token: drone_token})
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  # Update a secret.
 | 
			
		||||
  def update_secret
 | 
			
		||||
    patch(endpoint, "/api/repos/#{owner}/#{repo}/secrets/#{options[:name]}", { data: options[:data], pull_request:true, drone_token: drone_token})
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  # list of secrets.
 | 
			
		||||
  def secrets
 | 
			
		||||
    get(endpoint, "/api/repos/#{owner}/#{repo}/secrets", drone_token: drone_token)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  # delete secret.
 | 
			
		||||
  def delete_secret
 | 
			
		||||
    delete(endpoint, "/api/repos/#{owner}/#{repo}/secrets/#{options[:name]}", drone_token: drone_token)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
json.id secret['id']
 | 
			
		||||
json.name secret['name']
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,3 @@
 | 
			
		|||
json.array! @secrets do |secret|
 | 
			
		||||
  json.partial! "/ci/secrets/index", secret: secret
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -39,6 +39,12 @@ Rails.application.routes.draw do
 | 
			
		|||
        end
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      resources :secrets do
 | 
			
		||||
        member do
 | 
			
		||||
          delete :destroy, :path => ":name", to: 'secrets#destroy'
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      resources :pipelines do
 | 
			
		||||
        collection do
 | 
			
		||||
          get :list
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue