1. 19 Oct, 2018 1 commit
    • Bob Van Landuyt's avatar
      Remove the `ForkedProjectLink` model · b055a9ce0a40
      Bob Van Landuyt authored
      This removes the `ForkedProjectLink` model that has been replaced by
      the `ForkNetworkMember` and `ForkNetwork` combination. All existing
      relations have been adjusted to use these new models.
      The `forked_project_link` table has been dropped.
      The "Forks" count on the admin dashboard has been updated to count all
      `ForkNetworkMember` rows and deduct the number of `ForkNetwork`
      rows. This is because now the "root-project" of a fork network also
      has a `ForkNetworkMember` row. This count could become inaccurate when
      the root of a fork network is deleted.
  2. 10 Oct, 2018 1 commit
    • Stan Hu's avatar
      Fix project deletion when there is a export available · d893ead145a7
      Stan Hu authored
      Project deletions were failing with "Can't modify frozen hash" because:
      1. Project#remove_exports was called in the after_destroy hook
      2. This would remove the file and update ImportExportUpload
      3. ImportExportUpload#save would attempt to write to a destroyed model
      To avoid this, we just check if ImportExportUpload has been destroyed
      before attempting to save it.
      This would have a side effect of not running after_commit hooks to delete the
      repository on disk, making it impossible to delete the project entirely.
      Closes #52362
  3. 08 Oct, 2018 1 commit
    • Yorick Peterse's avatar
      Clean up ActiveRecord code in TodosFinder · c454a2f4a6ca
      Yorick Peterse authored
      This refactors the TodosFinder finder according to the new code reuse
      rules, as enforced by the CodeReuse cops. I also changed some of the
      methods to use regular if statements, instead of assignments and/or
      early returns. This results in a more natural flow when reading the
      code, and it makes it harder to accidentally return the wrong result.
  4. 06 Oct, 2018 1 commit
  5. 05 Oct, 2018 1 commit
  6. 04 Oct, 2018 1 commit
  7. 01 Oct, 2018 1 commit
  8. 26 Sep, 2018 1 commit
  9. 25 Sep, 2018 1 commit
    • Valery Sizov's avatar
      Geo: sync disabled wikis. Stage 2 · 8ce3572c59aa
      Valery Sizov authored
      We started syncing all the wiki regardless of the fact it's disabled or
      not. We couldn't do that in one stage because of needing of smoth update
      and deprecating things. This is the second stage that finally removes
      unused columns in the geo_node_status table.
  10. 24 Sep, 2018 1 commit
  11. 21 Sep, 2018 2 commits
  12. 17 Sep, 2018 1 commit
    • Yorick Peterse's avatar
      Added FromUnion to easily select from a UNION · 84f6b869d148
      Yorick Peterse authored
      This commit adds the module `FromUnion`, which provides the class method
      `from_union`. This simplifies the process of selecting data from the
      result of a UNION, and reduces the likelihood of making mistakes. As a
      result, instead of this:
          union = Gitlab::SQL::Union.new([foo, bar])
          Foo.from("(#{union.to_sql}) #{Foo.table_name}")
      We can now write this instead:
          Foo.from_union([foo, bar])
      This commit also includes some changes to make this new setup work
      properly. For example, a bug in Rails 4
      (https://github.com/rails/rails/issues/24193) would break the use of
      `from("sub-query-here").includes(:relation)` in certain cases. There was
      also a CI query which appeared to repeat a lot of conditions from an
      outer query on an inner query, which isn't necessary.
      Finally, we include a RuboCop cop to ensure developers use this new
      module, instead of using Gitlab::SQL::Union directly.
      Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/51307
  13. 12 Sep, 2018 1 commit
  14. 11 Sep, 2018 1 commit
  15. 10 Sep, 2018 1 commit
  16. 07 Sep, 2018 2 commits
  17. 06 Sep, 2018 1 commit
  18. 05 Sep, 2018 1 commit
  19. 04 Sep, 2018 1 commit
  20. 26 Aug, 2018 1 commit
  21. 23 Aug, 2018 1 commit
  22. 22 Aug, 2018 2 commits
  23. 20 Aug, 2018 2 commits
    • Gilbert Roulot's avatar
      Remove Gemnasium service · 43b04f62433f
      Gilbert Roulot authored
    • 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
      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
  24. 16 Aug, 2018 1 commit
  25. 13 Aug, 2018 1 commit
    • Duana Saskia's avatar
      Filter project hooks by branch · 11a03100ca1c
      Duana Saskia authored
      Allow specificying a branch filter for a project hook and only trigger
      a project hook if either the branch filter is blank or the branch matches.
      Only supported for push_events for now.
  26. 06 Aug, 2018 1 commit
  27. 03 Aug, 2018 2 commits
  28. 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
      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.
  29. 30 Jul, 2018 1 commit
  30. 26 Jul, 2018 1 commit
  31. 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.
  32. 24 Jul, 2018 1 commit
  33. 23 Jul, 2018 1 commit
  34. 17 Jul, 2018 2 commits