1. 19 Sep, 2019 6 commits
    • Tristan Williams's avatar
      31c15639
    • Evan Read's avatar
      Merge branch 'sh-add-project-creation-docs' into 'master' · cd772e8c
      Evan Read authored
      Add missing parameters in project creation API docs
      
      See merge request gitlab-org/gitlab!17145
      cd772e8c
    • Evan Read's avatar
      Merge branch 'docs/code-owners-api' into 'master' · 3e8f9911
      Evan Read authored
      Docs for protected branch code owner approval API
      
      See merge request gitlab-org/gitlab!17132
      3e8f9911
    • James Ramsay's avatar
    • Mayra Cabrera's avatar
      Merge branch 'sh-fix-import-export-shared-ee' into 'master' · 411a9cc2
      Mayra Cabrera authored
      [EE] Fix project exports clobbering concurrent export paths
      
      Closes #14716
      
      See merge request gitlab-org/gitlab!16280
      411a9cc2
    • Stan Hu's avatar
      Fix project exports clobbering concurrent export paths · 8d5f875c
      Stan Hu authored
      When a project export completes, it removes everything in
      `Project#import_export_shared.archive_path`, which can erase files
      needed for another ongoing project export. This is problematic for
      custom templates, which exports an existing project to get the most
      recent changes and imports that archive to another project.
      
      To avoid this from happening, we generate a random unique subpath in the
      shared temporary directory so that multiple exports can work at the same
      time.
      
      Previously the path structure was as follows:
      
      1. Project export files stored in:
         /shared/tmp/project_exports/namespace/project/:random
      2. Project export .tar.gz files stored in:
         /shared/tmp/project_exports/namespace/project
      3. Project export lock file:
         /shared/tmp/project_exports/namespace/project/.after_export_action
      
      Now:
      
      1. Project export files stored in:
         /shared/tmp/project_exports/namespace/project/:randomA/:randomB
      2. Project export .tar.gz files stored in:
         /shared/tmp/project_exports/namespace/project/:randomA
      3. Project export lock files stored in:
         /shared/tmp/project_exports/namespace/project/locks
      
      The .tar.gz files are also now cleaned up in the AfterExportStrategy.
      
      Also, ensure import/export path cleanup always happens.
      
      A failure to update the database or object storage shouldn't
      block us from cleaning up stale directories. This is especially
      important to clear out stale lock file and archive paths.
      
      Closes https://gitlab.com/gitlab-org/gitlab-ee/issues/14716
      8d5f875c
  2. 18 Sep, 2019 34 commits