Commit Graph

759 Commits

Author SHA1 Message Date
Matt Harbison
405dd67275 ensure each message line printed in the Mercurial hook gets a trailing newline
I noticed that the exception printed in the previous commit started on the same
line as the print for the `str(e)` case right before it.  Since this also prints
the content of urllib2.URLError.read(), it seems better to remove any existing
newline and re-add it, than to just assume the `str(e)` case was the only
problem.
2018-06-22 16:42:05 -04:00
Matt Harbison
2d103b7f95 optionally print tracebacks when the Mercurial hook swallows an exception
If `ui.traceback=True` is set on the server, this prints the stacktrace for the
exception on the client side.  Otherwise, nothing happens.  I tried allowing the
exception to propagate back to Mercurial, but then the client sees this message
with 4.4.2 and 4.6.1:

    abort: remote error:
    Mercurial/Python process ends with return code 1

Something odd changed when upgrading from CentOS 7.4 to 7.5 around forwarding
requests from the loopback address that I don't fully understand.  First, we
were getting a ValueError from inside `opener.open()` saying that 'localhost'
didn't match the host listed in the SSL certificate.  That wasn't visible until
adding this.

Then what happened is a connection refused out of the same function, so the
traceback is added to the other handler too.  Running the equivalent command on
the command line from the 'vcs' host stopped working in 7.5:

  $ curl https://vcs.domain.com/hook/hg/?ping=true
  curl: (7) Failed connect to vcs.domain.com:443; Connection refused

But it works when run on another machine targeting that same 'vcs' host.  Adding
another firewall rule allows everything to work from the 'vcs' host again:

  $ iptables -t nat -I OUTPUT -p tcp -o lo --dport 443 -j REDIRECT --to-ports 8443
2018-06-22 16:33:52 -04:00
Matt Harbison
a051eb159c #989 load global configuration in hgweb on Mercurial 4.1 and later 2018-06-22 16:06:35 -04:00
Sebastian Sdorra
e826b833cc switch from jersey 1.x to resteasy 2017-06-27 20:16:05 +02:00
Sebastian Sdorra
3f27dd8cca [maven-release-plugin] prepare for next development iteration 2018-05-04 11:14:45 +02:00
Sebastian Sdorra
a0b3b154c8 [maven-release-plugin] prepare release 1.60 2018-05-04 11:14:45 +02:00
Sebastian Sdorra
7d6c65799e #972 use javahg version which is compatible with java 7 2018-04-12 11:57:00 +02:00
Sebastian Sdorra
247ee63a95 [maven-release-plugin] prepare for next development iteration 2018-04-11 10:09:12 +02:00
Sebastian Sdorra
92a492f68b [maven-release-plugin] prepare release 1.59 2018-04-11 10:09:11 +02:00
Gábor Stefanik
e230c0f4cd make {extras} work on old versions of Hg 2018-04-06 20:30:15 +00:00
Sebastian Sdorra
7ed4dbcf00 fix hgweb execution for mercurial versions prior 4.1 2018-04-06 14:01:00 +02:00
Sebastian Sdorra
dd313036ff [maven-release-plugin] prepare for next development iteration 2018-04-06 08:28:51 +02:00
Sebastian Sdorra
482589fc67 [maven-release-plugin] prepare release 1.58 2018-04-06 08:28:50 +02:00
Sebastian Sdorra
ff2afceb55 update javahg to version 0.13 2018-04-05 19:48:04 +02:00
Sebastian Sdorra
3d401b93ea #970 added help text for enable httppostargs 2018-04-03 11:56:51 +02:00
Sebastian Sdorra
acebd0f25e #970 wrap requests only if http postargs is enabled 2018-04-03 11:14:05 +02:00
Sebastian Sdorra
8047d36028 #970 use iso-8859-1 for http post args instead of us-ascii 2018-04-03 11:00:16 +02:00
Sebastian Sdorra
b43e406b76 #970 initial support of mercurials httppostargs protocol 2018-03-30 11:20:22 +02:00
Sebastian Sdorra
a34acd8ed4 #970 added option to enable the experimental httppostargs protocol of mercurial 2018-03-29 22:14:28 +02:00
Sebastian Sdorra
8aaa67cd6a #970 inspect mercurial commands in order to detect write requests
The HgPermissionFilter will now inspect the used mercurial command, of all requests which are using a read method like GET, HEAD, OPTIONS or TRACE and tread every one as write request, expect:
- no command was specified with the request (this is required for the hgweb ui)
- the command in the query string was found in the list of read commands
- if query string contains the batch command, then all commands specified in X-HgArg headers must be in the list of read commands
This change is required, in order to fix CVE-2018-1000132 for SCM-Manager.
2018-03-29 20:26:56 +02:00
Sebastian Sdorra
e7dd54c133 #970 added ngrep dumps for mercurial wire protocol and more realistic tests for isWriteRequest 2018-03-29 10:21:34 +02:00
Sebastian Sdorra
7d94b03a04 #959 added option to disable ssl validation for scm mercurial hook 2018-02-23 08:44:22 +01:00
Sebastian Sdorra
d21a28fa0b [maven-release-plugin] prepare for next development iteration 2018-02-09 08:14:35 +01:00
Sebastian Sdorra
b64d41f3c9 [maven-release-plugin] prepare release 1.57 2018-02-09 08:14:34 +01:00
Sebastian Sdorra
9dd25b334a treat update of a git tag as delete and create for hooks 2018-02-07 11:24:53 +01:00
Sebastian Sdorra
0ff9b255c3 [maven-release-plugin] prepare for next development iteration 2018-01-15 14:51:11 +01:00
Sebastian Sdorra
f66221e566 [maven-release-plugin] prepare release 1.56 2018-01-15 14:51:10 +01:00
Sebastian Sdorra
712c14f910 [maven-release-plugin] prepare for next development iteration 2017-11-02 09:21:42 +01:00
Sebastian Sdorra
fd047c1170 [maven-release-plugin] prepare release 1.55 2017-11-02 09:21:42 +01:00
Gábor Stefanik
77eea15417 oops... don't interpret "close=junk" as "close=1" 2017-09-18 12:34:50 +00:00
Gábor Stefanik
14ee6ef0d6 prevent binary data in {extras} from interfering with UTF-8 decoding 2017-09-18 12:30:20 +00:00
Sebastian Sdorra
785e1b12a9 fixed update of git repositories with empty git default branch, see issue #903 2017-07-07 19:09:46 +02:00
Sebastian Sdorra
b17a23ddc8 added option to disallow non fast-forward git pushes 2017-07-06 10:13:11 +02:00
Sebastian Sdorra
07a1c8b151 [maven-release-plugin] prepare for next development iteration 2017-06-06 11:39:35 +02:00
Sebastian Sdorra
fd02f4c068 [maven-release-plugin] prepare release 1.54 2017-06-06 11:39:34 +02:00
Sebastian Sdorra
b7568ea919 introducing new ExtensionPoint for repository path matching
The new ExtensionPoint was introduced to  remove the tight coupling between the DefaultRepositoryManager and the GitRepositoryHandler.
Git has now its own RepositoryPathMatcher which allow the matching of repository with .git or without .git extension.
2017-06-06 10:46:44 +02:00
Sebastian Sdorra
58035845ce improve GitRepositoryResolver to allow requests to repositories which ends with .git, the resolver will automatically remove the .git extension and resolves the repository 2017-06-06 10:43:29 +02:00
Sebastian Sdorra
6eb480fe84 git repository client should return the work tree as working copy instead of .git directory 2017-06-06 10:41:36 +02:00
Sebastian Sdorra
b51fba2282 fix repository browsing with mercurial 4.x 2017-06-06 08:14:04 +02:00
Sebastian Sdorra
a59c352e2d update jgit to v4.5.2.201704071617-r-scm1 2017-06-01 18:03:12 +02:00
Sebastian Sdorra
1effc9c29b remove all items from lfs blob store, if the corresponding repository was removed 2017-06-01 17:28:59 +02:00
Sebastian Sdorra
2a8cfc00d8 use pattern and matcher instead of string matches, to improve performance 2017-06-01 16:27:20 +02:00
Sebastian Sdorra
d9486ba8ba improve git client detection at GitPermissionFilter to include jgit 2017-06-01 16:08:07 +02:00
Sebastian Sdorra
ee4a19365e fix possible stackoverflow in git request handling 2017-06-01 16:07:18 +02:00
Sebastian Sdorra
2af11b1f9c relax git lfs write request check and improved tests for GitPermissionFilter 2017-06-01 10:11:42 +02:00
Sebastian Sdorra
880b0499e8 use uri to decide type of request instead of user-agent 2017-05-30 14:10:43 +02:00
Sebastian Sdorra
8b92175fbc improved structure of GitUserAgentProvider and added more unit tests 2017-05-30 12:05:01 +02:00
Sebastian Sdorra
964973d8f7 added jgit detection to GitUserAgentProvider, to fix integration tests 2017-05-30 09:48:12 +02:00
Sebastian Sdorra
f6318a3b58 fix missing commit of blob after lfs push 2017-05-30 09:21:50 +02:00
Oliver Milke
33ea2273b0 Add git-lfs support 2017-05-19 17:27:18 +02:00