Commit Graph

239 Commits

Author SHA1 Message Date
Rene Pfeuffer
ada575d871 Add queryable store with SQLite implementation
This adds the new "queryable store" API, that allows complex
queries and is backed by SQLite. This new API can be used
for entities annotated with the new QueryableType annotation.
2025-04-01 16:18:04 +02:00
Viktor Egorov
19930804a0 Add Configuration to JWT lifetime length 2025-02-25 13:16:27 +01:00
Florian Scholdei
dd7b07aeaf Retry failing integration tests
This uses 'RetryingTest' from junit jupiter to retry integration tests
that are known to fail from time to time. We explicitly mark single
tests in contrast to set a global retry to be able to trace those,
whenever this is intended.
2025-02-03 16:28:30 +01:00
Rene Pfeuffer
4ebf0e2044 Adds 'head' as revision for Subversion repositories
To still support the editor plugin, a new field in the
browse command results is needed to indicate, whether
such a result or rather the requested revision can be
modified by a new commit.

This is the case, when
- for Subversion repositories either the new 'head' or the
latest revision has been requested, or
- for Git and HG when a branch (or the default by specifying
no concrete revision) has been used.
2024-11-05 10:54:49 +01:00
Rene Pfeuffer
e6433d01d1 Change to GNU Affero General Public License v3.0 2024-09-24 09:42:07 +02:00
Rene Pfeuffer
48b4978a3b Fix privilege escalation in namespaces
This fixes the following security issue:
If a user creates a new repository in a namespace this user had no permission to read any repository from, the user gets OWNER permissions on this namespace and all other permissions are removed from this namespace.

Pushed-by: Rene Pfeuffer<rene.pfeuffer@cloudogu.com>
Co-authored-by: René Pfeuffer<rene.pfeuffer@cloudogu.com>
Committed-by: René Pfeuffer<rene.pfeuffer@cloudogu.com>
2024-07-05 12:24:24 +02:00
Laura Gorzitze
d8e1f2d739 Cleanup Code
Pushed-by: Rene Pfeuffer<rene.pfeuffer@cloudogu.com>
Co-authored-by: René Pfeuffer<rene.pfeuffer@cloudogu.com>
2024-02-06 14:54:00 +01:00
Eduard Heimbuch
cf4d9cf20f 3.x
Committed-by: Eduard Heimbuch<eduard.heimbuch@cloudogu.com>
Pushed-by: Rene Pfeuffer<rene.pfeuffer@cloudogu.com>
Co-authored-by: René Pfeuffer<rene.pfeuffer@cloudogu.com>
Pushed-by: Eduard Heimbuch<eduard.heimbuch@cloudogu.com>
Committed-by: René Pfeuffer<rene.pfeuffer@cloudogu.com>
2023-11-30 17:02:44 +01:00
Rene Pfeuffer
4491f8894f Make flappy integration test case retrying 2023-11-13 11:41:44 +01:00
Rene Pfeuffer
68110ee6b3 Retry failing integration tests
This uses 'RetryingTest' from junit jupiter to retry integration tests that are known to fail from time to time. We explicitly mark single tests in contrast to set a global retry to be able to trace those, whenever this is intended.

To do so, we have to update to the latest version of JUnit. Unfortunately, this brought a new behaviour for the @TempDir annotation: In contrast to the former behaviour where for one test all annotated parameters got the same directory, in the new version the parameters get different directories assigned. This led to the need of some consolidation between @BeforeEach methods and the related tests.

Committed-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2023-03-22 06:24:33 +01:00
Eduard Heimbuch
2f0b46f615 Remove dependency locks 2023-03-10 13:48:55 +01:00
Rene Pfeuffer
f3027ba9f8 Update resteasy to 4.5.9.Final
Committed-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2023-03-10 08:29:34 +01:00
Rene Pfeuffer
9f3519ecce Remove sshd dependency
The sshd dependency in version 2.8.0 that came with SvnKIT
1.10.10 may cause an injection failure in bouncy castle
due to incompatible sshd versions on server startup when
the ssh plugin is installed (the ssh plugin uses version
2.9.0 of apache sshd).

Committed-by: Konstantin Schaper <konstantin.schaper@cloudogu.com>
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2023-02-16 14:02:56 +01:00
Rene Pfeuffer
962df5309c Update SVNKit to 1.10.10-scm1
Fix lockfiles and update slf4j



Committed-by: Matthias Thieroff <matthias.thieroff@cloudogu.com>
Co-authored-by: Florian Scholdei <florian.scholdei@cloudogu.com>
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2023-02-15 08:44:30 +01:00
René Pfeuffer
6ec8041b8c Replace default scm-manager.org mail address 2022-12-12 10:28:14 +01:00
René Pfeuffer
a5349da034 Update shiro to v1.10.0 2022-12-07 11:05:17 +01:00
René Pfeuffer
9d3a205dd7 Fix lockfiles 2022-10-18 15:31:34 +02:00
Eduard Heimbuch
b70a35c2f2 Expose jackson datatypes as api to be available by plugins 2022-10-18 14:46:31 +02:00
Konstantin Schaper
e99d77cb04 Upgrade Jackson to version 2.13.4 2022-10-17 17:27:36 +02:00
René Pfeuffer
17cfbf2821 Upgrade jgit to 6.2.0.202206071550-r-scm1 (#2131)
Co-authored-by: Konstantin Schaper <konstantin.schaper@cloudogu.com>
2022-10-12 13:20:20 +02:00
Konstantin Schaper
27dbcbf28d Integrate tailwind css and create new button library (#2098)
Introduce tailwind as new frontend styling library to replace bulma in the longer run. Also create the first new ui library `ui-buttons` which will be the new standard for buttons ins SCM-Manager. In this library we reconsidered which types of buttons should be used to create a clean and consistent ui.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2022-08-02 08:39:37 +02:00
Eduard Heimbuch
67c083ee54 Reduce code smells (#2089)
Reduce code smells found by deepsource.io. We focused on the low-hanging fruits and not breaking any api.
2022-07-15 15:33:37 +02:00
René Pfeuffer
59abaa710a Update jgit to version 5.13.0.202109080827-r-scm1 (#2079) 2022-07-07 09:41:49 +02:00
René Pfeuffer
b0b2375f78 Mirror LFS files for git (#2075)
If a mirrored git repository uses LFS, SCM-Manager will now also load the binaries, so that the mirrored repository can be used without missing LFS files.
2022-06-24 11:55:36 +02:00
Konstantin Schaper
84f220e5b2 Replace lerna with turborepo (#2073)
This change allows our ui libraries to be built separately. It is therefore to utilize different build tools for individual projects, as well as using build caches for the local build.

Co-authored-by: Sebastian Sdorra <sebastian.sdorra@cloudogu.com>
Co-authored-by: Matthias Thieroff <matthias.thieroff@cloudogu.com>
2022-06-22 11:49:26 +02:00
René Pfeuffer
84f7c5c099 Update jjwt to 0.11.5 (#2017)
Updates jjwt in response to CVE-2022-21449.

See https://github.com/jwtk/jjwt/blob/0.11.5/CHANGELOG.md?s=03#0115
2022-04-29 11:17:47 +02:00
René Pfeuffer
677a7f7de6 Upgrade svnkit to 1.10.3-scm2 (#2013)
Upgrades svnkit to the latest patch version 1.10.3-scm2
developed in scm-manager/svnkit-patches#2.

This should fix errors regarding spaces in filenames
in svn with external tools like Fisheye or the svnkit
command line client (#2002).
2022-04-28 15:00:48 +02:00
Eduard Heimbuch
162dd6ad0a CLI Support for repository actions (#1987)
To make SCM-Manager more accessible and to make it easier using scripts against the server, we created a command line interface. This command line interface can be used to perform the default actions like create, modify and delete repositories. It is also very flexible and can be extended by plugins.

The CLI already supports internationalization, help texts, input validation, loose and table-like templates and nested subcommands. Check the cli guidelines to learn how add new cli commands.

Co-authored-by: Sebastian Sdorra <sebastian.sdorra@cloudogu.com>
2022-04-04 12:02:16 +02:00
René Pfeuffer
2ededac869 Update RestEasy (#1953)
Updates RestEasy to version 4.7.5.Final.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2022-02-15 14:51:09 +01:00
Sebastian Sdorra
466334aaa7 Update vulnerable version of cron-utils (#1942)
* Update lock files

* Replace usage of org.apache.commons.lang3 with guava

* Update vulnerable version of cron-utils

Update cron-util from version 9.1.3 to 9.1.6.
Version 9.1.6 fixes an arbitrary code execution
vulnerability (CVE-2021-41269).
SCM-Manager is not affected by this issue,
because it is related to the el parsing
of an annotation which we don't use.
2022-02-01 18:06:53 +01:00
Sebastian Sdorra
44be389d0c Enable Gradle dependency locking (#1922)
Enable gradle dependency locking for all subprojects. This change allows us to use dependency ranges, without loosing reproducible builds.
It also makes it easier for third party services such as snyk to detect dependencies and their versions.
2022-02-01 15:14:18 +01:00
René Pfeuffer
6e555a855a Set HEAD to correct default branch (#1929)
Sets the HEAD for new Git repositories to the default branch (this is 'main' for the default configuration).
This change led to errors in unit tests, that depended on the 'master' branch.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2022-01-20 10:19:27 +01:00
René Pfeuffer
b6d343bf09 Make auth expiration for LFS configurable (#1697)
When SCM-Manager is used behind a reverse proxy like
Nginx it may be the case, that lfs PUT requests are
buffered by the reverse proxy and will be sent to the
SCM-Manager after the whole file has been received. Due
to the expiration time of 5 minutes for the authentivation
token that had been requested by Git before the upload
has been started, this request from the proxy to
SCM-Manager fails if the upload from the client to the
reverse proxy took longer than these 5 minutes.

To solve this, we make this expiration time configurable,
so that whenever you have very large files or small
bandwidth the expiration timeout can be increased.
2021-06-16 09:14:52 +02:00
Eduard Heimbuch
73c1609d92 Add flag to global config to enable/disable api keys as additional authentication method (#1606)
Add flag to global config to enable/disable API keys as additional authentication method.

Fixes #1599
2021-03-25 12:06:22 +01:00
René Pfeuffer
512bf20659 Run JUnit 5 integration tests again (#1571)
With the migration to gradle we lost the JUnit 5 integration tests. This is fixed here. In addition we have to adapt the AnonymousAccessITCase to the change, that the anonymous access is disabled when creating the default test data.
2021-03-05 15:08:20 +01:00
Konstantin Schaper
94304f96a3 migrate integration tests to bdd (#1497)
Migrates the existing e2e tests towards a cucumber bdd-style and utilizes the integration-test-runner package.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2021-01-26 12:58:48 +01:00
René Pfeuffer
0b43630f06 Add "rerun" flag for integration tests 2021-01-26 11:39:16 +01:00
René Pfeuffer
32e09f5874 Revert "Try to prevent flappy integration test failures"
This reverts commit ccbd56e625.
2021-01-18 10:52:08 +01:00
René Pfeuffer
ccbd56e625 Try to prevent flappy integration test failures
Some integration tests tend to fail from time to time with
a server side error reading packed objects. This is kind
of a desperate try to fix these.
2021-01-15 15:32:18 +01:00
René Pfeuffer
e9410c6c3f Clean up before running old it cases from webapp 2021-01-14 12:01:34 +01:00
Sebastian Sdorra
18e841b0e8 Start sonarqube integration 2021-01-14 12:01:34 +01:00
René Pfeuffer
76ea458981 Stop server after Java ITs finish
Otherwise, the server would not be stoppen when an
integration test fails
2021-01-14 12:01:34 +01:00
René Pfeuffer
75ba7459c0 Fix server shutdown after integration tests 2021-01-14 12:01:34 +01:00
Sebastian Sdorra
4e1bf1d13b Update timestamps of test report if running on ci
We have to update the timestamps of our test reports on the ci server,
because Jenkins fails it the reports are older than x minutes.
2021-01-14 12:01:34 +01:00
Sebastian Sdorra
22375c8096 Do not abort on failing test, if we run on ci server 2021-01-14 12:01:34 +01:00
Sebastian Sdorra
7fd6b62b73 Revert "Add tasks to modify version", because it breaks run command
This reverts commit b07f00ea2f74b60663d7d2c4377fe338416d189e.
2021-01-14 12:01:34 +01:00
Sebastian Sdorra
ecc216276d Add tasks to modify version 2021-01-14 12:01:34 +01:00
Sebastian Sdorra
0a4b5d0439 Execute e2e tests as part of integration tests 2021-01-14 12:01:34 +01:00
Sebastian Sdorra
fddacca7db Remove outdated comments 2021-01-14 12:01:34 +01:00
Sebastian Sdorra
bac430163f Fix missing resources for integration tests 2021-01-14 12:01:34 +01:00