- Jan 03, 2022
-
-
Georges Racinet authored
-
- Dec 26, 2021
-
-
Georges Racinet authored
This should not be called on a Mercurial repo, at least until we provide general support for signatures. If that ever happens we'll be happy to have the explicit reference to the issue.
-
Georges Racinet authored
See #90
-
Georges Racinet authored
This makes it easier to check that we don't miss any method (and we do miss two)
-
Georges Racinet authored
This is enough to bump the minor version, underlining the divergence with Heptapod 0.27. A few Git-centric disappear and the only significant change for us is the new `RefService.FindRefsByOID` method (see #89). On the Rails side, `FindRefsByOID` is exposed as `Repository#refs_by_oid` whose only caller is `Commit#first_ref_by_oid`, itself used in v14.5.2 only in the Jira integration and behind a feature flag.
-
- Nov 26, 2021
-
-
Georges Racinet authored
-
- Nov 22, 2021
-
-
Georges Racinet authored
-
Georges Racinet authored
- we want `PeerInitException` to be about initialization of peer only. This entails a few requests already (capabilities, etc.) - we need to explicitely catch all other errors in `Push()`. I actually believe that `grpc` would convert every uncatched error into an `INTERNAL`, so that the server does not stop, but it's best not to depend on it, and it gives us a way to have a more explicit message (error was not in the push itself)
-
- Nov 20, 2021
-
-
Georges Racinet authored
The GitLab sync would need to get user information to ask for permission (pre-receive hook) and to send resulting information (post-receive hook). This would require changing a bunch of internal APIs in the Rails application for the `hg-push` mirror update use case (currently the only one). Furthermore, the post-receive hook would in turn trigger an update of the `hg-push` remote mirror, resulting in effect in an infinite loop of pushes (we've witnessed the state maintainer `pretxnclose` Mercurial hook running even if no auto publication occurred). This can be improved later on, but for now, we'll make the push effectively read-only by disabling auto publication, and that allows us to unplug the GitLab state maintainer (`heptapod_sync`). Users of `hg-push` mirrors will see an explicit message in the mirror settings page in the case where the push would have been publishing. Chances are that publication by the mirrorring would have been very unwelcome anyway (note also that in its first incarnation, the Rails app won't expose the `include_drafts` boolean).
-
- Nov 18, 2021
-
-
Georges Racinet authored
At this point, we are probably making the SSH key and the known hosts content de facto mandatory. It is not clear yet what is the usual GitLab practice.
-
Georges Racinet authored
/usr/local/bin in the Mercurial image instead of /usr/bin in the Gitaly image. (this will be necessary for SSH push tests)
-
Georges Racinet authored
Because everything runs as root in CI, sshd wants to chroot to the `/run/sshd` directory, that must already exist.
-
- Nov 22, 2021
-
-
Georges Racinet authored
We separate the concern of initialization of the remote peer in the new `hgitaly.peer` module. URLs referencing the local file system of the HGitaly server are accepted (for they are very convenient in tests) yet restrained to the relevant storage, thus not adding more rights than the callers already have. We expect the logic to be the same for future subsystems using remote peers. SSH remotes are not implemented yet. The test case for exception raised by `urlparse()` would not pass with Python 3.7 (NKFC normalization exception was introduced in Python 3.8), this was actually the original motivation for dropping Python 3.7 compatibility (see 019dc802a624). Closes #87
-
- Nov 18, 2021
-
-
Georges Racinet authored
This provides facilities to start SSH servers constrained to a single user and use them from `hg` commands, complete with host and user key pairs. `hgitaly.testing.tests.test_sshd` demonstrates a successful push using them, allowing the forthcoming tests for service methods using SSH to focus on their own business.
-
- Nov 22, 2021
-
-
Georges Racinet authored
This is meant to correspond to the patterns used by GitLab for protected branches.
-
- Nov 05, 2021
-
-
Georges Racinet authored
As all changes of protocol, this warrants a bump in minor version. A separate message is introduced to describe the remote peer, so that it can become the standard for future gRPC methods (we'll have at list a `Pull` at some point). Included the implementation and tests boilerplate to make subsequent changesets more to the point.
-
- Nov 18, 2021
-
-
Georges Racinet authored
(including a change that wouldn't work on 3.7) We recently upgraded the CI images to Debian 11 (Python 3.9). Binary packages for Heptapod (Docker images notably) have been shipping Python 3.8 for a very long time, and were upgraded to 3.9 with Heptapod 0.26
-
Georges Racinet authored
These images in the octobus org in Docker Hub predate the usage of registry.heptapod.net.
-
Georges Racinet authored
-
- Nov 15, 2021
-
-
Georges Racinet authored
-
Georges Racinet authored
-
Georges Racinet authored
-
Georges Racinet authored
On my laptop, this is enough to make the tests pass. Not to pretend this is satisfactory.
-
- Nov 14, 2021
-
-
Georges Racinet authored
- `FindRefName` has been removed from protocol (probably a good thing as it was a fuzzy heuristic anyway) - `SetFullPath` now returns a proper `NotFound` error if repository does not exist. - `FindRefName` was the only caller of `ensure_gitlab_branches_state_file`, hence we needed a new test to maintain coverage.
-
Georges Racinet authored
-
Georges Racinet authored
The test location was chosen in anticipation of a future move of diff helper classes and functions to the `hgitaly.diff`, module, as suggested in !82 (comment 165083)
-
- Oct 26, 2021
-
-
Sushil Khanchi authored
-
- Oct 17, 2021
-
-
Sushil Khanchi authored
-
- Nov 11, 2021
-
-
Georges Racinet authored
-
- Oct 25, 2021
-
-
Georges Racinet authored
The new RpcHelper was developed against with the stable Heptapod series, in which we have hg-git 0.9.x, but the GitHandler is not available at package top level in 0.10.x. This new spelling of the import works for both. (grafted from 298bc407658e)
-
- Nov 10, 2021
-
-
Georges Racinet authored
See heptapod#573
-
- Nov 05, 2021
-
-
Georges Racinet authored
-
- Nov 03, 2021
-
-
Georges Racinet authored
-
Georges Racinet authored
-
Georges Racinet authored
-
Georges Racinet authored
-