Commit graph

18 commits

Author SHA1 Message Date
Brett Walker
95b3fe2863 Use :complexity_multiplier only with connections
This helps reduce complexity for non-connections
2019-06-05 10:17:54 -05:00
Alessio Caiazza
83a8b77961 Add Namespace and ProjectStatistics to GraphQL API
We can query namespaces, and nested projects.

Projects now exposes statistics
2019-06-03 12:01:32 +02:00
Nick Thomas
454cbac3ef Merge branch 'graphql-tree' into 'master'
Added repository files to GraphQL API

See merge request gitlab-org/gitlab-ce!28325
2019-05-22 15:06:03 +00:00
Phil Hughes
67a5086195
Added repository files to GraphQL API 2019-05-22 12:43:35 +01:00
Brett Walker
0f14b628c4 Use BatchModelLoader for parent in GroupType 2019-05-20 17:23:11 -05:00
Jan Provaznik
5ee7884d91 GraphQL - Add extra complexity for resolvers
If a field is a resolver, its complexity is automatically
increased. By default we add extra points for sort and search
arguments (which will be common for various resolvers).

For specific resolvers we add field-specific complexity, e.g.
for Issues complexity is increased if we filter issues by `labelName`
(because then SQL query is more complex). We may want to tune these
values in future depending on real-life results.

Complexity is also dependent on the number of loaded nodes, but only
if we don't search by specific ID(s). Also added complexity is limited
(by default only twice more than child complexity) - the reason is
that although it's more complex to process more items, the complexity
increase is not linear (there is not so much difference between loading
10, 20 or 100 records from DB).
2019-05-06 21:24:19 +00:00
Bob Van Landuyt
33cf8edae1 Port changes for design management to CE
This ports the changes from
https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/10462/
to CE
2019-04-29 08:28:43 +02:00
Nick Thomas
21779d0018
Add metadata about the GitLab server to GraphQL 2019-03-05 15:00:32 +00:00
Rémy Coutable
87dfe5a27a
Add GraphQL filters for issuables (state, labels, time fields)
Signed-off-by: Rémy Coutable <remy@rymai.me>
2019-02-21 09:40:49 +01:00
Lin Jen-Shin
30918929ad Implement singular iid for IssuesResolver and ProjectType 2019-02-14 15:52:17 +08:00
Lin Jen-Shin
7be1f0842f Add tests for BaseResolver and update accordingly 2019-02-14 15:52:17 +08:00
Lin Jen-Shin
91e9e50a11 Add field mergeRequests for project in GraphQL
And fix the tests so that it won't run into circular paths.
2019-02-14 15:52:17 +08:00
Lin Jen-Shin
ee60128cef Add argument iids to IssuesResolver 2019-02-01 23:55:44 +08:00
Rémy Coutable
3a2abc1d50
Enable the Layout/ExtraSpacing cop
Signed-off-by: Rémy Coutable <remy@rymai.me>
2019-01-24 13:05:45 +01:00
Phil Hughes
50e21a89a0
Suggests issues when typing title
This suggests possibly related issues when the user types a title.

This uses GraphQL to allow the frontend to request the exact
data that is requires. We also get free caching through the Vue Apollo
plugin.

With this we can include the ability to import .graphql files in JS
and Vue files.
Also we now have the Vue test utils library to make testing
Vue components easier.

Closes #22071
2018-11-27 15:10:40 +00:00
Bob Van Landuyt
04b046587f Add pipeline lists to GraphQL
This adds Keyset pagination to GraphQL lists. PoC for that is
pipelines on merge requests and projects.

When paginating a list, the base-64 encoded id of the ordering
field (in most cases the primary key) can be passed in the `before` or
`after` GraphQL argument.
2018-07-04 10:53:39 +02:00
Bob Van Landuyt
9403b1d951 Allow querying a single MR within a project
This allows the user to get a single MR nested in a GraphQL project
query.

Since we need the full path and the iid anyway, this makes more sense
than having a root query that needs the full path as well.
2018-06-15 14:38:32 +02:00
Bob Van Landuyt
9b65d4bb41 Initial setup GraphQL using graphql-ruby 1.8
- All definitions have been replaced by classes:
  http://graphql-ruby.org/schema/class_based_api.html
- Authorization & Presentation have been refactored to work in the
  class based system
- Loaders have been replaced by resolvers
- Times are now coersed as ISO 8601
2018-06-06 10:58:54 +02:00