Commit Graph

40 Commits

Author SHA1 Message Date
Eduard Heimbuch
644b2e106c Add privileged startup api (#1573)
Add privileged startup api to perform startup action with
administration context. This extracts the different startup
actions into own classes. Doing so, they will run independently
of settings for the user creation.
2021-03-05 15:43:09 +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
Florian Scholdei
bafe84b79a Fix wrapping of title and actions in source view (#1569)
The title of a file and the action buttons had to share the space. Now the title takes it needs and the actions move down if necessary. This behavior is similar to the list of files in changeset view (content component).
2021-03-04 09:54:08 +01:00
Eduard Heimbuch
bd79f94f55 Adjust changelog for release 2.14.1 2021-03-03 15:14:40 +01:00
Sebastian Sdorra
0072808c7d Upgrade react-markdown to prevent xss from stored markdown (#1567)
Prevent XSS attacks from stored markdown, by updating react-markdown to v5 which sanitizes html.
2021-03-03 15:06:34 +01:00
Sebastian Sdorra
4ec01ff4d1 Fix endless loading spinner for sources of empty repositories (#1565) 2021-03-03 11:00:26 +01:00
Florian Scholdei
8e2c2aaa5e Prevent breadcrumb overflow and shrink large elements (#1563)
- Restore left margin on copy permalink
- Move slash to the right to make it resemble the console
- Shrink large elements
- Add new storyshot
- Fix separation of toggle icon and file title
2021-03-03 10:57:15 +01:00
Florian Scholdei
61814a5027 Clarify that FileUpload component does not upload directly (#1566)
Clarify that FileUpload component does not upload directly:
Changed label from “Upload” to “Select File” and icon from direct to a kind of upload.
2021-03-03 10:01:29 +01:00
Konstantin Schaper
311528fd45 Add permalink button to markdown headings (#1564)
* add permalink button to markdown headings
2021-03-03 09:52:18 +01:00
CES Marvin
caf29c555b Merge branch 'master' into develop 2021-03-01 13:01:29 +00:00
Eduard Heimbuch
89d5819117 Adjust changelog for release 2.14.0 2021-03-01 13:22:33 +01:00
René Pfeuffer
0695ca3bac Add import protocol (#1558)
Adds a protocol for repository imports (either from an URL, a dump file or a SCM-Manager repository archive).
This protocol documents single steps of an import, the time and the user and is accessible via a dedicated REST
endpoint or a simple ui.

The id of the log is added to the repository imported event, so that plugins like the landingpage or mail can link to these logs.
2021-02-26 13:52:29 +01:00
René Pfeuffer
89e573ad72 Log change 2021-02-26 11:04:50 +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
Konstantin Schaper
3a8d031ed5 Introduce stale while revalidate pattern (#1555)
This Improves the frontend performance with stale while
revalidate pattern.

There are noticeable performance problems in the frontend that
needed addressing. While implementing the stale-while-revalidate
pattern to display cached responses while re-fetching up-to-date
data in the background, in the same vein we used the opportunity
to remove legacy code involving redux as much as possible,
cleaned up many components and converted them to functional
react components.

Co-authored-by: Sebastian Sdorra <sebastian.sdorra@cloudogu.com>
Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2021-02-24 08:17:40 +01:00
René Pfeuffer
ee02ba096f Mark config entry stores explicitly in exports (#1545)
The default (XML) store of SCM-Manager does not distinguish between config and config entry stores in regards to
storage locations. Nonetheless, we want to make a difference in export files, so that other store providers can handle
these stores differently. To do so, this change adds an attribute to the top level xml element of config entry stores
to mark them. In exports, these store files can now be exported in a different folder. To mark existing stores, this
introduces an update step.
2021-02-23 09:37:59 +01:00
Eduard Heimbuch
83a9c90130 Post receive hook after import (#1544)
Fire post receive repository hook event after pull from remote
and after unbundle (Git, HG and SVN)

Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2021-02-22 09:20:15 +01:00
Sebastian Sdorra
d8427ed4ed Improve cache api for usage in plugins (#1540)
This change allows usage of Cache as Shiro authentication and authorization cache. It will also fix loading cache configurations from plugins.
2021-02-17 09:15:01 +01:00
Eduard Heimbuch
1e1b73ace5 Feature/import navigation lock (#1536)
Use navigation lock on repository import to prevent that the current user accidentally leaves the page and aborts the running import.
2021-02-16 11:35:06 +01:00
Eduard Heimbuch
fa46440960 Fix filter redirect on paginated overview page (#1535)
Fix unnecessary redirect on paginated overview pages which cuts the page number from url.
2021-02-16 08:05:09 +01:00
Eduard Heimbuch
5ea28a84fc Change file order inside repository archive (#1538)
Change repository archive order to export/import repository stores before the actual repository. This is done due to import stores before importing the actual repository and firing hooks that may trigger unnecessary computations otherwise.

Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2021-02-15 15:43:26 +01:00
Sebastian Sdorra
1a2dabeb66 Do not resolve external groups for system accounts (#1541)
This change modifies the behaviour of the DefaultGroupCollector.
The collector does not longer resolve external groups for the anonymous user and it does not resolve internal nor external groups for the account which is used by the AdministrationContext.
This should reduce the requests which are send to external systems like ldap servers.
2021-02-15 08:45:47 +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
Sebastian Sdorra
7c50fd935c Fix broken mercurial http post args configuration (#1532)
Fixes a regression which was introduced with #1416. In #1416 we have reimplemented the way configuration is passed to the mercurial cgi handler. Before #1416 we used environment variables which are picked up by hgweb.py, after #1416 we pass mercurial configurations as command line parameters directly in the HgCGIServlet. But sadly the configuration option for httppostargs uses still an environment variable, which is not picked up by anyone.

See #1525
2021-02-09 15:59:05 +01:00
René Pfeuffer
e6f237e10a Fix changelog type 2021-02-09 08:45:38 +01:00
René Pfeuffer
b82496d5b1 Add error message for password error (#1527)
Adds missing error message for wrong password in "change password" dialog.
2021-02-09 07:55:17 +01:00
Sebastian Sdorra
b3caa607cf Reduce time spend in configuration phase (#1528)
Do not add scm-packaging modules to every build.
These modules drastically increase the time Gradle spends in the configuration phase.
To build a distribution of SCM-Manager pass -Pdistribution.
Upgrade Gradle to 6.8.2.
2021-02-08 10:48:21 +01:00
René Pfeuffer
c0fbeeb7a4 Fix changelog file name 2021-02-05 15:44:36 +01:00
Eduard Heimbuch
877713574a Merge imported repository permissions with existing repository permissions (#1520) 2021-02-05 12:20:55 +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
René Pfeuffer
7a7ac9a3f2 Bugfix: Conflict in pack parser (#1518)
The change tackles a sporadic error in integration tests, where during or after a change in a git repository a pack file could not be read correctly due to a "short compressed stream". The exception could look like this:

ERROR org.eclipse.jgit.internal.storage.file.ObjectDirectory - Exception caught while accessing pack file scm-home/repositories/8gSNr4ogc5X/data/objects/pack/pack-51a3500283ece83ab8efa7edfb9370e6f97311b5.pack, the pack file might be corrupt. Caught 1 consecutive errors while trying to read this pack.
java.io.EOFException: Short compressed stream at 197
	at org.eclipse.jgit.internal.storage.file.PackFile.decompress(PackFile.java:381)
	at org.eclipse.jgit.internal.storage.file.PackFile.load(PackFile.java:815)
	at org.eclipse.jgit.internal.storage.file.PackFile.get(PackFile.java:284)
	at org.eclipse.jgit.internal.storage.file.ObjectDirectory.openPackedObject(ObjectDirectory.java:455)
	at org.eclipse.jgit.internal.storage.file.ObjectDirectory.openPackedFromSelfOrAlternate(ObjectDirectory.java:413)
	at org.eclipse.jgit.internal.storage.file.ObjectDirectory.openObject(ObjectDirectory.java:404)
	at org.eclipse.jgit.internal.storage.file.WindowCursor.open(WindowCursor.java:132)
	at org.eclipse.jgit.treewalk.CanonicalTreeParser.reset(CanonicalTreeParser.java:191)
	at org.eclipse.jgit.treewalk.TreeWalk.parserFor(TreeWalk.java:1344)
	at org.eclipse.jgit.treewalk.TreeWalk.addTree(TreeWalk.java:732)
	at sonia.scm.repository.spi.Differ.create(Differ.java:102)
	at sonia.scm.repository.spi.Differ.diff(Differ.java:63)
We found out that this seems to be linked to the asynchronous execution of post commit hooks, that originally are triggered in the midst of the processing of a receive pack.

With this change the fireing of these triggers is delayed until the end of the internal git processing. The central class for this is the GitHookEventFacade, where hook events are either

- put into a ThreadLocal, so that they can be triggered later, or
- triggered in a thread that is joined with an internal JGit thread for internal pushes (eg. for modify command or merge command)
2021-02-03 11:08:13 +01:00
Sebastian Sdorra
0069f29ef6 Update shiro to 1.7.1 2021-02-02 13:11:44 +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
e283195530 Fix permission check on branch deletion (#1515) 2021-02-01 14:48:19 +01:00
Eduard Heimbuch
171f155a0c bump google guava dependency to 30.1-jre 2021-01-25 14:13:34 +01:00
Sebastian Sdorra
495326e990 Publishing tasks for rpm and deb packages 2021-01-14 12:01:33 +01:00
Sebastian Sdorra
8c27af2661 Remove maven build related files 2021-01-14 12:01:30 +01:00
Sebastian Sdorra
c9ea026c52 Create release.yml 2021-01-14 11:56:05 +01:00
Sebastian Sdorra
5c379a5bb4 Align dependency configurations and versions 2021-01-14 11:56:05 +01:00
Sebastian Sdorra
ae50017e42 Migrate module scm-annontations to gradle 2021-01-14 11:55:27 +01:00