summaryrefslogtreecommitdiff
path: root/spec/graphql/types
Commit message (Collapse)AuthorAgeFilesLines
* Add latest changes from gitlab-org/gitlab@12-6-stable-eeGitLab Bot2019-12-209-5/+117
|
* Add latest changes from gitlab-org/gitlab@12-5-stable-eeGitLab Bot2019-11-1910-28/+45
|
* Add latest changes from gitlab-org/gitlab@12-4-stable-eeGitLab Bot2019-10-2219-6/+114
|
* Add policy check if cross reference system notes are accessibleAlexandru Croitor2019-09-231-0/+79
|
* Expose namespace storage statistics with GraphQLAlessio Caiazza2019-08-222-1/+15
| | | | | | | | | | | | | | | | | | | Root namespaces have storage statistics. This commit allows namespace owners to get those stats via GraphQL queries like the following one { namespace(fullPath: "a_namespace_path") { rootStorageStatistics { storageSize repositorySize lfsObjectsSize buildArtifactsSize packagesSize wikiSize } } }
* Added submodule links to Submodule type in GraphQL APIIgor2019-07-171-1/+1
| | | | This is part of migration of Folder View to Vue
* GraphQL support for Notes created in discussions62826-graphql-note-mutationsLuke Duncalfe2019-07-101-1/+1
| | | | | | | | | | | | A new `discussion_id` argument on the `createNote` mutation allows people to create a note within that discussion. The ability to lazy-load Discussions has been added, so GraphQL.object_from_id can treat Discussions the same as AR objects and batch load them. https://gitlab.com/gitlab-org/gitlab-ce/issues/62826 https://gitlab.com/gitlab-org/gitlab-ee/issues/9489
* Expose diff_refs on MergeRequestTypeLuke Duncalfe2019-07-103-2/+11
| | | | https://gitlab.com/gitlab-org/gitlab-ee/issues/9489
* Address reviewer comments58409-increase-graphql-complexity-for-fields-that-make-gitaly-callscharlieablett2019-07-051-3/+12
| | | | | | - Remove Gitaly call check for fields that have a constant complexity declared - Add associated test
* Address reviewer commentscharlieablett2019-07-031-23/+4
| | | | | | - Add 1 for all fields that call Gitaly (with resolvers or without) - Clarify comment regarding Gitaly call alert - Expose predicate `calls_gitaly?` instead of ivar
* Alert if `calls_gitaly` declaration missingcharlieablett2019-07-031-13/+5
| | | | | | | - Move `calls_gitaly_check` to public - Add instrumentation for flagging missing CallsGitaly declarations - Wrap resolver proc in before-and-after Gitaly counts to get the net Gitaly call count for the resolver.
* Remove potentially noisy warningcharlieablett2019-07-031-4/+0
| | | | | - If Gitaly calls are missing, it could be due to a conditional and may just become noise
* Enumerate fields with Gitaly callscharlieablett2019-07-031-0/+81
| | | | | | - Add a complexity of 1 if Gitaly is called at least once - Add an error notification if `calls_gitaly` isn't right for a particular field
* Merge branch 'master' of gitlab.com:gitlab-org/gitlab-ceMarin Jankovski2019-07-033-1/+23
|\
| * Merge branch 'graphql-tree-last-commit' into 'master'Lin Jen-Shin2019-06-282-1/+12
| |\ | | | | | | | | | | | | Added commit type to tree GraphQL type See merge request gitlab-org/gitlab-ce!29412
| | * Added commit type to tree GraphQL typePhil Hughes2019-06-282-1/+12
| | |
| * | GraphQL mutations for add, remove and toggle emoji62826-graphql-emoji-mutationsLuke Duncalfe2019-06-281-0/+11
| |/ | | | | | | | | | | | | | | | | | | | | | | Adding new `AddAwardEmoji`, `RemoveAwardEmoji` and `ToggleAwardEmoji` GraphQL mutations. Adding new `#authorized_find_with_pre_checks!` and (unused, but for completeness `#authorized_find_with_post_checks!`) authorization methods. These allow us to perform an authorized find, and run our own additional checks before or after the authorization runs. https://gitlab.com/gitlab-org/gitlab-ce/issues/62826
* | Add authorize to LabelType and NamespaceTypeBob Van Landuyt2019-06-214-4/+5
|/ | | | This also disables the cop with a reasoning in types where appropriate
* Render GFM html in GraphQLBob Van Landuyt2019-06-206-18/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds a `markdown_field` to our types. Using this helper will render a model's markdown field using the existing `MarkupHelper` with the context of the GraphQL query available to the helper. Having the context available to the helper is needed for redacting links to resources that the current user is not allowed to see. Because rendering the HTML can cause queries, the complexity of a these fields is raised by 5 above the default. The markdown field helper can be used as follows: ``` markdown_field :note_html, null: false ``` This would generate a field that will render the markdown field `note` of the model. This could be overridden by adding the `method:` argument. Passing a symbol for the method name: ``` markdown_field :body_html, null: false, method: :note ``` It will have this description by default: > The GitLab Flavored Markdown rendering of `note` This could be overridden by passing a `description:` argument. The type of a `markdown_field` is always `GraphQL::STRING_TYPE`.
* Expose comments on Noteables in GraphQLBob Van Landuyt2019-06-147-0/+63
| | | | | | | | | This exposes `Note`s on Issues & MergeRequests using a `Types::Notes::NoteableType` in GraphQL. Exposing notes on a new type can be done by implementing the `NoteableType` interface on the type. The presented object should be a `Noteable`.
* Add LFS blob ID to GraphQL blob typePhil Hughes2019-06-101-1/+1
|
* Merge branch '62706-graphql-complexity-values-are-incorrectly-doubled' into ↵Jan Provaznik2019-06-061-9/+20
|\ | | | | | | | | | | | | | | | | 'master' Reduce GraphQL complexity for non-connection fields Closes #62706 See merge request gitlab-org/gitlab-ce!29165
| * Use :complexity_multiplier only with connectionsBrett Walker2019-06-051-9/+20
| | | | | | | | This helps reduce complexity for non-connections
* | Add web_url to tree entry in GraphQL APIPhil Hughes2019-06-052-2/+2
|/
* Expose wiki_size on GraphQL APIAlessio Caiazza2019-06-041-1/+2
|
* Add Namespace and ProjectStatistics to GraphQL APIAlessio Caiazza2019-06-034-1/+25
| | | | | | We can query namespaces, and nested projects. Projects now exposes statistics
* Added common fields to the IssueType10795-add-epic-tree-BE-epic-graphql-supportBrett Walker2019-05-312-1/+7
| | | | | and allow passing of child_complexity to the 'resolver_complexity' metho
* Added repository files to GraphQL APIPhil Hughes2019-05-227-0/+60
|
* GraphQL - Add extra complexity for resolversJan Provaznik2019-05-061-0/+26
| | | | | | | | | | | | | | | | | | 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).
* Basic GraphQL for a groupBrett Walker2019-04-233-1/+19
| | | | | Add new query for Groups, with new GroupType and NamespaceType
* Initial field and query complexity limits58405-basic-limiting-complexity-of-graphql-queriesBrett Walker2019-04-041-0/+19
| | | | | | | | It makes all Types::BaseField default to a complexity of 1. Queries themselves now have limited complexity, scaled to the type of user: no user, authenticated user, or an admin user.
* GraphQL Type authorizationLuke Duncalfe2019-04-036-22/+25
| | | | | | | | | | | | | | | | | | | Enables authorizations to be defined on GraphQL Types. module Types class ProjectType < BaseObject authorize :read_project end end If a field has authorizations defined on it, and the return type of the field also has authorizations defined on it. then all of the combined permissions in the authorizations will be checked and must pass. Connection fields are checked by "digging" to find the type class of the "node" field in the expected location of edges->node. Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/54417
* Extra permissions in Project & Issue GraphQLBob Van Landuyt2019-04-012-2/+6
| | | | | | | | | Allow extra permissions for the `Types::ProjectType` and `Types:IssueType` GraphQL types. As we'll be adding more permissions in CE. Now this spec only validates if all the expected permissions are present, but it will not fail if there are more.
* Add merge request popover with detailsSam Bigelow2019-03-211-0/+11
| | | | | | | | | - Show pipeline status, title, MR Status and project path - Popover attached to gitlab flavored markdown everywhere, including: + MR/Issue Title + MR/Issue description + MR/Issue comments + Rendered markdown files
* Apply suggestion to spec/graphql/types/query_type_spec.rbDouwe Maan2019-03-051-1/+1
|
* Add metadata about the GitLab server to GraphQLNick Thomas2019-03-052-1/+19
|
* Add GraphQL filters for issuables (state, labels, time fields)Rémy Coutable2019-02-213-0/+31
| | | | Signed-off-by: Rémy Coutable <remy@rymai.me>
* Allow authorize on array of objects for GraphQLLin Jen-Shin2019-02-141-1/+2
| | | | And add tests
* Add tests for BaseResolver and update accordinglyLin Jen-Shin2019-02-141-0/+5
|
* Enable the Layout/ExtraSpacing cop56392-enable-the-layout-extraspacing-copRémy Coutable2019-01-243-3/+3
| | | | Signed-off-by: Rémy Coutable <remy@rymai.me>
* Suggests issues when typing titlePhil Hughes2018-11-273-0/+23
| | | | | | | | | | | | | | | 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
* Make GitLab pages support access controlTuomo Ala-Vannesluoma2018-10-051-1/+1
|
* Add mutation toggling WIP state of merge requestsBob Van Landuyt2018-07-251-0/+9
| | | | | This is mainly the setup of mutations for GraphQL. Including authorization and basic return type-structure.
* Add pipeline lists to GraphQLBob Van Landuyt2018-07-043-1/+21
| | | | | | | | | 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.
* Expose permissions on types in GraphQLBob Van Landuyt2018-06-286-0/+90
| | | | | This adds a reusable way to expose permissions for a user to types in GraphQL.
* Allow querying a single MR within a projectBob Van Landuyt2018-06-152-15/+10
| | | | | | | | 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.
* Initial setup GraphQL using graphql-ruby 1.8Bob Van Landuyt2018-06-063-12/+17
| | | | | | | | | - 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
* Add a minimal GraphQL APINick Thomas2018-06-052-0/+53