Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
587794b4b8
commit
d14219486e
|
@ -49,7 +49,6 @@ module Types
|
|||
field :web_url, GraphQL::STRING_TYPE, null: false # rubocop:disable Graphql/Descriptions
|
||||
field :relative_position, GraphQL::INT_TYPE, null: true # rubocop:disable Graphql/Descriptions
|
||||
|
||||
field :epic, ::Types::EpicType, null: true, description: 'The epic to which issue belongs'
|
||||
field :participants, Types::UserType.connection_type, null: true, complexity: 5, description: 'List of participants for the issue'
|
||||
field :time_estimate, GraphQL::INT_TYPE, null: false, description: 'The time estimate on the issue'
|
||||
field :total_time_spent, GraphQL::INT_TYPE, null: false, description: 'Total time reported as spent on the issue'
|
||||
|
|
|
@ -444,6 +444,7 @@ class User < ApplicationRecord
|
|||
#
|
||||
# Returns an ActiveRecord::Relation.
|
||||
def search(query)
|
||||
query = query&.delete_prefix('@')
|
||||
return none if query.blank?
|
||||
|
||||
query = query.downcase
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Allow users to be searched with a @ prefix
|
||||
merge_request: 17742
|
||||
author:
|
||||
type: added
|
|
@ -707,6 +707,7 @@ Available rule clauses include:
|
|||
(similar to [`only:variables`](#onlyvariablesexceptvariables)).
|
||||
- [`changes`](#ruleschanges)
|
||||
(same as [`only:changes`](#onlychangesexceptchanges)).
|
||||
- [`exists`](#rulesexists)
|
||||
|
||||
For example, using `if`. This configuration specifies that `job` should be built
|
||||
and run for every pipeline on merge requests targeting `master`, regardless of
|
||||
|
@ -779,9 +780,42 @@ In this example, a job either set to:
|
|||
- Run manually if `Dockerfile` has changed OR `$VAR == "string value"`.
|
||||
- `when:on_success` by the last rule, where no earlier clauses evaluate to true.
|
||||
|
||||
#### `rules:exists`
|
||||
|
||||
`exists` accepts an array of paths and will match if any of these paths exist
|
||||
as files in the repository.
|
||||
|
||||
For example:
|
||||
|
||||
```yaml
|
||||
job:
|
||||
script: docker build -t my-image:$CI_COMMIT_REF_SLUG .
|
||||
rules:
|
||||
- exists:
|
||||
- Dockerfile
|
||||
```
|
||||
|
||||
You can also use glob patterns to match multiple files in any directory within
|
||||
the repository.
|
||||
|
||||
For example:
|
||||
|
||||
```yaml
|
||||
job:
|
||||
script: bundle exec rspec
|
||||
rules:
|
||||
- exists:
|
||||
- spec/**.rb
|
||||
```
|
||||
|
||||
NOTE: **Note:**
|
||||
For performance reasons, using `exists` with patterns is limited to 10000
|
||||
checks. After the 10000th check, rules with patterned globs will always match.
|
||||
|
||||
#### Complex rule clauses
|
||||
|
||||
To conjoin `if` and `changes` clauses with an AND, use them in the same rule.
|
||||
To conjoin `if`, `changes`, and `exists` clauses with an AND, use them in the
|
||||
same rule.
|
||||
|
||||
In the following example:
|
||||
|
||||
|
@ -805,6 +839,7 @@ The only clauses currently available are:
|
|||
|
||||
- `if`
|
||||
- `changes`
|
||||
- `exists`
|
||||
|
||||
Keywords such as `branches` or `refs` that are currently available for
|
||||
`only`/`except` are not yet available in `rules` as they are being individually
|
||||
|
|
|
@ -10,7 +10,7 @@ describe GitlabSchema.types['Issue'] do
|
|||
it { expect(described_class.interfaces).to include(Types::Notes::NoteableType.to_graphql) }
|
||||
|
||||
it 'has specific fields' do
|
||||
fields = %i[iid title description state reference author assignees participants labels epic milestone due_date
|
||||
fields = %i[iid title description state reference author assignees participants labels milestone due_date
|
||||
confidential discussion_locked upvotes downvotes user_notes_count web_path web_url relative_position
|
||||
time_estimate total_time_spent closed_at created_at updated_at task_completion_status]
|
||||
|
||||
|
|
|
@ -1427,10 +1427,18 @@ describe User do
|
|||
expect(described_class.search(user.username)).to eq([user, user2])
|
||||
end
|
||||
|
||||
it 'returns users with a matching username starting with a @' do
|
||||
expect(described_class.search("@#{user.username}")).to eq([user, user2])
|
||||
end
|
||||
|
||||
it 'returns users with a partially matching username' do
|
||||
expect(described_class.search(user.username[0..2])).to eq([user, user2])
|
||||
end
|
||||
|
||||
it 'returns users with a partially matching username starting with @' do
|
||||
expect(described_class.search("@#{user.username[0..2]}")).to eq([user, user2])
|
||||
end
|
||||
|
||||
it 'returns users with a matching username regardless of the casing' do
|
||||
expect(described_class.search(user2.username.upcase)).to eq([user2])
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue