494 Commits

Author SHA1 Message Date
Eduard Heimbuch
9c5a266c34 Adjust changelog for release 2.44.1 2023-06-13 16:23:45 +02:00
Rene Pfeuffer
c3093a3b0d Prevent repository loading in namespace mapper
Committed-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2023-06-13 16:16:15 +02:00
René Pfeuffer
7f2cee5078 Adjust changelog for release 2.44.0 2023-06-08 14:18:51 +02:00
Rene Pfeuffer
5c505457bb Implement delete for audit log wrapper
This fixes errors when deleting configurations.
The error occured during "unmirror" in the mirror plugin.

Committed-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2023-06-08 10:30:37 +02:00
Rene Pfeuffer
86b8be9f17 In-memory implementations of the store api using JaxB
The new implementations are ment to be used in test
classes replacing the older implementations like
`InMemoryConfigurationStoreFactory`. The benefit
of these new classes is that the serialization using JaxB
is testet implicitly avoiding mistakes made with XML
annotations on the data classes.

Committed-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2023-06-07 10:04:50 +02:00
Konstantin Schaper
32807a0d80 Implement chip input for multiple text entries
Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2023-06-01 11:43:41 +02:00
Eduard Heimbuch
a50e456969 Ignore duplicate contributors for single changeset
Committed-by: Konstantin Schaper <konstantin.schaper@cloudogu.com>
2023-05-25 19:26:38 +02:00
René Pfeuffer
30affae76d Fix hg anonymous access by sending authenticate header
If anonymous access is enabled and read requests are granted
to hg repositories for the anonymous user, write requests
fail also for users with write requests, because no
authentication header has been sent along with the 401.
This fixes this issue in the default cgi servlet.
2023-05-19 13:17:45 +02:00
Konstantin Schaper
01bff1ce95 Fix race condition with plugin bundles
There may be a race condition when loading plugin bundles with lazy dependencies:

The OpenAPI plugin depends on "redux" and "react-redux", which are bundled in the lazy "ui-legacy" module, as the usage of redux is deprecated in the scmm. The "ui-legacy" module also binds a global wrapper extension point around the whole app. Due to a bug in the plugin loader, plugin bundles were marked as successfully loaded even if a lazy dependency hadn't successfully loaded yet. This caused the extension point from the "ui-legacy" bundle to be bound after the initial render. As the process of extension point binding  doesn't trigger a re-render, the redux provider was not wrapped around the app on initial load. When the user now moved focus out of and back into the window, react-query hooks automatically refetched e.g. the index links, which caused a re-render. Now with the bound extension point applied. This caused the whole app to be unmounted and re-mounted, which in turn reset all form fields anywhere below in the tree.

Also fixes a bug where the global notifications component was executing a state update while already unmounted.

Also fixes a bug in the user creation form where an object literal was passed to the form's default values which caused a form reset whenever the component re-rendered.

Committed-by: Rene Pfeuffer <rene.pfeuffer@cloudogu.com>
2023-05-15 17:34:50 +02:00
Rene Pfeuffer
8025e82b1b Use pgpainless for key generation
The library pgpainless (https://gh.pgpainless.org/) makes it much more easy to create gpg keys for new users. As a benefit, these keys can be verified by GitHub.

Committed-by: Konstantin Schaper <konstantin.schaper@cloudogu.com>
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2023-05-08 15:31:56 +02:00
Florian Scholdei
05bc61ab1b Use forwardRef in FileInput
Committed-by: Rene Pfeuffer <rene.pfeuffer@cloudogu.com>
2023-05-04 08:22:02 +02:00
Konstantin Schaper
ea67a04b5d Refactor repository tags overview 2023-05-02 15:49:48 +02:00
Eduard Heimbuch
a185cc7d16 Optimize config form and binder 2023-04-19 11:52:22 +02:00
Eduard Heimbuch
40c4e1672c Refactor plugin manager
Make the plugin manager functions more clear and improve the usability by using a sticky top area with action buttons.

Committed-by: Konstantin Schaper <konstantin.schaper@cloudogu.com>
2023-04-18 10:06:40 +02:00
Konstantin Schaper
0ded2ce352 Implement new menu component
Committed-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2023-04-18 09:43:57 +02:00
Eduard Heimbuch
8f5d661f4f Adjust changelog for release 2.43.0 2023-04-12 15:08:15 +02:00
Eduard Heimbuch
c6df84557b Refactor general configuration
Use standard configuration store api for general configuration. This is best practice and also required for the audit log to work properly.

Besides that we still need to load the general configuration manually for the instance injection binding in ScmServletModules. Since the instance injection does not resolve the bindings regularly we need also still need to update the injectable scm config using the "load" hack in the resource.

Committed-by: Konstantin Schaper <konstantin.schaper@cloudogu.com>
2023-04-12 12:37:52 +02:00
Konstantin Schaper
7e83d34fc0 Improve committer accuracy
Changes made by the SCM-Manager, like those through the editor and pull requests, now more accurately define the committer on the underlying changeset.

Committed-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2023-04-06 10:16:41 +02:00
Rene Pfeuffer
8eb2687e10 Fix branch and tag name validation
The validation for branch and tag names has been
too limited. This led to errors in the frontend for
branches, that had been created using the
cli tools for git or hg but have not been seen as
valid by SCM-Manager.

To fix this, the patterns to validate branch and
tag names are relaxed and relate to the git
rules (https://git-scm.com/docs/git-check-ref-format).
Because these rules could not be expressed
using regular expressions alone, in addition
possible exceptions will be handled in the
git branch and tag commands.

Committed-by: Konstantin Schaper <konstantin.schaper@cloudogu.com>
Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
Co-authored-by: Konstantin Schaper <konstantin.schaper@cloudogu.com>
2023-04-05 11:45:15 +02:00
Konstantin Schaper
b53f8bcf12 Improve diverse form features
- General responsiveness
- Resize select component
- Fix datepicker for dark themes
- Make success notification configurable

Committed-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>

Reviewed-by: Rene Pfeuffer <rene.pfeuffer@cloudogu.com>
2023-04-03 10:02:17 +02:00
Rene Pfeuffer
e679dac94d Do not fail without default branch
This selects the first branch, if no default
branch is present.

Committed-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2023-04-03 08:14:23 +02:00
Laura Gorzitze
d4e03c6f70 Extension points for information page tables
Committed-by: Konstantin Schaper <konstantin.schaper@cloudogu.com>
Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>

Reviewed-by: Rene Pfeuffer <rene.pfeuffer@cloudogu.com>
2023-03-28 18:10:18 +02:00
Konstantin Schaper
d257c8616c Display images in diffs
Committed-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2023-03-22 11:17:22 +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
Rene Pfeuffer
796330f883 Fix NotFoundExceptions with SVN externals
Committed-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2023-03-21 16:10:04 +01:00
Konstantin Schaper
1d0baf48e2 Connect labels with their respective inputs for improved accessibility
Committed-by: Florian Scholdei <florian.scholdei@cloudogu.com>
2023-03-21 10:14:11 +01:00
Eduard Heimbuch
2198049cbd Improve sticky diffs
Fix page position after long sticky diffs are collapsed

Committed-by: Konstantin Schaper <konstantin.schaper@cloudogu.com>
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2023-03-15 17:50:19 +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
Eduard Heimbuch
56265be9a2 Add initial audit log API
Introduce audit log API which logs all creations,
modifications and deletions of annotated entities
and everything which is stored inside a
ConfigurationStore. Without the related Audit
Log Plugin installed this API does nothing.
2023-03-09 11:25:33 +01:00
Rene Pfeuffer
e74225e168 Synchronize jaxb context generation 2023-03-09 10:38:56 +01:00
Konstantin Schaper
dda52b8400 Implement new form features
Extends existing functionality, provides new fallbacks for translations and adds capabilities to manage array properties in configurations.

Committed-by: Florian Scholdei <florian.scholdei@cloudogu.com>
Co-authored-by: Florian Scholdei <florian.scholdei@cloudogu.com>
2023-03-07 11:29:10 +01:00
René Pfeuffer
30a3a119b8 Adjust changelog for release 2.42.2 2023-03-02 15:47:05 +01:00
Rene Pfeuffer
83c7e0523d Fix various performance issues
- Avoiding read attempts for stores that do not exist (AbstractStore).
- Use of ReadWrite locks (everything withLockedFileForRead or withLockedFileForWrite)
- Caching of JAXB Context (TypedStoreContext.java)
- Avoid unnecessary writes to the UserGroupCache

Committed-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2023-03-02 11:05:04 +01:00
Rene Pfeuffer
cb8c951cb8 Set the HEAD in Git pull command
Committed-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2023-02-23 12:38:26 +01:00
Eduard Heimbuch
f28eaeca15 Fix repository resolution for ssh urls with context path
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2023-02-23 10:57:43 +01:00
René Pfeuffer
5845f399b1 Adjust changelog for release 2.42.1 2023-02-16 18:57:20 +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
Laura Gorzitze
5265a28756 Adjust changelog for release 2.42.0 2023-02-15 09:41:00 +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
Konstantin Schaper
38ae969899 fix long text in table cells breaking layout 2023-02-07 10:53:38 +01:00
Eduard Heimbuch
3730434f7b Expose size for primary repository avatar extension point 2023-01-31 11:08:12 +01:00
Florian Scholdei
63d6c765ea Correct z-index equal weighting in diff header
Committed-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2023-01-31 10:11:08 +01:00
Eduard Heimbuch
1de489c6d8 Fix drop down arrow z index 2023-01-31 09:51:28 +01:00
Eduard Heimbuch
b2a253ea29 Fix tab order for primary navigation 2023-01-26 07:32:14 +01:00
Eduard Heimbuch
dc60c924ed Add copy button to codeblocks 2023-01-25 15:55:00 +01:00
Laura Gorzitze
781389f7bd Adjust changelog for release 2.41.0 2023-01-18 11:34:04 +01:00
Konstantin Schaper
d5e5490b53 Add new overlay ui module with tooltip component
Our current tooltip component has been causing ui glitches for over a year now because it did not use react portal to render the tooltip content outside the react render tree which interfered with html/css. The new component is based on a fully accessible component by radix-ui. The styling, for now, has been kept from the original tooltip.

Committed-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2023-01-16 13:37:52 +01:00
Eduard Heimbuch
ac419daa3f Add ConfigurationAdapterBase and extension points for trash bin
Adds the new abstract class ConfigurationAdapterBase to simplify the creation of global configuration views. In addition there is some cleanup, interfaces and extension points for the repository trash bin plugin.

Committed-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
Co-authored-by: Konstantin Schaper <konstantin.schaper@cloudogu.com>
2023-01-13 13:08:51 +01:00
Eduard Heimbuch
5c4c759bd2 Make the diff header sticky 2023-01-11 16:04:39 +01:00
Rene Pfeuffer
f2f2f29791 Render images from repository correctly
This adds a markdown renderer for images, so that images
that are referenced by their repository path are resolved
correctly. In this case, the content rest endpoint is
rendered as source url. For this, two new contexts
(RepositoryContext and RepositoryRevisionContext)
have been added, that make the repository and the
current revision available, so that the content url can
be resolved properly. These new contexts may be used
by plugins like the scm-readme-plugin.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>

Reviewed-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2022-12-19 10:12:01 +01:00