新增: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)
|
||||
if @gitea_pull_request[:status] == :success
|
||||
@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('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)}"
|
||||
|
@ -107,6 +109,9 @@ class PullRequestsController < ApplicationController
|
|||
end
|
||||
end
|
||||
|
||||
reviewers = User.where(id: params[:reviewer_ids])
|
||||
@pull_request.reviewers = reviewers
|
||||
|
||||
if @issue.update_attributes(@issue_params)
|
||||
if @pull_request.update_attributes(@local_params.compact)
|
||||
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.created_at|string|审查创建的时间|
|
||||
|last_review.reviewer |object|审查创建人|
|
||||
|reviewers |array|指定审查用户标识数组|
|
||||
|conflict_files |array|有冲突的文件|
|
||||
|
||||
> 返回的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"
|
||||
}
|
||||
},
|
||||
"reviewers": [
|
||||
"yystopf"
|
||||
],
|
||||
"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
|
||||
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
|
||||
|
||||
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]
|
||||
@version_id = params[:version_id]
|
||||
@reviewer_id = params[:reviewer_id]
|
||||
@assign_user_id = params[:assign_user_id]
|
||||
@sort_by = params[:sort_by] || 'created_at'
|
||||
@sort_direction = params[:sort_direction] || 'desc'
|
||||
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(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(issues: {assigned_to_id: assign_user_id}) if assign_user_id.present?
|
||||
|
||||
q = pull_requests.ransack(title_or_body_cont: keyword)
|
||||
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]
|
||||
|
||||
issues = all_issues.issue_index_includes
|
||||
issues = issues.includes(pull_request: :reviewers)
|
||||
if status_type.to_s == "2" #表示关闭中的
|
||||
issues = issues.where(status_id: 5)
|
||||
elsif status_type.to_s == "1"
|
||||
|
|
|
@ -22,4 +22,5 @@ json.issue do
|
|||
json.issue_tags issue.get_issue_tags
|
||||
end
|
||||
|
||||
json.reviewers pull.reviewers.pluck(:login)
|
||||
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_identifier pr&.fork_project&.identifier
|
||||
json.fork_project_user pr&.fork_project&.owner.try(:login)
|
||||
|
||||
json.reviewers pr&.reviewers.pluck(:login)
|
||||
|
||||
json.id issue.id
|
||||
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.files_count @pull_request.files_count
|
||||
json.comments_count @pull_request.comments_count
|
||||
json.reviewers @pull_request.reviewers.pluck(:login)
|
|
@ -24,6 +24,7 @@ json.issues do
|
|||
json.fork_project_identifier pr&.fork_project&.identifier
|
||||
json.fork_project_user pr&.fork_project&.owner.try(:login)
|
||||
json.fork_project_user_name pr&.fork_project&.owner.try(:show_real_name)
|
||||
json.reviewers pr.reviewers.pluck(:login)
|
||||
|
||||
json.id issue.id
|
||||
json.name issue.subject
|
||||
|
|
|
@ -30,6 +30,7 @@ json.pull_request do
|
|||
json.create_user @pull_request&.user&.login
|
||||
json.mergeable @gitea_pull["mergeable"]
|
||||
json.state @gitea_pull["state"]
|
||||
json.reviewers @pull_request.reviewers.pluck(:login)
|
||||
end
|
||||
|
||||
json.issue do
|
||||
|
|
Loading…
Reference in New Issue