1. 22 Aug, 2018 2 commits
  2. 20 Aug, 2018 2 commits
    • Gilbert Roulot's avatar
      Remove Gemnasium service · 43b04f62433f
      Gilbert Roulot authored
      43b04f62433f
    • Yorick Peterse's avatar
      Refactor AutocompleteController · c8cc17675ba4
      Yorick Peterse authored
      This refactors the AutocompleteController according to the guidelines
      and boundaries discussed in
      https://gitlab.com/gitlab-org/gitlab-ce/issues/49653. Specifically,
      ActiveRecord logic is moved to different finders, which are then used in
      the controller. View logic in turn is moved to presenters, instead of
      directly using ActiveRecord's "to_json" method.
      
      The finder MoveToProjectFinder is also adjusted according to the
      abstraction guidelines and boundaries, resulting in a much more simple
      finder.
      
      By using finders (and other abstractions) more actively, we can push a
      lot of logic out of the controller. We also remove the need for various
      "before_action" hooks, though this could be achieved without using
      finders as well.
      
      The various finders related to AutcompleteController have also been
      moved into a namespace. This removes the need for calling everything
      "AutocompleteSmurfFinder", instead you can use
      "Autocomplete::SmurfFinder".
      c8cc17675ba4
  3. 16 Aug, 2018 1 commit
  4. 06 Aug, 2018 1 commit
  5. 03 Aug, 2018 1 commit
  6. 01 Aug, 2018 1 commit
    • Zeger-Jan van de Weg's avatar
      Add repository languages for projects · fc85a3572af6
      Zeger-Jan van de Weg authored
      Our friends at GitHub show the programming languages for a long time,
      and inspired by that this commit means to create about the same
      functionality.
      
      Language detection is done through Linguist, as before, where the
      difference is that we cache the result in the database. Also, Gitaly can
      incrementaly scan a repository. This is done through a shell out, which
      creates overhead of about 3s each run. For now this won't be improved.
      
      Scans are triggered by pushed to the default branch, usually `master`.
      However, one exception to this rule the charts page. If we're requesting
      this expensive data anyway, we just cache it in the database.
      
      Edge cases where there is no repository, or its empty are caught in the
      Repository model. This makes use of Redis caching, which is probably
      already loaded.
      
      The added model is called RepositoryLanguage, which will make it harder
      if/when GitLab supports multiple repositories per project. However, for
      now I think this shouldn't be a concern. Also, Language could be
      confused with the i18n languages and felt like the current name was
      suiteable too.
      
      Design of the Project#Show page is done with help from @dimitrieh. This
      change is not visible to the end user unless detections are done.
      fc85a3572af6
  7. 30 Jul, 2018 1 commit
  8. 25 Jul, 2018 1 commit
    • Yorick Peterse's avatar
      Remove code for dynamically generating routes · d9212d447768
      Yorick Peterse authored
      This adds a database migration that creates routes for any projects and
      namespaces that don't already have one. We also remove the runtime code
      for dynamically creating routes, as this is no longer necessary.
      d9212d447768
  9. 24 Jul, 2018 1 commit
  10. 14 Jul, 2018 1 commit
  11. 12 Jul, 2018 1 commit
  12. 11 Jul, 2018 1 commit
  13. 09 Jul, 2018 1 commit
  14. 06 Jul, 2018 1 commit
  15. 04 Jul, 2018 2 commits
  16. 03 Jul, 2018 1 commit
  17. 30 Jun, 2018 1 commit
  18. 27 Jun, 2018 1 commit
  19. 18 Jun, 2018 1 commit
  20. 14 Jun, 2018 1 commit
  21. 11 Jun, 2018 6 commits
  22. 06 Jun, 2018 1 commit
  23. 05 Jun, 2018 1 commit
  24. 01 Jun, 2018 1 commit
  25. 31 May, 2018 2 commits
  26. 22 May, 2018 1 commit
  27. 16 May, 2018 1 commit
    • Jan Provaznik's avatar
      Delete remote uploads · 9cb2812d4482
      Jan Provaznik authored
      ObjectStore uploader requires presence of associated `uploads` record
      when deleting the upload file (through the carrierwave's after_commit
      hook) because we keep info whether file is LOCAL or REMOTE in `upload`
      object.
      
      For this reason we can not destroy uploads as "dependent: :destroy" hook
      because these would be deleted too soon. Instead we rely on
      carrierwave's hook to destroy `uploads` in after_commit hook.
      
      But in before_destroy hook we still have to delete not-mounted uploads
      (which don't use carrierwave's destroy hook). This has to be done in
      before_Destroy instead of after_commit because `FileUpload` requires
      existence of model's object on destroy action.
      
      This is not ideal state of things, in a next step we should investigate
      how to unify model dependencies so we can use same workflow for all
      uploads.
      
      Related to #45425
      9cb2812d4482
  28. 08 May, 2018 2 commits
  29. 07 May, 2018 2 commits