创建OAuth授权 - CreateOAuthAuthorization
功能介绍
创建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 - ObtainAuthorizationRedirectionURL接口获取到的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 - ObtainAuthorizationRedirectionURL获取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错误码。