Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-07-25Remove code related to object hierarchy in MySQLHeinrich Lee Yu
These are not required because MySQL is not supported anymore
2019-07-17Added submodule links to Submodule type in GraphQL APIIgor
This is part of migration of Folder View to Vue
2019-07-10GraphQL support for Notes created in discussionsLuke Duncalfe
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
2019-07-10Expose diff_refs on MergeRequestTypeLuke Duncalfe
https://gitlab.com/gitlab-org/gitlab-ee/issues/9489
2019-07-10GraphQL mutations for managing NotesLuke Duncalfe
https://gitlab.com/gitlab-org/gitlab-ce/issues/62826
2019-07-05Address reviewer commentscharlieablett
- Remove Gitaly call check for fields that have a constant complexity declared - Add associated test
2019-07-03Address reviewer commentscharlieablett
- 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
2019-07-03Wrap proc properly in gitaly call countscharlieablett
- Add `calls_gitaly: true` to some fields missing (hey, it works!) - Clarify proc wrapping - Add kwargs argument to `mount_mutation`
2019-07-03Alert if `calls_gitaly` declaration missingcharlieablett
- 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.
2019-07-03Remove potentially noisy warningcharlieablett
- If Gitaly calls are missing, it could be due to a conditional and may just become noise
2019-07-03Enumerate fields with Gitaly callscharlieablett
- 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
2019-07-03Merge branch 'master' of gitlab.com:gitlab-org/gitlab-ceMarin Jankovski
2019-06-28Merge branch 'graphql-tree-last-commit' into 'master'Lin Jen-Shin
Added commit type to tree GraphQL type See merge request gitlab-org/gitlab-ce!29412
2019-06-28Added commit type to tree GraphQL typePhil Hughes
2019-06-28GraphQL mutations for add, remove and toggle emojiLuke Duncalfe
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
2019-06-21Enforce authorizations for non-nullable fieldsBob Van Landuyt
This makes sure we also enforce authorizations for non-nullable fields. We are defining our authorizations on the unwrapped types (Repository). But when a type like that is presented in a non-nullable field, it's type is different (Repository!). The non-nullable type would not have the authorization metadata. This makes sure we check the metadata on the unwrapped type for finding authorizations.
2019-06-21Add authorize to LabelType and NamespaceTypeBob Van Landuyt
This also disables the cop with a reasoning in types where appropriate
2019-06-20Render GFM html in GraphQLBob Van Landuyt
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`.
2019-06-17Merge branch '62910-task-completion-status-gql-pderichs' into 'master'Sean McGivern
Make task completion status available via GraphQL Closes #62910 See merge request gitlab-org/gitlab-ce!29573
2019-06-15Add task count and completed count to graphql typesPatrick Derichs
Add specs for task completion status (graphql) Fix style issues Changed format of constants in spec Refactor specs to reduce creation of records Reduce parameters to merge request creation Use set's for project and user Move let's out of it_behaves_like block Fix description parameter Fix format of lets Use dig to get task completion status out of graphql response Modified rspec output Add changelog entry
2019-06-14Do not blindly expose public project statisticsMayra Cabrera
Add the missing check on GraphQL API for project statistics
2019-06-14Expose comments on Noteables in GraphQLBob Van Landuyt
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`.
2019-06-11Rename `BatchCommitLoader` to `BatchLfsOidLoader`Bob Van Landuyt
Since we're not actually loading commits in that loader, but we're loading blobs with LFS oids in batch and returning only the oids.
2019-06-10Add LFS blob ID to GraphQL blob typePhil Hughes
2019-06-06Merge branch '62706-graphql-complexity-values-are-incorrectly-doubled' into ↵Jan Provaznik
'master' Reduce GraphQL complexity for non-connection fields Closes #62706 See merge request gitlab-org/gitlab-ce!29165
2019-06-05Merge branch 'graphql-file-entry-url' into 'master'Nick Thomas
Add web_url to tree entry in GraphQL API See merge request gitlab-org/gitlab-ce!28646
2019-06-05Grab field_defn to access certain valuesBrett Walker
2019-06-05Use :complexity_multiplier only with connectionsBrett Walker
This helps reduce complexity for non-connections
2019-06-05Merge branch 'bvl-use-global-ids-graphql' into 'master'Jan Provaznik
Use global IDs when exposing GraphQL resources Closes #62650 See merge request gitlab-org/gitlab-ce!29080
2019-06-05Add web_url to tree entry in GraphQL APIPhil Hughes
2019-06-04Expose wiki_size on GraphQL APIAlessio Caiazza
2019-06-03Fix incorrect instances of `GraphQL::ID_TYPE`Bob Van Landuyt
Since the `GraphQL::ID_TYPE` usages should represent globally unique ids, this changes some fields for which this is not the case into strings. The `ID_TYPE` is a specialised, so this change should be backwards compatible. https://graphql-ruby.org/type_definitions/scalars.html
2019-06-03Expose IDs in GraphQL as a GlobalIDBob Van Landuyt
This exposes all fields named `id` as GlobalIDs so they can be used across our entire GraphQL implementation. When the objects loaded are `ApplicationRecord`s. We'll use our existing batchloading to find them. Otherwise, we'll fall back to the default implementation of `GlobalID`: Calling the `.find` method on the class.
2019-06-03Add Namespace and ProjectStatistics to GraphQL APIAlessio Caiazza
We can query namespaces, and nested projects. Projects now exposes statistics
2019-05-31Added common fields to the IssueTypeBrett Walker
and allow passing of child_complexity to the 'resolver_complexity' metho
2019-05-22Merge branch 'graphql-tree' into 'master'Nick Thomas
Added repository files to GraphQL API See merge request gitlab-org/gitlab-ce!28325
2019-05-22Added repository files to GraphQL APIPhil Hughes
2019-05-21Use BatchModelLoader for parent in GroupTypeBrett Walker
2019-05-07GraphQL - Add extra complexity for resolversJan Provaznik
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-04-23Refactor group query specBrett Walker
and removing unnecessary code
2019-04-23Basic GraphQL for a groupBrett Walker
Add new query for Groups, with new GroupType and NamespaceType
2019-04-04Initial field and query complexity limitsBrett Walker
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.
2019-04-03GraphQL Type authorizationLuke Duncalfe
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
2019-03-21Add merge request popover with detailsSam Bigelow
- 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
2019-03-05Add metadata about the GitLab server to GraphQLNick Thomas
2019-03-04Merge branch 'security-protect-private-repo-information' into 'master'Yorick Peterse
Fix leaking private repository information in API See merge request gitlab/gitlabhq!2881
2019-02-26Improve GraphQL Authorization DSLLuke Duncalfe
Previously GraphQL field authorization happened like this: class ProjectType field :my_field, MyFieldType do authorize :permission end end This change allowed us to authorize like this instead: class ProjectType field :my_field, MyFieldType, authorize: :permission end A new initializer registers the `authorize` metadata keyword on GraphQL Schema Objects and Fields, and we can collect this data within the context of Instrumentation like this: field.metadata[:authorize] The previous functionality of authorize is still being used for mutations, as the #authorize method here is called at during the code that executes during the mutation, rather than when a field resolves. https://gitlab.com/gitlab-org/gitlab-ce/issues/57828
2019-02-21Add GraphQL filters for issuables (state, labels, time fields)Rémy Coutable
Signed-off-by: Rémy Coutable <remy@rymai.me>
2019-02-18Removing duplicate field from MergeRequestTypeLuke Duncalfe
2019-02-18Removing sensitive properties from ProjectTypeLuke Duncalfe
defaultBranch and ciConfigPath should only be available to users with the :download_code permission for the Project, as the respository might be private. When implementing the authorize check on these properties, it was found that our current Graphql::Authorize::Instrumentation class does not work with fields that resolve to subclasses of GraphQL::Schema::Scalar, like GraphQL::STRING_TYPE. After discussion with other Create Team members, it has been decided that because the GraphQL API is not GA, to remove these properties from ProjectType, and instead implement them as part of epic https://gitlab.com/groups/gitlab-org/-/epics/711 Issue: https://gitlab.com/gitlab-org/gitlab-ce/issues/55316