更新时间:2023-11-23 GMT+08:00

创建OAuth授权

功能介绍

创建OAuth授权。

URI

POST /v1/{project_id}/git/auths/{repo_type}/oauth

参数说明见表1

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

租户项目ID。获取方法,请参考获取项目ID

repo_type

String

仓库类型。

取值范围:GitHub、BitBucket、GitLab。

表2 查询参数

参数

是否必选

参数类型

描述

tag

String

站点标签,比如国际站的?tag=intl。

请求消息

表3 请求Header参数

参数

是否必选

参数类型

描述

Content-Type

String

消息体的类型(格式)。

X-Auth-Token

String

调用接口的认证方式分为Token和AK/SK两种,如果您使用的Token方式,此参数为必填,请填写Token的值。Token获取方式,请参考获取用户Token

表4 请求Body参数

参数

是否必选

参数类型

描述

name

String

授权名称。

code

String

git仓库授权后,重定向回来的url里面的code参数。

state

String

git仓库授权后,一次性的认证编码和随机串。

code和state参数值获取方法:

  1. 在浏览器地址栏中输入访问获取授权重定向URL接口获取到的URL并回车。
  2. 在登录页面输入您的代码仓库账号和密码。

    如果您已经登录代码仓库,则无需执行这一步。

  3. 在华为云控制台登录页面输入账号和密码,单击“登录”

    如果您已经登录华为云控制台,则无需执行这一步。

  4. 等待页面显示新建授权失败后,复制地址栏的URL。

    例如:

    https://console.huaweicloud.com/servicestage/oauth?repo_type=github&code=04bed2df009f3fc9***c&state=%242a%2410%24.uQYThj5yKFs51w9s9ajeuQ0NSGshPH7IUfXoZLPlz7J%2FoAJ8B***

  5. 对获取到的URL进行URL解码,获得解码后的URL。

    示例如下:

    https://console.huaweicloud.com/servicestage/oauth?repo_type=github&code=04bed2df009f3fc9***c&state=$2a$10$.uQYThj5yKFs51w9s9ajeuQ0NSGshPH7IUfXoZLPlz7J/oAJ8B***

    获取其中code和state对应的参数值。

获取到的state参数值为一次性的认证编码和随机串,仅支持使用一次。如需再次调用本接口创建OAuth授权,请再次执行获取授权重定向URL获取URL并参考本方法获取code和state参数值。

响应消息

表5 响应参数

参数

参数类型

描述

authorization

Object

授权结构体,请参考表6

表6 authorization参数

参数

参数类型

描述

name

String

授权名称。

repo_type

String

仓库类型。

取值范围:github、gitlab、bitbucket。

repo_host

String

仓库地址。

repo_home

String

您的仓库主页。

repo_user

String

您的仓库用户名。

avartar

String

您的仓库头像。

token_type

String

仓库授权方式。

create_time

Long

仓库授权创建时间戳。

update_time

Long

仓库授权修改时间戳。

status

Integer

仓库授权状态。

0:正常

1:过期

2:未认证。

请求示例

创建名称为auth1的OAuth授权。

{
  "name": "auth1",
  "code": "04bed2df009f3fc9***c",
  "state": "$2a$10$.uQYThj5yKFs51w9s9ajeuQ0NSGshPH7IUfXoZLPlz7J/oAJ8B***"
}

响应示例

{
  "authorization": {
    "name": "auth1",
    "repo_type": "github",
    "repo_host": "https://api.github.com",
    "repo_home": "https://github.com/tom-repo",
    "repo_user": "repo",
    "avartar": "https://avatars.githubusercontent.com/u/73919200?v=4",
    "token_type": "oauth",
    "create_time": 1649758626858,
    "update_time": 1649758626858,
    "status": 0
  }
}

状态码

表7 状态码说明

HTTP状态码

描述

200

操作成功。

400

错误的请求。

错误码

错误码格式为:SVCSTG.REPO.[Error_ID],例如:SVCSTG.REPO.0401。错误码说明请参考ServiceStage错误码