新增:reviewers修改入口
This commit is contained in:
parent
6183f1f76d
commit
a35db9fe80
|
@ -62,6 +62,8 @@ class PullRequestsController < ApplicationController
|
||||||
@pull_request, @gitea_pull_request = PullRequests::CreateService.call(current_user, @owner, @project, params)
|
@pull_request, @gitea_pull_request = PullRequests::CreateService.call(current_user, @owner, @project, params)
|
||||||
if @gitea_pull_request[:status] == :success
|
if @gitea_pull_request[:status] == :success
|
||||||
@pull_request.bind_gitea_pull_request!(@gitea_pull_request[:body]["number"], @gitea_pull_request[:body]["id"])
|
@pull_request.bind_gitea_pull_request!(@gitea_pull_request[:body]["number"], @gitea_pull_request[:body]["id"])
|
||||||
|
reviewers = User.where(id: params[:reviewer_ids])
|
||||||
|
@pull_request.reviewers = reviewers
|
||||||
SendTemplateMessageJob.perform_later('PullRequestAssigned', current_user.id, @pull_request&.id) if Site.has_notice_menu?
|
SendTemplateMessageJob.perform_later('PullRequestAssigned', current_user.id, @pull_request&.id) if Site.has_notice_menu?
|
||||||
SendTemplateMessageJob.perform_later('ProjectPullRequest', current_user.id, @pull_request&.id) if Site.has_notice_menu?
|
SendTemplateMessageJob.perform_later('ProjectPullRequest', current_user.id, @pull_request&.id) if Site.has_notice_menu?
|
||||||
Rails.logger.info "[ATME] maybe to at such users: #{@atme_receivers.pluck(:login)}"
|
Rails.logger.info "[ATME] maybe to at such users: #{@atme_receivers.pluck(:login)}"
|
||||||
|
@ -107,6 +109,9 @@ class PullRequestsController < ApplicationController
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
reviewers = User.where(id: params[:reviewer_ids])
|
||||||
|
@pull_request.reviewers = reviewers
|
||||||
|
|
||||||
if @issue.update_attributes(@issue_params)
|
if @issue.update_attributes(@issue_params)
|
||||||
if @pull_request.update_attributes(@local_params.compact)
|
if @pull_request.update_attributes(@local_params.compact)
|
||||||
gitea_pull = Gitea::PullRequest::UpdateService.call(@owner.login, @repository.identifier,
|
gitea_pull = Gitea::PullRequest::UpdateService.call(@owner.login, @repository.identifier,
|
||||||
|
|
|
@ -60,6 +60,7 @@ await octokit.request('GET /api/v1/yystopf/ceshi_commit/pulls/1.json')
|
||||||
|last_review.status |string|最后一个审查的状态,common: 一般审查, approved: 通过, rejected: 拒绝通过|
|
|last_review.status |string|最后一个审查的状态,common: 一般审查, approved: 通过, rejected: 拒绝通过|
|
||||||
|last_review.created_at|string|审查创建的时间|
|
|last_review.created_at|string|审查创建的时间|
|
||||||
|last_review.reviewer |object|审查创建人|
|
|last_review.reviewer |object|审查创建人|
|
||||||
|
|reviewers |array|指定审查用户标识数组|
|
||||||
|conflict_files |array|有冲突的文件|
|
|conflict_files |array|有冲突的文件|
|
||||||
|
|
||||||
> 返回的JSON示例:
|
> 返回的JSON示例:
|
||||||
|
@ -118,6 +119,9 @@ await octokit.request('GET /api/v1/yystopf/ceshi_commit/pulls/1.json')
|
||||||
"image_url": "system/lets/letter_avatars/2/H/188_239_142/120.png"
|
"image_url": "system/lets/letter_avatars/2/H/188_239_142/120.png"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"reviewers": [
|
||||||
|
"yystopf"
|
||||||
|
],
|
||||||
"conflict_files": []
|
"conflict_files": []
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
@ -586,6 +590,100 @@ await octokit.request('GET /api/v1/yystopf/ceshi_commit/pulls.json')
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## 创建一个合并请求
|
||||||
|
为仓库创建一个合并请求
|
||||||
|
|
||||||
|
> 示例:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
curl -X POST \
|
||||||
|
http://localhost:3000/api/yystopf/ceshi/pulls.json
|
||||||
|
```
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
await octokit.request('POST /api/yystopf/ceshi/pulls.json')
|
||||||
|
```
|
||||||
|
|
||||||
|
### HTTP 请求
|
||||||
|
`POST /api/:owner/:repo/pulls.json`
|
||||||
|
|
||||||
|
### 请求参数:
|
||||||
|
参数 | 必选 | 默认 | 类型 | 字段说明
|
||||||
|
--------- | ------- | ------- | -------- | ----------
|
||||||
|
|owner |是| | string |用户登录名 |
|
||||||
|
|repo |是| | string |项目标识identifier |
|
||||||
|
|title |是| | string |合并请求标题|
|
||||||
|
|body |否| | string |合并请求内容|
|
||||||
|
|base |是| | string |目标分支|
|
||||||
|
|head |是| | string |源分支|
|
||||||
|
|is_original |是| | bool |是否为fork仓库发来的合并请求|
|
||||||
|
|fork_project_id |否| | integer|fork仓库ID|
|
||||||
|
|reviewer_ids |否| | array |审查人员id数组|
|
||||||
|
|assigned_to_id |否| | integer|指派人员ID|
|
||||||
|
|fixed_version_id |否| | integer|里程碑ID|
|
||||||
|
|issue_tag_ids |否| | array |标记ID数组|
|
||||||
|
|priority_id |否| | integer|优先级ID|
|
||||||
|
|receivers_login |否| | array |@人员的login|
|
||||||
|
|
||||||
|
> 请求的JSON示例:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"title": "324",
|
||||||
|
"assigned_to_id": "2",
|
||||||
|
"fixed_version_id": "",
|
||||||
|
"issue_tag_ids": [],
|
||||||
|
"priority_id": "2",
|
||||||
|
"body": "312",
|
||||||
|
"head": "new_branch_1",
|
||||||
|
"base": "master",
|
||||||
|
"is_original": false,
|
||||||
|
"fork_project_id": "",
|
||||||
|
"files_count": 1,
|
||||||
|
"commits_count": 1,
|
||||||
|
"reviewer_ids": [],
|
||||||
|
"receivers_login": []
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
> 返回的JSON示例:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"status": 0,
|
||||||
|
"message": "响应成功",
|
||||||
|
"pull_request_id": 169,
|
||||||
|
"pull_request_number": 6,
|
||||||
|
"pull_request_status": 0,
|
||||||
|
"pull_request_head": "new_branch_1",
|
||||||
|
"pull_request_base": "master",
|
||||||
|
"pull_request_staus": "open",
|
||||||
|
"is_original": false,
|
||||||
|
"fork_project_id": null,
|
||||||
|
"fork_project_identifier": null,
|
||||||
|
"fork_project_user": null,
|
||||||
|
"reviewers": [
|
||||||
|
"yystopf"
|
||||||
|
],
|
||||||
|
"id": 266,
|
||||||
|
"name": "324",
|
||||||
|
"pr_time": "1分钟前",
|
||||||
|
"assign_user_name": "heh",
|
||||||
|
"assign_user_login": "yystopf",
|
||||||
|
"author_name": "heh",
|
||||||
|
"author_login": "yystopf",
|
||||||
|
"avatar_url": "system/lets/letter_avatars/2/H/188_239_142/120.png",
|
||||||
|
"priority": "正常",
|
||||||
|
"version": null,
|
||||||
|
"journals_count": 0,
|
||||||
|
"issue_tags": null
|
||||||
|
}
|
||||||
|
```
|
||||||
|
<aside class="success">
|
||||||
|
Success Data.
|
||||||
|
</aside>
|
||||||
|
|
||||||
|
|
||||||
## 获取合并请求版本列表
|
## 获取合并请求版本列表
|
||||||
获取合并请求版本列表
|
获取合并请求版本列表
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
class Api::V1::Projects::Pulls::ListService < ApplicationService
|
class Api::V1::Projects::Pulls::ListService < ApplicationService
|
||||||
include ActiveModel::Model
|
include ActiveModel::Model
|
||||||
|
|
||||||
attr_reader :project, :keyword, :status, :priority_id, :issue_tag_id, :version_id, :reviewer_id, :sort_by, :sort_direction
|
attr_reader :project, :keyword, :status, :priority_id, :issue_tag_id, :version_id, :reviewer_id, :assign_user_id, :sort_by, :sort_direction
|
||||||
attr_accessor :queried_pull_requests
|
attr_accessor :queried_pull_requests
|
||||||
|
|
||||||
validates :status, inclusion: {in: [0, 1, 2], message: "请输入正确的Status"}, allow_nil: true
|
validates :status, inclusion: {in: [0, 1, 2], message: "请输入正确的Status"}, allow_nil: true
|
||||||
|
@ -16,6 +16,7 @@ class Api::V1::Projects::Pulls::ListService < ApplicationService
|
||||||
@issue_tag_id = params[:issue_tag_id]
|
@issue_tag_id = params[:issue_tag_id]
|
||||||
@version_id = params[:version_id]
|
@version_id = params[:version_id]
|
||||||
@reviewer_id = params[:reviewer_id]
|
@reviewer_id = params[:reviewer_id]
|
||||||
|
@assign_user_id = params[:assign_user_id]
|
||||||
@sort_by = params[:sort_by] || 'created_at'
|
@sort_by = params[:sort_by] || 'created_at'
|
||||||
@sort_direction = params[:sort_direction] || 'desc'
|
@sort_direction = params[:sort_direction] || 'desc'
|
||||||
end
|
end
|
||||||
|
@ -36,6 +37,7 @@ class Api::V1::Projects::Pulls::ListService < ApplicationService
|
||||||
pull_requests = pull_requests.where(issue_tags: {id: issue_tag_id}) if issue_tag_id.present?
|
pull_requests = pull_requests.where(issue_tags: {id: issue_tag_id}) if issue_tag_id.present?
|
||||||
pull_requests = pull_requests.where(issues: {fixed_version_id: version_id}) if version_id.present?
|
pull_requests = pull_requests.where(issues: {fixed_version_id: version_id}) if version_id.present?
|
||||||
pull_requests = pull_requests.where(users: {id: reviewer_id}) if reviewer_id.present?
|
pull_requests = pull_requests.where(users: {id: reviewer_id}) if reviewer_id.present?
|
||||||
|
pull_requests = pull_requests.where(issues: {assigned_to_id: assign_user_id}) if assign_user_id.present?
|
||||||
|
|
||||||
q = pull_requests.ransack(title_or_body_cont: keyword)
|
q = pull_requests.ransack(title_or_body_cont: keyword)
|
||||||
scope = q.result.includes(:fork_project, :journals, :reviews, :reviewers, issue: [:journals, :priority, :version, :issue_tags])
|
scope = q.result.includes(:fork_project, :journals, :reviews, :reviewers, issue: [:journals, :priority, :version, :issue_tags])
|
||||||
|
|
|
@ -15,6 +15,7 @@ class Issues::ListQueryService < ApplicationService
|
||||||
end_time = params[:due_date]
|
end_time = params[:due_date]
|
||||||
|
|
||||||
issues = all_issues.issue_index_includes
|
issues = all_issues.issue_index_includes
|
||||||
|
issues = issues.includes(pull_request: :reviewers)
|
||||||
if status_type.to_s == "2" #表示关闭中的
|
if status_type.to_s == "2" #表示关闭中的
|
||||||
issues = issues.where(status_id: 5)
|
issues = issues.where(status_id: 5)
|
||||||
elsif status_type.to_s == "1"
|
elsif status_type.to_s == "1"
|
||||||
|
|
|
@ -22,4 +22,5 @@ json.issue do
|
||||||
json.issue_tags issue.get_issue_tags
|
json.issue_tags issue.get_issue_tags
|
||||||
end
|
end
|
||||||
|
|
||||||
|
json.reviewers pull.reviewers.pluck(:login)
|
||||||
json.journals_count pull.journals.count
|
json.journals_count pull.journals.count
|
|
@ -9,7 +9,7 @@ json.is_original pr.is_original
|
||||||
json.fork_project_id pr&.fork_project_id
|
json.fork_project_id pr&.fork_project_id
|
||||||
json.fork_project_identifier pr&.fork_project&.identifier
|
json.fork_project_identifier pr&.fork_project&.identifier
|
||||||
json.fork_project_user pr&.fork_project&.owner.try(:login)
|
json.fork_project_user pr&.fork_project&.owner.try(:login)
|
||||||
|
json.reviewers pr&.reviewers.pluck(:login)
|
||||||
|
|
||||||
json.id issue.id
|
json.id issue.id
|
||||||
json.name issue.subject
|
json.name issue.subject
|
||||||
|
|
|
@ -12,3 +12,4 @@ json.issue_tag_ids @issue&.issue_tags_value&.split(",")
|
||||||
json.commits_count @pull_request.commits_count
|
json.commits_count @pull_request.commits_count
|
||||||
json.files_count @pull_request.files_count
|
json.files_count @pull_request.files_count
|
||||||
json.comments_count @pull_request.comments_count
|
json.comments_count @pull_request.comments_count
|
||||||
|
json.reviewers @pull_request.reviewers.pluck(:login)
|
|
@ -24,7 +24,8 @@ json.issues do
|
||||||
json.fork_project_identifier pr&.fork_project&.identifier
|
json.fork_project_identifier pr&.fork_project&.identifier
|
||||||
json.fork_project_user pr&.fork_project&.owner.try(:login)
|
json.fork_project_user pr&.fork_project&.owner.try(:login)
|
||||||
json.fork_project_user_name pr&.fork_project&.owner.try(:show_real_name)
|
json.fork_project_user_name pr&.fork_project&.owner.try(:show_real_name)
|
||||||
|
json.reviewers pr.reviewers.pluck(:login)
|
||||||
|
|
||||||
json.id issue.id
|
json.id issue.id
|
||||||
json.name issue.subject
|
json.name issue.subject
|
||||||
json.pr_time time_from_now(pr.status == 1 ? pr.updated_at : issue.updated_on)
|
json.pr_time time_from_now(pr.status == 1 ? pr.updated_at : issue.updated_on)
|
||||||
|
|
|
@ -30,6 +30,7 @@ json.pull_request do
|
||||||
json.create_user @pull_request&.user&.login
|
json.create_user @pull_request&.user&.login
|
||||||
json.mergeable @gitea_pull["mergeable"]
|
json.mergeable @gitea_pull["mergeable"]
|
||||||
json.state @gitea_pull["state"]
|
json.state @gitea_pull["state"]
|
||||||
|
json.reviewers @pull_request.reviewers.pluck(:login)
|
||||||
end
|
end
|
||||||
|
|
||||||
json.issue do
|
json.issue do
|
||||||
|
|
Loading…
Reference in New Issue