新增:reviewers修改入口

This commit is contained in:
yystopf 2022-07-26 16:45:53 +08:00
parent 6183f1f76d
commit a35db9fe80
9 changed files with 113 additions and 3 deletions

View File

@ -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,

View File

@ -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>
## 获取合并请求版本列表
获取合并请求版本列表

View File

@ -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])

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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