1. 11 Jun, 2020 5 commits
  2. 10 Jun, 2020 4 commits
  3. 09 Jun, 2020 2 commits
    • Georges Racinet's avatar
      Read the Docs integration · 272f83c2db16
      Georges Racinet authored
      Closes #282
      
      Generic GitLab does not need an Read the Docs integration, since
      Read the Docs has a Gitlab integration, but Heptapod needs one.
      
      This integration is disabled for Git repositories (not yet available
      in the Web UI, but partly working on Heptapod 0.13).
      
      Since the URL target should most of the times be under
      https://readthedocs.io, the TLS verification is enabled by default.
      
      This will send a POST to readthedocs for each named branch. We may
      want to complement with some filtering later on.
      
      --HG--
      branch : heptapod-stable
      272f83c2db16
    • Georges Racinet's avatar
      Merge Request detection for closed (named) branches · 0f6b2b3661a2
      Georges Racinet authored
      Closes #207
      
      If a Mercurial branch is merged and closed in the same push,
      this makes proper detection for the corresponding Merge Request(s).
      
      The detection works if the closing happens before or after the merge,
      that's why we needed to have both the closing changeset and its
      parents.
      
      --HG--
      branch : heptapod-stable
      0f6b2b3661a2
  4. 08 Jun, 2020 3 commits
    • Georges Racinet's avatar
      Removing redundant code from MergeRequest::RefreshService · 14e024b32d5b
      Georges Racinet authored
      With the early detection for topics now done in `PostReceive`,
      we don't need the "detection from source" that has been there
      since Heptapod 0.12.
      
      Also, we don't need to trigger deletion for the topic GitLab
      branch: it's been pruned already by Mercurial, same as it will
      when we go native.
      
      --HG--
      branch : heptapod-stable
      14e024b32d5b
    • Georges Racinet's avatar
      Merge Request from topics detection using Mercurial prune reasons · e5b0cd22f33e
      Georges Racinet authored
      Expecting the new payload sent by Mercurial, this performs an
      early treatment of published topics, before workers for each
      branch get spawned.
      
      In the most common case where the topic matches the target (named)
      branch, we don't need any repository access, so this is each and
      doesn't justify spreading with a worker per branch, as the general
      GitLab detection will do.
      
      The new HgManuallyMergedService takes care of updating the MR to
      the latest relevant topical changeset, to mark it as merged and
      perform all subsequent needed operations.
      
      --HG--
      branch : heptapod-stable
      e5b0cd22f33e
    • Georges Racinet's avatar
      Mercurial: parse_gitlab_branch_for_hg · f9732f09990f
      Georges Racinet authored
      It will be convenient to have such utility methods in a
      central place.
      
      --HG--
      branch : heptapod-stable
      f9732f09990f
  5. 29 May, 2020 3 commits
  6. 28 May, 2020 2 commits
  7. 29 May, 2020 1 commit
  8. 28 May, 2020 4 commits
    • Georges Racinet's avatar
      Setting py-heptapod version for release · 9f6c319baf03
      Georges Racinet authored
      --HG--
      branch : heptapod-0-13
      9f6c319baf03
    • Georges Racinet's avatar
      Merge heptapod branch in release branch · c6a03639d3ab
      Georges Racinet authored
      --HG--
      branch : heptapod-0-13
      c6a03639d3ab
    • Georges Racinet's avatar
      Squash: honouring squash_in_progress? · cfd7b187b509
      Georges Racinet authored
      This works with the same principle as rebase_in_progress?,
      see parent commit.
      
      --HG--
      branch : heptapod
      cfd7b187b509
    • Georges Racinet's avatar
      Rebase: honouring rebase_in_progress? · d7a0e368784b
      Georges Racinet authored
      We name the temporary working directory according to the given
      rebase_id and the question whether it's in progress boils down
      to the workdir being there.
      
      Ideally, some other kind of persistent storage should be used
      immediately, but we can use this as a better approximation for
      the time being. In upstream GitLab, this is handled by Gitaly,
      whose rebase RPC call receives the `rebase_id` and then answers
      the question. Later on HGitaly will do the same.
      
      --HG--
      branch : heptapod
      d7a0e368784b
  9. 27 May, 2020 1 commit
    • Georges Racinet's avatar
      Mercurial rebase for topics · 5f6de060df79
      Georges Racinet authored
      Closes #280
      
      This is enough for merge requests based on topics, which
      currently would display a 'rebase' button if the method is
      'ff'.
      
      For now we add a hard check that the branch being rebased is
      related to a topic, that makes for a simple revset.
      
      As in the case of squashs, the protection against concurrent
      rebases seems at first sight to be unneeded (the rebase itself
      is atomic enough, and a subsequent would fail because it'd create
      instabilities) but because of #277 we have to be cautious
      with concurrency and avoid potential thundering herds of shares.
      This will be done for both squash and rebase in a follow-up that
      would simply test for presence of a share.
      
      --HG--
      branch : heptapod
      5f6de060df79
  10. 28 May, 2020 6 commits
  11. 23 May, 2020 7 commits
  12. 22 May, 2020 2 commits
    • Georges Racinet's avatar
      Merged backup of wikis into release branch · a7fc6ae76d5d
      Georges Racinet authored
      --HG--
      branch : heptapod-0-13
      a7fc6ae76d5d
    • Georges Racinet's avatar
      wikis: making backups work · 3f8f52d8d321
      Georges Racinet authored
      Closes #275
      
      We replicate the same logic we've been doing earlier
      for the main repos on Heptapod 0.13: conditional for both
      the Git and the Mercurial repo.
      
      delegating `vcs_type` and `mercurial?` makes `ProjectWiki` close
      enough to `Project` for the inner method to work (as it does on
      upstream GitLab)
      
      --HG--
      branch : heptapod
      3f8f52d8d321