Commit Graph

196 Commits

Author SHA1 Message Date
René Pfeuffer
ad6000722d LRU semantic for workdir cache (#1735)
Introduces a maximum size for the simple workdir cache. On cache overflow workdirs are evicted using an LRU strategy.
Furthermore parallel requests for the same repository will now block until the workdir is released.
2021-07-28 07:54:37 +02:00
René Pfeuffer
04f7a3497c Specify admin username at startup (#1722)
In addition to the admin password, the admin user name can
be (optionally) specified, too.
2021-07-02 12:22:31 +02:00
René Pfeuffer
d9d3547a22 Create custom initial user (#1707)
Using a default user with a default password has the implicit risk, that this user is not changed and therefore this system can be compromised. With this change, SCM-Manager does not create the default user with the default password on startup any more, but it shows an initial form where the initial values for the administration user have to be entered by the user. To secure this form, a random token is created on startup and printed in the log.

To implement this form, the concept of an InitializationStep is introduced. This extension point can be implemented to offer different setup tasks. The creation of the administration user is the first implementation, others might be things like first plugin selections or the like.

Frontend components are selected by the name of these initialization steps, whose names will be added to the index resource
(whichever is active at the moment) and will be show accordingly.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2021-06-24 09:29:42 +02:00
Florian Scholdei
9b6fb991e5 Building forms documentation with react-hook-form (#1704)
Building forms documentation with react-hook-form
2021-06-16 17:19:55 +02: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
Sebastian Sdorra
2259f7ef89 Add installation documentation for cloudogu ecosystem (#1670)
Add missing installation docs for installation of SCM-Manager on the [Cloudogu EcoSystem](https://cloudogu.com/en/ecosystem/quick-start-guide/#dogu-choose-your-dogus).
2021-05-27 09:33:06 +02:00
Florian Scholdei
42745c9e34 Notifications for health checks (#1664)
Add list of emergency contacts to global configuration. This user will receive e-mails and notification if some serious system error occurs like repository health check failed.
2021-05-20 08:30:20 +02:00
René Pfeuffer
a626c31ce5 Add toc entry for testing guide 2021-05-14 10:34:43 +02:00
Konstantin Schaper
7286a62a80 Implement api for extension point typings (#1638)
Currently, the only way to explore available extension points is through our documentation or by browsing the source code. Once you find them, there is no guard rails and the usage is prone to user errors. This new api allows the declaration of extension points as types in code. This way, exposing an extension point is as easy as exporting it from a module. Both the implementation and the developer who uses the extension point work with the same shared type that allows auto-completion and type-checks for safety. This feature is backwards-compatible as the generic methods all have sensible defaults for the type parameters.

Co-authored-by: Sebastian Sdorra <sebastian.sdorra@cloudogu.com>
Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2021-05-12 16:05:30 +02:00
Eduard Heimbuch
708f262454 Add testing guide (#1653) 2021-05-12 13:28:04 +02:00
Sebastian Sdorra
b975fb655d Feature/global notifications (#1646)
Add global notifications
2021-05-05 14:43:16 +02:00
Konstantin Schaper
32b268e6f5 add extension point for custom link protocol renderers in markdown (#1639)
This PR allows for custom link protocols to be declared and rendered in markdown.
A new extension point markdown-renderer.link.protocol allows for renderers to hook into the api and implement any custom protocol.

Example:

[description](myprotocol:somelink)
binder.bind("markdown-renderer.link.protocol", { protocol: "myprotocol", renderer: MyProtocolRenderer })
This renderer functions similar to link renderers and receives the href and the description. The latter as the children property.

This PR also fixes two bugs where external- and anchor links were not correctly rendered in pull requests by the review-plugin.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2021-04-29 13:15:22 +02:00
René Pfeuffer
1e83c34823 Enable Health Checks (#1621)
In the release of version 2.0.0 of SCM-Manager, the health checks had been neglected. This makes them visible again in the frontend and adds the ability to trigger them. In addition there are two types of health checks: The "normal" ones, now called "light checks", that are run on startup, and more intense checks run only on request.

As a change to version 1.x, health checks will no longer be persisted for repositories.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2021-04-21 10:09:23 +02:00
Eduard Heimbuch
84c1e7ed37 Add new extension point for repository avatars (#1614)
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2021-04-15 11:14:42 +02:00
Florian Scholdei
84ba05bab8 Correct positioning and coloring of button groups in modals (#1612) 2021-04-07 13:04:30 +02:00
Eduard Heimbuch
2ca4aa08de Enhance reverse proxies documentation 2021-03-15 16:00:02 +01:00
Florian Scholdei
0d3339b0cb Add repository-specific non-ff disallowed option (#1579)
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2021-03-11 10:13:26 +01:00
Sebastian Sdorra
89548d45bd Filepath search (#1568)
Add search for files to the sources view. The search is only for finding file paths. It does not search any file metadata nor the content. Results get a rating, where file names are rated higher than file paths. The results are sorted by the score and the first 50 results are displayed.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2021-03-04 10:39:58 +01:00
Eduard Heimbuch
db2ce98721 Feature/import export encryption (#1533)
Add option to encrypt repository exports with a password and add possibility to decrypt them on repository import. Also make the repository export asynchronous. This implies that the repository export will be created on the server and can be downloaded multiple times. The repository export will be deleted automatically 10 days after creation.
2021-02-25 13:01:03 +01:00
René Pfeuffer
20c3faeb5b Remove redundant chapter 2021-02-16 13:12:01 +01:00
René Pfeuffer
e0d2630a08 Feature repository specific data migration (#1526)
This adds a new migration mechanism for repository data. Instead of using UpdateSteps for all data migrations, repository data shall from now on be implemented with RepositoryUpdateSteps. The general logic stays the same. Executed updates are stored with the repository. Doing this, we can now execute updates on imported repositories without touching other data. This way we can import repositories even though they were exported with older versions of SCM-Manager or a plugin.
2021-02-10 08:12:48 +01:00
Eduard Heimbuch
ac5d145266 Repository export read-only lock (#1519)
* Lock repository for read-only access only while exporting
* Create read-only check api

Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2021-02-04 15:29:49 +01:00
Eduard Heimbuch
44577e9bc4 Add architecture overview documentation (#1516)
* Add architecture overview documentation

* Use plant uml the Cloudogu way

Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2021-02-03 11:24:02 +01:00
Sebastian Sdorra
bad426c9d8 Implement new changelog process (#1517)
Adopt the new changelog process, which should avoid CHANGELOG.md merge conflicts.
This change integrates the new changelog gradle plugin to update the
CHANGELOG.md during a release and updates the release documentation.
2021-02-02 11:02:31 +01:00
Eduard Heimbuch
4966a389a3 Update release process (#1514)
Updates the SCM-Manager release process after the transition to gradle as build tool.

Co-authored-by: Sebastian Sdorra <sebastian.sdorra@cloudogu.com>
2021-02-02 10:32:57 +01:00
Eduard Heimbuch
c3ab6bc5d5 Bundle and unbundle command for mercurial (#1511)
Support for exporting and importing mercurial repositories as tar ball

Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2021-01-28 13:09:47 +01:00
Eduard Heimbuch
d91c71ace1 Add the repository import and export with metadata for Subversion repositories (#1501)
* Add store exporter to collect the repository metadata
* Add EnvironmentInformationXmlGenerator
* Collect export data and put into compressed tar archive output stream
* Create full repository export endpoint.
* Add full repository export to ui
* Ignore irrelevant files from config store directory
* write metadata stores to file since a baos could teardown the server memory
* Migrate store name for git lfs files (#1504)

Changes the directory name for the git LFS blob store by
removing the repository id from the store name.

This is necessary for im- and exports of lfs blob stores,
because the original name had the repository id as a part
of it and therefore the old store would not be found when
the repository is imported with another id.

Existing blob files will be moved to the new store location
by an update step.

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

* Introduce util for migrations (#1505)

With this util it is more simple to rename
or delete stores.

* Rename files in export

Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2021-01-28 11:40:35 +01:00
Florian Scholdei
f4d4d3a8c6 Add missing subtitles (#1496)
Add the last missing subtitles in the scmm core.
2021-01-13 09:25:58 +01:00
Eduard Heimbuch
adf7bac665 Subversion repository export
Add the repository export function for Subversion repositories. The repository will be exported as dump file which can be downloaded directly or inside a gzip compressed archive.
2021-01-08 09:19:33 +01:00
Sebastian Sdorra
badcf3ecb4 Update helm chart documentation 2021-01-07 15:46:41 +01:00
Florian Scholdei
c579de108f Option to create a permanent link to a source file
Adds a new button next to the breadcrumbs in the source view that allows users to create a permanent link to the active path (file or folder).
2021-01-07 10:15:50 +01:00
Konstantin Schaper
831c8b0271 add markdown codeblock renderer extension point (#1492)
Introduces a new extension point that allows developers to overwrite the default syntax highlighting renderer for specific code blocks defined in markdown. The extension point is dynamic and follows the pattern "markdown-renderer.code.{language}".
This feature lays the groundwork for the scm-markdown-plantuml-plugin.
2021-01-07 09:25:31 +01:00
Sebastian Sdorra
2dcb099d49 Fix broken frontmatter in repo settings documentation 2020-12-17 21:46:17 +01:00
René Pfeuffer
8e3b0e4145 Archive repository (#1477)
This adds a flag "archived" to repositories. Repositories marked with this can no longer be modified in any way. To do this, we switch to a new version of Shiro Static Permissions (sdorra/shiro-static-permissions#4) and specify a permission guard to check for every permission request, whether the repository in question is archived or not. Further we implement checks in stores and other activies so that no writing request may be executed by mistake.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2020-12-16 10:58:29 +01:00
Florian Scholdei
88b93dc8b8 Feature/profile navigation (#1464)
- Fix bug where profile settings wasn't shown if user cannot change password
- Add missing "ApiKey" entry in the single user menu

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2020-12-16 09:23:05 +01:00
Eduard Heimbuch
60cdc6f8cf Merge branch 'develop' into feature/import_git_from_url 2020-12-02 14:39:45 +01:00
Eduard Heimbuch
64da1a6dae add documentation 2020-12-01 12:38:30 +01:00
Konstantin Schaper
51981dbece tags can now be deleted from the details page & documentation is updated accordingly 2020-12-01 10:46:33 +01:00
Konstantin Schaper
8986e3d378 Merge branch 'develop' into feature/manage-tags
# Conflicts:
#	scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/spi/HgRepositoryServiceProvider.java
2020-11-30 14:18:05 +01:00
Konstantin Schaper
e4346a6786 add missing images for docs 2020-11-30 10:01:53 +01:00
Konstantin Schaper
032982857f clean up code, fix bugs, improve ux, add docs 2020-11-30 10:01:21 +01:00
René Pfeuffer
c476b3757b Clarify texts 2020-11-26 11:01:01 +01:00
Florian Scholdei
db31f72658 Small typo in documentation 2020-11-26 09:37:40 +01:00
Florian Scholdei
dc4bc2b32b Update documentation 2020-11-26 09:37:40 +01:00
René Pfeuffer
dcc848eb4b Update docs
Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2020-11-26 09:00:23 +01:00
René Pfeuffer
9119d2c075 Adapt documentation 2020-11-26 08:32:06 +01:00
Florian Scholdei
f65f3222ee Update documentation, storyshots 2020-11-24 18:35:07 +01:00
Eduard Heimbuch
f93c9f3e7c update documentation 2020-11-11 17:10:37 +01:00
René Pfeuffer
56f99a643f Add documentation 2020-10-30 14:24:31 +01:00
Eduard Heimbuch
0cce79786a update screenshots in documentation 2020-10-23 08:59:27 +02:00