diff --git a/app/docs/slate/source/includes/_projects.md b/app/docs/slate/source/includes/_projects.md index 85359d80e..87a37c45b 100644 --- a/app/docs/slate/source/includes/_projects.md +++ b/app/docs/slate/source/includes/_projects.md @@ -555,7 +555,7 @@ repo |是| |string |项目标识identifier --------- | ----------- | ----------- name |string|组织标识 nickname |string|组织名称 -description|string|组织描述 +description|string|组织描述 avatar_url|string|组织头像 @@ -703,9 +703,9 @@ await octokit.request('POST /api/:owner/:repo/applied_transfer_projects/cancel.j ### 返回字段说明 参数 | 类型 | 字段说明 --------- | ----------- | ----------- -|id |int |项目id | -|status |string |项目迁移状态,canceled:取消,common:正在迁移, accept:已接受,refuse:已拒绝| -|time_ago |string |项目迁移创建的时间 | +|id |int |迁移id | +|status |string |迁移状态,canceled:取消,common:正在迁移, accept:已接受,refuse:已拒绝| +|time_ago |string |迁移创建的时间 | |project.id |int |迁移项目的id | |project.identifier |string |迁移项目的标识 | |project.name |string |迁移项目的名称 | diff --git a/app/docs/slate/source/includes/_users.md b/app/docs/slate/source/includes/_users.md index 62a6391e1..1d1afc028 100644 --- a/app/docs/slate/source/includes/_users.md +++ b/app/docs/slate/source/includes/_users.md @@ -1,3 +1,9 @@ + # Users ## 获取当前登陆用户信息 @@ -40,3 +46,390 @@ await octokit.request('GET /api/users/me.json') + +## 待办事项-用户通知信息 +待办事项-用户通知信息 + +> 示例: + +```shell +curl -X GET http://localhost:3000/api/users/yystopf/applied_messages.json +``` + +```javascript +await octokit.request('GET /api/users/:login/applied_messages.json') +``` + +### HTTP 请求 +`GET /api/users/:login/applied_messages.json` + +### 请求字段说明: +参数 | 类型 | 字段说明 +--------- | ----------- | ----------- +|login |string |用户标识 | + +### 返回字段说明: +参数 | 类型 | 字段说明 +--------- | ----------- | ----------- +|applied |object |通知主体 | +|applied.id |int |通知主体的迁移id | +|applied.status |string |通知主体的迁移状态,canceled:取消,common:正在迁移, accept:已接受,refuse:已拒绝| +|applied.time_ago |string |通知主体的迁移创建的时间 | +|applied.project.id |int |通知主体的迁移项目的id | +|applied.project.identifier |string |通知主体的迁移项目的标识 | +|applied.project.name |string |通知主体的迁移项目的名称 | +|applied.project.description |string |通知主体的迁移项目的描述 | +|applied.project.is_public |bool |通知主体的迁移项目是否公开 | +|applied.project.owner.id |bool |通知主体的迁移项目拥有者id | +|applied.project.owner.type |string |通知主体的迁移项目拥有者类型 | +|applied.project.owner.name |string |通知主体的迁移项目拥有者昵称 | +|applied.project.owner.login |string |通知主体的迁移项目拥有者标识 | +|applied.project.owner.image_url |string |通知主体的迁移项目拥有者头像 | +|applied.user.id |int |通知主体的迁移创建者的id | +|applied.user.type |string |通知主体的迁移创建者的类型 | +|applied.user.name |string |通知主体的迁移创建者的名称 | +|applied.user.login |string |通知主体的迁移创建者的标识 | +|applied.user.image_url |string |通知主体的迁移创建者头像 | +|applied.owner.id |int |通知主体的迁移接受者的id | +|applied.owner.type |string |通知主体的迁移接受者的类型 | +|applied.owner.name |string |通知主体的迁移接受者的名称 | +|applied.owner.login |string |通知主体的迁移接受者的标识 | +|applied.owner.image_url |string |通知主体的迁移接受者头像 | +|applied_type |string |通知类型 | +|name |string | 通知内容 | +|viewed |string|是否已读,waiting:未读,viewed:已读| +|status |string|通知状态, canceled:已取消,common: 正常,successed:成功,failure:失败| +|time_ago |string|通知时间| + + +> 返回的JSON示例: + +```json +{ + "total_count": 5, + "applied_messages": [ + { + "applied": { + "project": { + "id": 86, + "identifier": "ceshi_repo1", + "name": "测试项目啊1", + "description": "二十多", + "is_public": true, + "owner": { + "id": 52, + "type": "Organization", + "name": "身份卡手动阀", + "login": "ceshi1", + "image_url": "images/avatars/Organization/52?t=1618805056" + } + }, + "user": { + "id": 6, + "type": "User", + "name": "yystopf", + "login": "yystopf", + "image_url": "system/lets/letter_avatars/2/Y/241_125_89/120.png" + }, + "owner": { + "id": 9, + "type": "Organization", + "name": "测试组织", + "login": "ceshi_org", + "image_url": "images/avatars/Organization/9?t=1612706073" + }, + "id": 4, + "status": "common", + "created_at": "2021-04-26 09:54", + "time_ago": "35分钟前" + }, + "applied_user": { + "id": 6, + "type": "User", + "name": "yystopf", + "login": "yystopf", + "image_url": "system/lets/letter_avatars/2/Y/241_125_89/120.png" + }, + "applied_type": "AppliedTransferProject", + "name": "正在将【测试项目啊1】仓库转移给【测试组织】", + "viewed": "viewed", + "status": "common", + "created_at": "2021-04-26 09:54", + "time_ago": "35分钟前" + }, + ... + ] +} +``` + +## 待办事项-接受仓库 +待办事项-接受仓库 + +> 示例: + +```shell +curl -X GET http://localhost:3000/api/users/yystopf/applied_transfer_projects.json +``` + +```javascript +await octokit.request('GET /api/users/:login/applied_transfer_projects.json') +``` + +### HTTP 请求 +`GET /api/users/:login/applied_transfer_projects.json` + +### 请求字段说明: +参数 | 类型 | 字段说明 +--------- | ----------- | ----------- +|login |string |用户标识 | + +### 返回字段说明: +参数 | 类型 | 字段说明 +--------- | ----------- | ----------- +|id |int |迁移id | +|status |string |迁移状态,canceled:取消,common:正在迁移, accept:已接受,refuse:已拒绝| +|time_ago |string |迁移创建的时间 | +|project.id |int |迁移项目的id | +|project.identifier |string |迁移项目的标识 | +|project.name |string |迁移项目的名称 | +|project.description |string |迁移项目的描述 | +|project.is_public |bool |迁移项目是否公开 | +|project.owner.id |bool |迁移项目拥有者id | +|project.owner.type |string |迁移项目拥有者类型 | +|project.owner.name |string |迁移项目拥有者昵称 | +|project.owner.login |string |迁移项目拥有者标识 | +|project.owner.image_url |string |迁移项目拥有者头像 | +|user.id |int |迁移创建者的id | +|user.type |string |迁移创建者的类型 | +|user.name |string |迁移创建者的名称 | +|user.login |string |迁移创建者的标识 | +|user.image_url |string |迁移创建者头像 | +|owner.id |int |迁移接受者的id | +|owner.type |string |迁移接受者的类型 | +|owner.name |string |迁移接受者的名称 | +|owner.login |string |迁移接受者的标识 | +|owner.image_url |string |迁移接受者头像 | + + +> 返回的JSON示例: + +```json +{ + "total_count": 4, + "applied_transfer_projects": [ + { + "project": { + "id": 86, + "identifier": "ceshi_repo1", + "name": "测试项目啊1", + "description": "二十多", + "is_public": true, + "owner": { + "id": 52, + "type": "Organization", + "name": "身份卡手动阀", + "login": "ceshi1", + "image_url": "images/avatars/Organization/52?t=1618805056" + } + }, + "user": { + "id": 6, + "type": "User", + "name": "yystopf", + "login": "yystopf", + "image_url": "system/lets/letter_avatars/2/Y/241_125_89/120.png" + }, + "owner": { + "id": 52, + "type": "Organization", + "name": "身份卡手动阀", + "login": "ceshi1", + "image_url": "images/avatars/Organization/52?t=1618805056" + }, + "id": 1, + "status": "canceled", + "created_at": "2021-04-25 18:06", + "time_ago": "16小时前" + }, + ... + ] +} +``` + +## 用户接受迁移 +用户接受迁移 + +> 示例: + +```shell +curl -X POST http://localhost:3000/api/users/yystopf/applied_transfer_projects/2/accept.json +``` + +```javascript +await octokit.request('GET /api/users/:login/applied_transfer_projects/:id/accept.json') +``` + +### HTTP 请求 +`GET /api/users/:login/applied_transfer_projects/:id/accept.json` + +### 请求字段说明: +参数 | 类型 | 字段说明 +--------- | ----------- | ----------- +|login |string |用户标识 | +|id |int |迁移id | + +### 返回字段说明: +参数 | 类型 | 字段说明 +--------- | ----------- | ----------- +|id |int |迁移id | +|status |string |迁移状态,canceled:取消,common:正在迁移, accept:已接受,refuse:已拒绝| +|time_ago |string |迁移创建的时间 | +|project.id |int |迁移项目的id | +|project.identifier |string |迁移项目的标识 | +|project.name |string |迁移项目的名称 | +|project.description |string |迁移项目的描述 | +|project.is_public |bool |迁移项目是否公开 | +|project.owner.id |bool |迁移项目拥有者id | +|project.owner.type |string |迁移项目拥有者类型 | +|project.owner.name |string |迁移项目拥有者昵称 | +|project.owner.login |string |迁移项目拥有者标识 | +|project.owner.image_url |string |迁移项目拥有者头像 | +|user.id |int |迁移创建者的id | +|user.type |string |迁移创建者的类型 | +|user.name |string |迁移创建者的名称 | +|user.login |string |迁移创建者的标识 | +|user.image_url |string |迁移创建者头像 | +|owner.id |int |迁移接受者的id | +|owner.type |string |迁移接受者的类型 | +|owner.name |string |迁移接受者的名称 | +|owner.login |string |迁移接受者的标识 | +|owner.image_url |string |迁移接受者头像 | + + +> 返回的JSON示例: + +```json +{ + "project": { + "id": 86, + "identifier": "ceshi_repo1", + "name": "测试项目啊1", + "description": "二十多", + "is_public": true, + "owner": { + "id": 52, + "type": "Organization", + "name": "身份卡手动阀", + "login": "ceshi1", + "image_url": "images/avatars/Organization/52?t=1618805056" + } + }, + "user": { + "id": 6, + "type": "User", + "name": "yystopf", + "login": "yystopf", + "image_url": "system/lets/letter_avatars/2/Y/241_125_89/120.png" + }, + "owner": { + "id": 52, + "type": "Organization", + "name": "身份卡手动阀", + "login": "ceshi1", + "image_url": "images/avatars/Organization/52?t=1618805056" + }, + "id": 1, + "status": "canceled", + "created_at": "2021-04-25 18:06", + "time_ago": "16小时前" +} +``` + +## 用户拒绝迁移 +用户拒绝迁移 + +> 示例: + +```shell +curl -X POST http://localhost:3000/api/users/yystopf/applied_transfer_projects/2/refuse.json +``` + +```javascript +await octokit.request('GET /api/users/:login/applied_transfer_projects/:id/refuse.json') +``` + +### HTTP 请求 +`GET /api/users/:login/applied_transfer_projects/:id/refuse.json` + +### 请求字段说明: +参数 | 类型 | 字段说明 +--------- | ----------- | ----------- +|login |string |用户标识 | +|id |int |迁移id | + +### 返回字段说明: +参数 | 类型 | 字段说明 +--------- | ----------- | ----------- +|id |int |迁移id | +|status |string |迁移状态,canceled:取消,common:正在迁移, accept:已接受,refuse:已拒绝| +|time_ago |string |迁移创建的时间 | +|project.id |int |迁移项目的id | +|project.identifier |string |迁移项目的标识 | +|project.name |string |迁移项目的名称 | +|project.description |string |迁移项目的描述 | +|project.is_public |bool |迁移项目是否公开 | +|project.owner.id |bool |迁移项目拥有者id | +|project.owner.type |string |迁移项目拥有者类型 | +|project.owner.name |string |迁移项目拥有者昵称 | +|project.owner.login |string |迁移项目拥有者标识 | +|project.owner.image_url |string |迁移项目拥有者头像 | +|user.id |int |迁移创建者的id | +|user.type |string |迁移创建者的类型 | +|user.name |string |迁移创建者的名称 | +|user.login |string |迁移创建者的标识 | +|user.image_url |string |迁移创建者头像 | +|owner.id |int |迁移接受者的id | +|owner.type |string |迁移接受者的类型 | +|owner.name |string |迁移接受者的名称 | +|owner.login |string |迁移接受者的标识 | +|owner.image_url |string |迁移接受者头像 | + + +> 返回的JSON示例: + +```json +{ + "project": { + "id": 86, + "identifier": "ceshi_repo1", + "name": "测试项目啊1", + "description": "二十多", + "is_public": true, + "owner": { + "id": 52, + "type": "Organization", + "name": "身份卡手动阀", + "login": "ceshi1", + "image_url": "images/avatars/Organization/52?t=1618805056" + } + }, + "user": { + "id": 6, + "type": "User", + "name": "yystopf", + "login": "yystopf", + "image_url": "system/lets/letter_avatars/2/Y/241_125_89/120.png" + }, + "owner": { + "id": 52, + "type": "Organization", + "name": "身份卡手动阀", + "login": "ceshi1", + "image_url": "images/avatars/Organization/52?t=1618805056" + }, + "id": 1, + "status": "canceled", + "created_at": "2021-04-25 18:06", + "time_ago": "16小时前" +} +``` \ No newline at end of file diff --git a/app/jobs/send_transfer_project_applied_message_job.rb b/app/jobs/send_transfer_project_applied_message_job.rb index 790d1fd5d..ef05f266d 100644 --- a/app/jobs/send_transfer_project_applied_message_job.rb +++ b/app/jobs/send_transfer_project_applied_message_job.rb @@ -6,7 +6,11 @@ class SendTransferProjectAppliedMessageJob < ApplicationJob owner = applied_transfer_project.owner return unless project.present? return unless owner.present? - receivers = project.managers + owner.team_users.joins(:team).where(teams: {authorize: %w(owner admin)}) + if owner.is_a?(Organization) + receivers = project.managers + owner.team_users.joins(:team).where(teams: {authorize: %w(owner admin)}) + else + receivers = project.managers + end receivers.each do |rec| AppliedMessage.create!(user_id: rec.user_id, applied: applied_transfer_project, diff --git a/app/services/projects/apply_transfer_service.rb b/app/services/projects/apply_transfer_service.rb index ee4ec4265..7f33cc101 100644 --- a/app/services/projects/apply_transfer_service.rb +++ b/app/services/projects/apply_transfer_service.rb @@ -1,12 +1,12 @@ class Projects::ApplyTransferService < ApplicationService attr_accessor :owner, :applied_transfer_project - attr_reader :user, :project, :owner_name + attr_reader :user, :project, :params - def initialize(user, project, owner_name) + def initialize(user, project, params) @user = user @project = project - @owner_name = owner_name - @owner = Owner.find_by(login: owner_name) + @params = params + @owner = Owner.find_by(login: params[:owner_name]) end def call @@ -21,6 +21,7 @@ class Projects::ApplyTransferService < ApplicationService private def validate! + raise Error, '仓库标识不正确' if @project.identifier != params[:identifier] raise Error, '该仓库正在迁移' if @project.is_transfering raise Error, '新拥有者不存在' unless @owner.present? raise Error, '未拥有转移权限' unless is_permit_owner diff --git a/app/views/users/applied_messages/_detail.json.jbuilder b/app/views/users/applied_messages/_detail.json.jbuilder index 0bbd49b01..cca202c10 100644 --- a/app/views/users/applied_messages/_detail.json.jbuilder +++ b/app/views/users/applied_messages/_detail.json.jbuilder @@ -1,23 +1,24 @@ -project = object.project -json.project do - json.id project.id - json.identifier project.identifier - json.name project.name - json.description project.description - json.is_public project.is_public - json.owner do - json.partial! "/users/user_simple", locals: {user: project.owner} - end -end -json.user do - json.partial! "/users/user_simple", locals: {user: object.user} -end +# project = object.project +# json.project do +# json.id project.id +# json.identifier project.identifier +# json.name project.name +# json.description project.description +# json.is_public project.is_public +# json.owner do +# json.partial! "/users/user_simple", locals: {user: project.owner} +# end +# end +# json.user do +# json.partial! "/users/user_simple", locals: {user: object.user} +# end json.applied do json.partial! "/projects/applied_transfer_projects/detail", locals: {object: object.applied} end json.applied_user do json.partial! "/users/user_simple", locals: {user: object.applied_user} end +json.applied_type object.applied_type json.name object.name json.viewed object.viewed json.status object.status diff --git a/public/docs/api.html b/public/docs/api.html index a2e4ef957..f970ea84d 100644 --- a/public/docs/api.html +++ b/public/docs/api.html @@ -331,6 +331,18 @@
获取当前登陆用户信息
@@ -631,7 +649,818 @@ Success — a happy kitten is an authenticated kitten! -待办事项-用户通知信息
+ +++示例:
+
curl -X GET http://localhost:3000/api/users/yystopf/applied_messages.json
+
await octokit.request('GET /api/users/:login/applied_messages.json')
+
GET /api/users/:login/applied_messages.json
参数 | +类型 | +字段说明 | +
---|---|---|
login | +string | +用户标识 | +
参数 | +类型 | +字段说明 | +
---|---|---|
applied | +object | +通知主体 | +
applied.id | +int | +通知主体的迁移id | +
applied.status | +string | +通知主体的迁移状态,canceled:取消,common:正在迁移, accept:已接受,refuse:已拒绝 | +
applied.time_ago | +string | +通知主体的迁移创建的时间 | +
applied.project.id | +int | +通知主体的迁移项目的id | +
applied.project.identifier | +string | +通知主体的迁移项目的标识 | +
applied.project.name | +string | +通知主体的迁移项目的名称 | +
applied.project.description | +string | +通知主体的迁移项目的描述 | +
applied.project.is_public | +bool | +通知主体的迁移项目是否公开 | +
applied.project.owner.id | +bool | +通知主体的迁移项目拥有者id | +
applied.project.owner.type | +string | +通知主体的迁移项目拥有者类型 | +
applied.project.owner.name | +string | +通知主体的迁移项目拥有者昵称 | +
applied.project.owner.login | +string | +通知主体的迁移项目拥有者标识 | +
applied.project.owner.image_url | +string | +通知主体的迁移项目拥有者头像 | +
applied.user.id | +int | +通知主体的迁移创建者的id | +
applied.user.type | +string | +通知主体的迁移创建者的类型 | +
applied.user.name | +string | +通知主体的迁移创建者的名称 | +
applied.user.login | +string | +通知主体的迁移创建者的标识 | +
applied.user.image_url | +string | +通知主体的迁移创建者头像 | +
applied.owner.id | +int | +通知主体的迁移接受者的id | +
applied.owner.type | +string | +通知主体的迁移接受者的类型 | +
applied.owner.name | +string | +通知主体的迁移接受者的名称 | +
applied.owner.login | +string | +通知主体的迁移接受者的标识 | +
applied.owner.image_url | +string | +通知主体的迁移接受者头像 | +
applied_type | +string | +通知类型 | +
name | +string | +通知内容 | +
viewed | +string | +是否已读,waiting:未读,viewed:已读 | +
status | +string | +通知状态, canceled:已取消,common: 正常,successed:成功,failure:失败 | +
time_ago | +string | +通知时间 | +
++返回的JSON示例:
+
{
+ "total_count": 5,
+ "applied_messages": [
+ {
+ "applied": {
+ "project": {
+ "id": 86,
+ "identifier": "ceshi_repo1",
+ "name": "测试项目啊1",
+ "description": "二十多",
+ "is_public": true,
+ "owner": {
+ "id": 52,
+ "type": "Organization",
+ "name": "身份卡手动阀",
+ "login": "ceshi1",
+ "image_url": "images/avatars/Organization/52?t=1618805056"
+ }
+ },
+ "user": {
+ "id": 6,
+ "type": "User",
+ "name": "yystopf",
+ "login": "yystopf",
+ "image_url": "system/lets/letter_avatars/2/Y/241_125_89/120.png"
+ },
+ "owner": {
+ "id": 9,
+ "type": "Organization",
+ "name": "测试组织",
+ "login": "ceshi_org",
+ "image_url": "images/avatars/Organization/9?t=1612706073"
+ },
+ "id": 4,
+ "status": "common",
+ "created_at": "2021-04-26 09:54",
+ "time_ago": "35分钟前"
+ },
+ "applied_user": {
+ "id": 6,
+ "type": "User",
+ "name": "yystopf",
+ "login": "yystopf",
+ "image_url": "system/lets/letter_avatars/2/Y/241_125_89/120.png"
+ },
+ "applied_type": "AppliedTransferProject",
+ "name": "正在将【测试项目啊1】仓库转移给【测试组织】",
+ "viewed": "viewed",
+ "status": "common",
+ "created_at": "2021-04-26 09:54",
+ "time_ago": "35分钟前"
+ },
+ ...
+ ]
+}
+
待办事项-接受仓库
+ +++示例:
+
curl -X GET http://localhost:3000/api/users/yystopf/applied_transfer_projects.json
+
await octokit.request('GET /api/users/:login/applied_transfer_projects.json')
+
GET /api/users/:login/applied_transfer_projects.json
参数 | +类型 | +字段说明 | +
---|---|---|
login | +string | +用户标识 | +
参数 | +类型 | +字段说明 | +
---|---|---|
id | +int | +迁移id | +
status | +string | +迁移状态,canceled:取消,common:正在迁移, accept:已接受,refuse:已拒绝 | +
time_ago | +string | +迁移创建的时间 | +
project.id | +int | +迁移项目的id | +
project.identifier | +string | +迁移项目的标识 | +
project.name | +string | +迁移项目的名称 | +
project.description | +string | +迁移项目的描述 | +
project.is_public | +bool | +迁移项目是否公开 | +
project.owner.id | +bool | +迁移项目拥有者id | +
project.owner.type | +string | +迁移项目拥有者类型 | +
project.owner.name | +string | +迁移项目拥有者昵称 | +
project.owner.login | +string | +迁移项目拥有者标识 | +
project.owner.image_url | +string | +迁移项目拥有者头像 | +
user.id | +int | +迁移创建者的id | +
user.type | +string | +迁移创建者的类型 | +
user.name | +string | +迁移创建者的名称 | +
user.login | +string | +迁移创建者的标识 | +
user.image_url | +string | +迁移创建者头像 | +
owner.id | +int | +迁移接受者的id | +
owner.type | +string | +迁移接受者的类型 | +
owner.name | +string | +迁移接受者的名称 | +
owner.login | +string | +迁移接受者的标识 | +
owner.image_url | +string | +迁移接受者头像 | +
++返回的JSON示例:
+
{
+ "total_count": 4,
+ "applied_transfer_projects": [
+ {
+ "project": {
+ "id": 86,
+ "identifier": "ceshi_repo1",
+ "name": "测试项目啊1",
+ "description": "二十多",
+ "is_public": true,
+ "owner": {
+ "id": 52,
+ "type": "Organization",
+ "name": "身份卡手动阀",
+ "login": "ceshi1",
+ "image_url": "images/avatars/Organization/52?t=1618805056"
+ }
+ },
+ "user": {
+ "id": 6,
+ "type": "User",
+ "name": "yystopf",
+ "login": "yystopf",
+ "image_url": "system/lets/letter_avatars/2/Y/241_125_89/120.png"
+ },
+ "owner": {
+ "id": 52,
+ "type": "Organization",
+ "name": "身份卡手动阀",
+ "login": "ceshi1",
+ "image_url": "images/avatars/Organization/52?t=1618805056"
+ },
+ "id": 1,
+ "status": "canceled",
+ "created_at": "2021-04-25 18:06",
+ "time_ago": "16小时前"
+ },
+ ...
+ ]
+}
+
用户接受迁移
+ +++示例:
+
curl -X POST http://localhost:3000/api/users/yystopf/applied_transfer_projects/2/accept.json
+
await octokit.request('GET /api/users/:login/applied_transfer_projects/:id/accept.json')
+
GET /api/users/:login/applied_transfer_projects/:id/accept.json
参数 | +类型 | +字段说明 | +
---|---|---|
login | +string | +用户标识 | +
id | +int | +迁移id | +
参数 | +类型 | +字段说明 | +
---|---|---|
id | +int | +迁移id | +
status | +string | +迁移状态,canceled:取消,common:正在迁移, accept:已接受,refuse:已拒绝 | +
time_ago | +string | +迁移创建的时间 | +
project.id | +int | +迁移项目的id | +
project.identifier | +string | +迁移项目的标识 | +
project.name | +string | +迁移项目的名称 | +
project.description | +string | +迁移项目的描述 | +
project.is_public | +bool | +迁移项目是否公开 | +
project.owner.id | +bool | +迁移项目拥有者id | +
project.owner.type | +string | +迁移项目拥有者类型 | +
project.owner.name | +string | +迁移项目拥有者昵称 | +
project.owner.login | +string | +迁移项目拥有者标识 | +
project.owner.image_url | +string | +迁移项目拥有者头像 | +
user.id | +int | +迁移创建者的id | +
user.type | +string | +迁移创建者的类型 | +
user.name | +string | +迁移创建者的名称 | +
user.login | +string | +迁移创建者的标识 | +
user.image_url | +string | +迁移创建者头像 | +
owner.id | +int | +迁移接受者的id | +
owner.type | +string | +迁移接受者的类型 | +
owner.name | +string | +迁移接受者的名称 | +
owner.login | +string | +迁移接受者的标识 | +
owner.image_url | +string | +迁移接受者头像 | +
++返回的JSON示例:
+
{
+ "project": {
+ "id": 86,
+ "identifier": "ceshi_repo1",
+ "name": "测试项目啊1",
+ "description": "二十多",
+ "is_public": true,
+ "owner": {
+ "id": 52,
+ "type": "Organization",
+ "name": "身份卡手动阀",
+ "login": "ceshi1",
+ "image_url": "images/avatars/Organization/52?t=1618805056"
+ }
+ },
+ "user": {
+ "id": 6,
+ "type": "User",
+ "name": "yystopf",
+ "login": "yystopf",
+ "image_url": "system/lets/letter_avatars/2/Y/241_125_89/120.png"
+ },
+ "owner": {
+ "id": 52,
+ "type": "Organization",
+ "name": "身份卡手动阀",
+ "login": "ceshi1",
+ "image_url": "images/avatars/Organization/52?t=1618805056"
+ },
+ "id": 1,
+ "status": "canceled",
+ "created_at": "2021-04-25 18:06",
+ "time_ago": "16小时前"
+}
+
用户拒绝迁移
+ +++示例:
+
curl -X POST http://localhost:3000/api/users/yystopf/applied_transfer_projects/2/refuse.json
+
await octokit.request('GET /api/users/:login/applied_transfer_projects/:id/refuse.json')
+
GET /api/users/:login/applied_transfer_projects/:id/refuse.json
参数 | +类型 | +字段说明 | +
---|---|---|
login | +string | +用户标识 | +
id | +int | +迁移id | +
参数 | +类型 | +字段说明 | +
---|---|---|
id | +int | +迁移id | +
status | +string | +迁移状态,canceled:取消,common:正在迁移, accept:已接受,refuse:已拒绝 | +
time_ago | +string | +迁移创建的时间 | +
project.id | +int | +迁移项目的id | +
project.identifier | +string | +迁移项目的标识 | +
project.name | +string | +迁移项目的名称 | +
project.description | +string | +迁移项目的描述 | +
project.is_public | +bool | +迁移项目是否公开 | +
project.owner.id | +bool | +迁移项目拥有者id | +
project.owner.type | +string | +迁移项目拥有者类型 | +
project.owner.name | +string | +迁移项目拥有者昵称 | +
project.owner.login | +string | +迁移项目拥有者标识 | +
project.owner.image_url | +string | +迁移项目拥有者头像 | +
user.id | +int | +迁移创建者的id | +
user.type | +string | +迁移创建者的类型 | +
user.name | +string | +迁移创建者的名称 | +
user.login | +string | +迁移创建者的标识 | +
user.image_url | +string | +迁移创建者头像 | +
owner.id | +int | +迁移接受者的id | +
owner.type | +string | +迁移接受者的类型 | +
owner.name | +string | +迁移接受者的名称 | +
owner.login | +string | +迁移接受者的标识 | +
owner.image_url | +string | +迁移接受者头像 | +
++返回的JSON示例:
+
{
+ "project": {
+ "id": 86,
+ "identifier": "ceshi_repo1",
+ "name": "测试项目啊1",
+ "description": "二十多",
+ "is_public": true,
+ "owner": {
+ "id": 52,
+ "type": "Organization",
+ "name": "身份卡手动阀",
+ "login": "ceshi1",
+ "image_url": "images/avatars/Organization/52?t=1618805056"
+ }
+ },
+ "user": {
+ "id": 6,
+ "type": "User",
+ "name": "yystopf",
+ "login": "yystopf",
+ "image_url": "system/lets/letter_avatars/2/Y/241_125_89/120.png"
+ },
+ "owner": {
+ "id": 52,
+ "type": "Organization",
+ "name": "身份卡手动阀",
+ "login": "ceshi1",
+ "image_url": "images/avatars/Organization/52?t=1618805056"
+ },
+ "id": 1,
+ "status": "canceled",
+ "created_at": "2021-04-25 18:06",
+ "time_ago": "16小时前"
+}
+
获取项目列表,也可以更加相关条件过滤搜素
@@ -1653,11 +2482,18 @@ http://localhost:3000/api/ceshi1/ceshi_repo1/applied_transfer_projects/organizatstring 组织名称 ++ +description +string +组织描述 ++ -avatar_url +string|组织头像 ++ description|string|组织描述 -avatar_url|string|组织头像
-@@ -1937,17 +2773,17 @@ avatar_url|string|组织头像返回的JSON示例:
id int -项目id +迁移id status string -项目迁移状态,canceled:取消,common:正在迁移, accept:已接受,refuse:已拒绝 +迁移状态,canceled:取消,common:正在迁移, accept:已接受,refuse:已拒绝 time_ago string -项目迁移创建的时间 +迁移创建的时间 project.id