1. 03 7月, 2019 1 次提交
    • C
      Enumerate fields with Gitaly calls · 8b809837
      charlieablett 提交于
       - 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
      8b809837
  2. 28 6月, 2019 2 次提交
  3. 21 6月, 2019 2 次提交
    • B
      Enforce authorizations for non-nullable fields · 967cbd08
      Bob 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.
      967cbd08
    • B
      Add authorize to LabelType and NamespaceType · 703d0246
      Bob Van Landuyt 提交于
      This also disables the cop with a reasoning in types where appropriate
      703d0246
  4. 20 6月, 2019 1 次提交
    • B
      Render GFM html in GraphQL · 40680858
      Bob 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`.
      40680858
  5. 15 6月, 2019 2 次提交
    • P
      Add task count and completed count to graphql types · 453a9b29
      Patrick 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
      453a9b29
    • M
      Do not blindly expose public project statistics · d7f10c29
      Mayra Cabrera 提交于
      Add the missing check on GraphQL API for project statistics
      d7f10c29
  6. 14 6月, 2019 1 次提交
    • B
      Expose comments on Noteables in GraphQL · b6ff5f1e
      Bob 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`.
      b6ff5f1e
  7. 11 6月, 2019 1 次提交
  8. 10 6月, 2019 1 次提交
  9. 05 6月, 2019 3 次提交
  10. 04 6月, 2019 3 次提交
  11. 03 6月, 2019 1 次提交
  12. 01 6月, 2019 1 次提交
  13. 22 5月, 2019 1 次提交
  14. 21 5月, 2019 1 次提交
  15. 07 5月, 2019 1 次提交
    • J
      GraphQL - Add extra complexity for resolvers · 5ee7884d
      Jan 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).
      5ee7884d
  16. 24 4月, 2019 2 次提交
  17. 04 4月, 2019 1 次提交
    • B
      Initial field and query complexity limits · f458c561
      Brett 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.
      f458c561
  18. 03 4月, 2019 1 次提交
    • L
      GraphQL Type authorization · 8207f787
      Luke 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
      8207f787
  19. 21 3月, 2019 1 次提交
    • S
      Add merge request popover with details · 1a14e523
      Sam 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
      1a14e523
  20. 05 3月, 2019 1 次提交
  21. 26 2月, 2019 1 次提交
    • L
      Improve GraphQL Authorization DSL · ccb4edbc
      Luke 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
      ccb4edbc
  22. 21 2月, 2019 1 次提交
  23. 18 2月, 2019 2 次提交
  24. 14 2月, 2019 3 次提交
  25. 06 2月, 2019 1 次提交
  26. 24 1月, 2019 1 次提交
  27. 27 11月, 2018 1 次提交
    • P
      Suggests issues when typing title · 50e21a89
      Phil Hughes 提交于
      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
      50e21a89
  28. 05 10月, 2018 1 次提交
  29. 12 9月, 2018 1 次提交