Skip to content
Snippets Groups Projects
  1. Jul 30, 2018
    • Bob Van Landuyt's avatar
      Show the status of a user in interactions · f1d3ea63
      Bob Van Landuyt authored
      The status is shown for
      - The author of a commit when viewing a commit
      - Notes on a commit (regular/diff)
      - The user that triggered a pipeline when viewing a pipeline
      - The author of a merge request when viewing a merge request
      - The author of notes on a merge request (regular/diff)
      - The author of an issue when viewing an issue
      - The author of notes on an issue
      - The author of a snippet when viewing a snippet
      - The author of notes on a snippet
      - A user's profile page
      - The list of members of a group/user
      f1d3ea63
  2. Jul 23, 2018
  3. Jul 11, 2018
  4. Jul 09, 2018
  5. Jul 06, 2018
  6. Jul 03, 2018
  7. Jun 21, 2018
  8. Jun 18, 2018
  9. Jun 15, 2018
  10. Jun 14, 2018
  11. Jun 13, 2018
  12. Jun 07, 2018
    • Sean McGivern's avatar
      Force Postgres to avoid trigram indexes when in a group · c03386c3
      Sean McGivern authored
      When filtering issues with a search string in a group, we observed on GitLab.com
      that Postgres was using an inefficient query plan, preferring the (global)
      trigram indexes on description and title, rather than using a filter on the
      restricted set of issues within the group.
      
      Change the callers of the IssuableFinder to use a CTE in this case to fence the
      rest of the query from the LIKE filters, so that the optimiser is forced to
      perform the filter in the order we prefer.
      
      This will only force the use of a CTE when:
      
      1. The use_cte_for_search params is truthy.
      2. We are using Postgres.
      3. We have passed the `search` param.
      
      The third item is important - searching issues using the search box does not use
      the finder in this way, but contructs a query and appends `full_search` to
      that. For some reason, this query does not suffer from the same issue.
      
      Currenly, we only pass this param when filtering issuables (issues or MRs) in a
      group context.
      c03386c3
  13. Jun 06, 2018
    • Sean McGivern's avatar
      Simplify issuable finder queries · 57e6a98c
      Sean McGivern authored
      We had `item_project_ids` to help make slow queries on the dashboard faster, but
      this isn't necessary any more - the queries are plenty fast, and we forbid
      searching the dashboard without filters.
      57e6a98c
  14. Jun 05, 2018
  15. Jun 01, 2018
  16. May 31, 2018
  17. May 17, 2018
  18. May 14, 2018
  19. May 04, 2018
    • Bob Van Landuyt's avatar
      Reuses `InternalRedirect` when possible · 39916fdf
      Bob Van Landuyt authored
      `InternalRedirect` prevents Open redirect issues by only allowing
      redirection to paths on the same host.
      
      It cleans up any unwanted strings from the path that could point to
      another host (fe. //about.gitlab.com/hello). While preserving the
      querystring and fragment of the uri.
      
      It is already used by:
      
      - `TermsController`
      - `ContinueParams`
        - `ImportsController`
        - `ForksController`
      - `SessionsController`: Only for verifying the host in CE. EE allows
         redirecting to a different instance using Geo.
      39916fdf
    • Bob Van Landuyt's avatar
      Enforces terms in the web application · 7684217d
      Bob Van Landuyt authored
      This enforces the terms in the web application. These cases are
      specced:
      
      - Logging in: When terms are enforced, and a user logs in that has not
        accepted the terms, they are presented with the screen. They get
        directed to their customized root path afterwards.
      - Signing up: After signing up, the first screen the user is presented
        with the screen to accept the terms. After they accept they are
        directed to the dashboard.
      - While a session is active:
        - For a GET: The user will be directed to the terms page first,
          after they accept the terms, they will be directed to the page
          they were going to
        - For any other request: They are directed to the terms, after they
          accept the terms, they are directed back to the page they came
          from to retry the request. Any information entered would be
          persisted in localstorage and available on the page.
      7684217d
  20. May 03, 2018
  21. Apr 28, 2018
  22. Apr 24, 2018
  23. Apr 22, 2018
  24. Apr 18, 2018
  25. Apr 11, 2018
    • Yorick Peterse's avatar
      Support Markdown rendering using multiple projects · daad7144
      Yorick Peterse authored
      This refactors the Markdown pipeline so it supports the rendering of
      multiple documents that may belong to different projects. An example of
      where this happens is when displaying the event feed of a group. In this
      case we retrieve events for all projects in the group. Previously we
      would group events per project and render these chunks separately, but
      this would result in many SQL queries being executed. By extending the
      Markdown pipeline to support this out of the box we can drastically
      reduce the number of SQL queries.
      
      To achieve this we introduce a new object to the pipeline:
      Banzai::RenderContext. This object simply wraps two other objects: an
      optional Project instance, and an optional User instance. On its own
      this wouldn't be very helpful, but a RenderContext can also be used to
      associate HTML documents with specific Project instances. This work is
      done in Banzai::ObjectRenderer and allows us to reuse as many queries
      (and results) as possible.
      Unverified
      daad7144
    • Bob Van Landuyt's avatar
  26. Apr 06, 2018
  27. Apr 04, 2018
  28. Apr 03, 2018
Loading