1. 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
  2. 30 Jul, 2018 1 commit
  3. 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
  4. 24 Jul, 2018 1 commit
  5. 23 Jul, 2018 1 commit
  6. 17 Jul, 2018 2 commits
  7. 14 Jul, 2018 1 commit
  8. 12 Jul, 2018 1 commit
  9. 11 Jul, 2018 3 commits
  10. 06 Jul, 2018 1 commit
  11. 04 Jul, 2018 1 commit
  12. 26 Jun, 2018 1 commit
  13. 25 Jun, 2018 1 commit
  14. 18 Jun, 2018 1 commit
  15. 14 Jun, 2018 1 commit
  16. 11 Jun, 2018 3 commits
    • Bob Van Landuyt's avatar
      Fixes rejected pushes from maintainers · acb2c56a0cd2
      Bob Van Landuyt authored
      Before the push git would make a call to
      `/:namespace/:project/git-receive-pack`. This would perform an access
      check without a ref. So the `Project#branch_allows_maintainer_push?`
      would return false.
      
      This adjusts `Project#branch_allows_maintainer_push?` to return true
      when passing no branch name if there are merge requests open that
      would allow the user to push.
      
      The actual check then happens when a call to
      `/api/v4/internal/allowed` is made from a git hook.
      acb2c56a0cd2
    • Stan Hu's avatar
      Expire Wiki content cache after importing a repository · 17f85c6cfea7
      Stan Hu authored
      The cache state for Wikis that were imported via GitHub or Bitbucket does
      not appear to have been flushed after a successful import.
      
      Closes #47546
      17f85c6cfea7
    • Francisco Javier López's avatar
      1f07bddc29b7
  17. 06 Jun, 2018 1 commit
  18. 04 Jun, 2018 1 commit
  19. 01 Jun, 2018 2 commits
  20. 31 May, 2018 1 commit
  21. 24 May, 2018 2 commits
  22. 22 May, 2018 3 commits
  23. 21 May, 2018 1 commit
  24. 16 May, 2018 3 commits
    • Rémy Coutable's avatar
    • Jan Provaznik's avatar
      Changed order of include · 33c7dfb1ce05
      Jan Provaznik authored
      33c7dfb1ce05
    • 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
  25. 15 May, 2018 1 commit
  26. 08 May, 2018 1 commit
  27. 07 May, 2018 3 commits