创建OAuth授权
功能介绍
创建OAuth授权。
调试
您可以在API Explorer中调试该接口。
URI
POST /v1/{project_id}/git/auths/{repo_type}/oauth
参数说明见表1。
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
租户项目ID。获取方法,请参考获取项目ID。 |
repo_type |
是 |
String |
仓库类型。 取值范围:CodeArts、Gitee、GitHub、BitBucket、GitLab。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
tag |
否 |
String |
站点标签。 |
请求消息
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
Content-Type |
是 |
String |
消息体的类型(格式),默认取值为“application/json;charset=utf8”。 |
X-Auth-Token |
是 |
String |
调用接口的认证方式分为Token和AK/SK两种,如果您使用的Token方式,此参数为必填,请填写Token的值。Token获取方式,请参考获取用户Token。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
是 |
String |
授权名称。 |
code |
是 |
String |
git仓库授权后,重定向返回的url里面的code参数。 |
state |
是 |
String |
git仓库授权后,一次性的认证编码和随机串。 |
code和state参数值获取方法:
- 在浏览器地址栏中输入访问获取授权重定向URL接口获取到的URL并回车。
- 在登录页面输入您的代码仓库账号和密码。
- 在华为云控制台登录页面输入账号和密码,单击“登录”。
如果您已经登录华为云控制台,则无需执行这一步。
- 等待页面显示新建授权失败后,复制地址栏的URL。
https://console.huaweicloud.com/servicestage/oauth?repo_type=github&code=04bed2df009f3fc9***c&state=%242a%2410%24.uQYThj5yKFs51w9s9ajeuQ0NSGshPH7IUfXoZLPlz7J%2FoAJ8B***
- 对获取到的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参数值。
响应消息
参数 |
参数类型 |
描述 |
---|---|---|
authorization |
Object |
授权结构体,请参考表6。 |
参数 |
参数类型 |
描述 |
---|---|---|
name |
String |
授权名称。 |
repo_type |
String |
仓库类型。 取值范围:github、gitlab、gitee、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 } }
状态码
状态码 |
描述 |
---|---|
200 |
操作成功。 |
400 |
错误的请求。 |
错误码
错误码格式为:SVCSTG.REPO.[Error_ID],例如:SVCSTG.REPO.0401。错误码说明请参考ServiceStage错误码。