Merge remote-tracking branch 'origin/develop' into bugfix/fixed_notfound_refetch_loop

This commit is contained in:
René Pfeuffer
2020-06-18 09:22:11 +02:00
116 changed files with 1125 additions and 72 deletions

View File

@@ -22,6 +22,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Use command in javahg.py from registrar (Upgrade to newer javahg version) ([#1192](https://github.com/scm-manager/scm-manager/pull/1192)) - Use command in javahg.py from registrar (Upgrade to newer javahg version) ([#1192](https://github.com/scm-manager/scm-manager/pull/1192))
- Fixed wrong e-tag format ([sdorra/web-resource #1](https://github.com/sdorra/web-resources/pull/1)) - Fixed wrong e-tag format ([sdorra/web-resource #1](https://github.com/sdorra/web-resources/pull/1))
- Fixed refetching loop for non existing changesets ([#1203](https://github.com/scm-manager/scm-manager/pull/1203)) - Fixed refetching loop for non existing changesets ([#1203](https://github.com/scm-manager/scm-manager/pull/1203))
- Fixed active state of sub navigation items, which are using activeWhenMatch ([#1199](https://github.com/scm-manager/scm-manager/pull/1199))
- Handles repositories in custom directories correctly in migration from 1.x ([#1201](https://github.com/scm-manager/scm-manager/pull/1201))
- Usage of short git commit ids in changeset urls ([#1200](https://github.com/scm-manager/scm-manager/pull/1200))
## [2.0.0] - 2020-06-04 ## [2.0.0] - 2020-06-04
### Added ### Added

16
Jenkinsfile vendored
View File

@@ -83,10 +83,6 @@ node('docker') {
stage('SonarQube') { stage('SonarQube') {
def sonarQube = new SonarCloud(this, [sonarQubeEnv: 'sonarcloud.io-scm', sonarOrganization: 'scm-manager', integrationBranch: 'develop']) def sonarQube = new SonarCloud(this, [sonarQubeEnv: 'sonarcloud.io-scm', sonarOrganization: 'scm-manager', integrationBranch: 'develop'])
sonarQube.analyzeWith(mvn) sonarQube.analyzeWith(mvn)
if (!waitForQualityGateWebhookToBeCalled()) {
currentBuild.result = 'UNSTABLE'
}
} }
if (isBuildSuccessful() && (isMainBranch() || isReleaseBranch())) { if (isBuildSuccessful() && (isMainBranch() || isReleaseBranch())) {
@@ -224,18 +220,6 @@ boolean isMainBranch() {
return mainBranch.equals(env.BRANCH_NAME) return mainBranch.equals(env.BRANCH_NAME)
} }
boolean waitForQualityGateWebhookToBeCalled() {
boolean isQualityGateSucceeded = true
timeout(time: 10, unit: 'MINUTES') { // Needed when there is no webhook for example
def qGate = waitForQualityGate()
echo "SonarQube Quality Gate status: ${qGate.status}"
if (qGate.status != 'OK') {
isQualityGateSucceeded = false
}
}
return isQualityGateSucceeded
}
void withGPGEnvironment(def closure) { void withGPGEnvironment(def closure) {
withCredentials([ withCredentials([
file(credentialsId: 'oss-gpg-secring', variable: 'GPG_KEYRING'), file(credentialsId: 'oss-gpg-secring', variable: 'GPG_KEYRING'),

14
docs/de/index.md Normal file
View File

@@ -0,0 +1,14 @@
---
title: Dokumentation
subtitle: SCM-Manager Dokumentation
---
Diese Dokumentation beschreibt die Verwaltung und Verwendung vom SCM-Manager. Sie steht in verschiedenen Sprachen und Versionen zur Verfügung, die im Menü rechts ausgewählt werden können.
Der SCM-Manager 2 ist ein extrem leichtgewichtiges Source Code Management-Tool und kann über eine Vielzahl von Plugins individuell erweitert werden.
Die Dokumentation zum SCM-Manager ist in fünf verschiedene Kategorien unterteilt:
- Der Abschnitt "Erste Schritte" beschreibt die Installation und die Konfiguration des SCM-Managers und beantwortet häufig gestellte Fragen.
- Der Bereich "Administration" handelt von Themen, die beim Betreiben einer Instanz von Belangen sind.
- Unter der Rubrik "Entwicklung" werden alle Informationen zusammengefasst, die für die Weiterentwicklung des SCM-Managers relevant sind. Hierbei wird beschrieben, wie der SCM-Manager gebaut werden kann und was es dabei zu Beachten gilt.
- Der Bereich "Pluginentwicklung" legt den Fokus auf den Prozess eben dieser.
- Unter dem Abschnitt "Anwenderorientiert" werden aus Anwendersicht die Funktionen des SCM-Managers in der Basis-Variante mit dem Mindest-Set an Plugins beschrieben. Die Features der optionalen Plugins werden in separaten Dokumentationen vorgestellt.

6
docs/de/navigation.yml Normal file
View File

@@ -0,0 +1,6 @@
- section: Anwenderorientiert
entries:
- /user/repo/
- /user/user/
- /user/group/
- /user/admin/

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

View File

@@ -0,0 +1,14 @@
---
title: Administration
partiallyActive: true
---
Im Bereich Administration kann die SCM-Manager Instanz administriert werden. Von hier können Plugins verwaltet, Berechtigungsrollen festgelegt und angepasst, sowie Einstellungen vorgenommen werden.
* [Plugins](plugins/)
* [Berechtigungsrollen](roles/)
* [Einstellungen](settings/)
### Information
Auf der Informationsseite in der Administration findet man die aktuelle Version der SCM-Manager Instanz und hilfreiche Links zur Kontaktaufnahme mit dem SCM-Manager Support-Team.
![Administration-Information](assets/administration-information.png)

View File

@@ -0,0 +1,19 @@
---
title: Administration
subtitle: Plugins
---
Unter dem Eintrag "Plugins" können mithilfe des externen Plugin-Centers Plugins für den SCM Manager verwaltet werden. Die Plugins werden nach installierten und verfügbaren Plugins unterschieden und nach Funktionsschwerpunkt wie bspw. Workflow oder Authentifizierung gruppiert.
Die Plugins können über Funktions-Icons auf den Kacheln verwaltet werden. Systemrelevante Plugins, die der SCM-Manager selbst liefert, können weder deinstalliert noch aktualisiert werden.
Damit Änderungen der Plugins wirksam werden, muss der SCM-Manager-Server neugestartet werden. Das kann nach jeder einzelnen Aktion erfolgen. Es ist aber auch möglich viele unterschiedliche Aktionen wie Installieren, Aktualisieren und Löschen in eine Warteschlange einzureihen und alle Aktionen mit einem einzigen Neustart auszuführen. Wird eine Aktion (Installieren, Deinstallieren, Aktualisieren) für ein Plugin ausgewählt, erscheinen die Schaltflächen "Änderungen ausführen" und "Änderungen abbrechen". Über "Änderungen ausführen" öffnet sich ein Pop-Up Fenster, indem die aktuelle Warteschlange (alle ausgeführten Aktionen ohne Neustart) angezeigt werden. Der Anwender hat nun die Möglichkeit zu entscheiden, ob die Änderungen durch einen Neustart ausgeführt werden sollen. Falls Aktionen, die sich bereits in der Warteschlange befinden nicht mehr erwünscht sind, kann die gesamte Warteschlange über den Button "Änderungen abbrechen" verworfen werden.
### Installiert
Auf der Übersicht für installierte Plugins werden alle auf der SCM-Manager Instanz installierten Plugins angezeigt. Optionale Plugins können hier deinstalliert und aktualisiert werden.
![Administration-Plugins-Installed](assets/administration-plugins-installed.png)
### Verfügbar
Auf der Übersicht der verfügbaren Plugins werden alle kompatiblen Plugins, die über das SCM-Plugin-Center zur Verfügung stehen, aufgeführt. Die Plugins können über den Download-Icon heruntergeladen und mit einem Neustart des SCM-Manager-Servers installiert werden.
![Administration-Plugins-Available](assets/administration-plugins-available.png)

View File

@@ -0,0 +1,11 @@
---
title: Administration
subtitle: Berechtigungsrollen
---
Auf der Seite "Berechtigungsrollen" können unterschiedliche Profile mit Berechtigungen erstellt werden. Einer Rolle werden ein Name und ein Satz an Berechtigungen zugewiesen. Diese Rolle kann dann Nutzern und Gruppen für einzelne Repositories zugewiesen werden.
Es gibt vordefinierte System-Rollen, die nicht verändert oder gelöscht werden können.
Durch einen Klick auf eine Rolle sieht man die Informationen zur Rolle und welche Berechtigungen dieser Rolle zugewiesen sind. Benutzerdefinierte Rollen können nachträglich editiert und gelöscht werden.
![Administration-PermissionRoles](assets/administration-permissionRoles.png)

View File

@@ -0,0 +1,59 @@
---
title: Administration
subtitle: Einstellungen
displayToc: true
---
In den Einstellungen findet die globale Konfiguration der SCM-Manager Instanz statt. Viele SCM-Manager-Plugins, die sich konfigurieren lassen, erhalten nach ihrer Installation einen Eintrag unter Einstellungen. Dadurch ist er nach Bedarf maximal konfigurierbar.
### Generell
#### Realm Beschreibung
Im Feld "Realm Beschreibung" kann definiert werden, welcher Authentication Realm für die Anmeldung mit Basic Authentication verwendet wird.
#### Namespace Strategien
Im SCM-Manager werden die Repositories nach Namespaces gruppiert. Diese Gruppierung kann nach unterschiedlichen Strategien stattfinden:
* Benutzername: Der Benutzername des angemeldeten Benutzers wird verwendet
* Aktuelles Jahr: Das aktuelle Jahr wird verwendet
* Repository Typ: Der Typ (git, hg oder svn) wird verwendet
* Benutzerdefiniert: Der Namespace kann beim Erstellen des Repositories frei gewählt werden
#### Login Info URL
Auf der Login-Seite des SCM-Managers werden hilfreiche Plugins und Features vorgestellt. Falls man eigene Informationen auf die Login-Seite abbilden möchte, kann diese URL ausgetauscht werden.
#### XSRF Protection aktivieren
Um Angriffe auf den SCM-Manager mit Cross Site Scripting (XSS / XSRF) zu erschweren. Dieses Feature ist noch experimentell.
#### Plugin-Center-URL
Der SCM-Manager kann ein Plugin-Center anbinden, um schnell und bequem Plugins verwalten zu können. Um ein anderes SCM-Plugin-Center als das vorkonfigurierte zu verwenden, reicht es aus diese URL zu ändern. Läuft der SCM-Manager im Cloudogu EcoSystem kann die Plugin Center URL über einen Eintrag im etcd gesetzt werden.
#### Anonyme Zugriff erlauben
Der SCM-Manager 2 hat das Konzept für anonyme Zugriffe über einen "_anonymous"-Benutzer realisiert. Beim Aktivieren des anonymen Zugriffs wird ein neuer Benutzer erstellt mit dem Namen "_anonymous". Dieser Nutzer kann wie ein gewöhnlicher Benutzer für unterschiedliche Aktionen berechtigt werden. Bei einem Zugriff auf den SCM-Manager ohne Zugangsdaten (gilt nicht für die Web-Oberflächen) wird dieser anonyme Benutzer verwendet.
Beispiel: Falls der anonyme Zugriff aktiviert ist und der "_anonymous"-Benutzer volle Zugriffsrechte auf ein bestimmtes Git-Repository hat, kann jeder über eine Kommandozeile mit den klassischen Git-Befehlen ohne Zugangsdaten auf dieses Repository zugreifen. Zugriffe über SSH werden aktuell nicht unterstützt.
#### Anmeldeversuche
Es lässt sich konfigurieren wie häufig sich ein Benutzer falsch anmelden darf, bevor dessen Benutzerkonto gesperrt wird. Der Zähler für fehlerhafte Anmeldeversuche wird nach einem erfolgreichen Login zurückgesetzt. Man kann dieses Feature abschalten, indem man "-1" in die Konfiguration einträgt.
#### Timeout bei fehlgeschlagenen Anmeldeversuchen
Falls konfiguriert werden Benutzerkonten bei zu vielen fehlgeschlagenen Anmeldeversuche gesperrt. Über einen Timeout kann gesteuert werden, wie lange diese Konten deaktiviert werden.
#### Base URL
Bei der Base URL handelt es sich um die URL, unter der die SCM-Manager Instanz aufgerufen werden kann. Über eine Checkbox kann konfiguriert werden, ob diese Base URL erzwungen werden soll. Durch das Erzwingen werden Zugriff auf diese Applikation über andere URLs auf die Base URL umgeleitet.
Beispiel: Die Base URL lautet www.scm-manager.com/scm, es gibt aber noch eine zweite URL www.scm-manager.io/scm. Beide zeigen auf dieselbe SCM-Manager Instanz. Wenn die Base URL erzwungen wird, wird der Anwender bei einem Zugriff über www.scm-manager.io/scm direkt auf die Base URL www.scm-manager.com/scm weitergeleitet.
**Achtung:** Wenn die Base URL auf einen falschen Wert gesetzt wird und der Haken bei "Base URL erzwingen" gesetzt wurde, ist die SCM-Manager Instanz nicht mehr erreichbar.
#### Proxy Einstellungen
Falls die SCM-Manager Instanz hinter einem Proxy-Server liegt, kann hier die Verbindung konfiguriert werden.
![Administration-Configuration](assets/administration-settings-general.png)
### Mercurial
Hier können globale Einstellungen zum Arbeiten mit dem Source Control Management Tool "Mercurial", kurz hg, konfiguriert werden.
### Git
Hier können globale Einstellungen zum Arbeiten mit dem Source Control Management Tool "Git" konfiguriert werden.
### Subversion
Hier können globale Einstellungen zum Arbeiten mit dem Source Control Management Tool "Subversion", kurz svn, konfiguriert werden.

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 KiB

View File

@@ -0,0 +1,9 @@
---
title: Gruppen
subtitle: Externe Gruppen (CAS)
---
Benutzer, die sich über eine CAS-Instanz (Central Authentication Service) am SCM-Manager anmelden, erhalten zusätzliche Gruppen aus dem CAS beigefügt. Externe Gruppen können ohne ein manuelles Anlegen im SCM-Manager genutzt werden. Das Hinzufügen, der als "extern" gekennzeichneten Gruppen, bringt jedoch die Vorteile mich sich, dass die angelegten Gruppen bei der Autovervollständigung im SCM-Manager berücksichtigt werden und es können Berechtigungen direkt an eine externe Gruppe zugewiesen werden. Welche externen Gruppen einem Benutzer zugewiesen sind, lässt sich über die Profil-Seite eines angemeldeten Benutzers auslesen.
Siehe Beispiel: CasGroup
![External-CAS-Group](assets/external-cas-group.png)

View File

@@ -0,0 +1,25 @@
---
title: Gruppen
partiallyActive: true
---
Der Bereich Gruppen umfasst alles, was auf einen Zusammenschluss mehrerer Anwender und deren Berechtigungen herunterzubrechen ist.
* [Externe Gruppen (CAS)](external/)
* [Einstellungen](settings/)
Um nicht jeden Benutzer einzeln berechtigen zu müssen, gibt es im SCM-Manager die Möglichkeit Gruppen anzulegen. Diese Gruppen können mit Berechtigungen ausgestattet werden und können beliebig viele Benutzer enthalten.
### Übersicht
Die Gruppenübersicht zeigt eine Liste der existierenden Gruppen an. Die Gruppen werden dabei nach internen Gruppen und externen Gruppen unterschieden. Interne Gruppen werden in der Übersicht durch das Haus-Symbol kenntlich gemacht und sind Gruppen, die im SCM-Manager erstellt wurden. Externe Gruppen wiederum haben das Planeten-Symbol und sind Gruppen, dessen Mitglieder von externen Quellen wie beispielsweise einer LDAP-Instanz verwaltet werden.
![Gruppen Übersicht](assets/groups-overview.png)
### Gruppe erstellen
Für das Erstellen einer Gruppe wird lediglich ein Name benötigt. Es können aber auch direkt beim Erstellen die Beschreibung und die Mitglieder hinzugefügt werden. Einzig die Berechtigungen der Gruppe müssen nachträglich konfiguriert werden.
![Gruppe erstellen](assets/create-group.png)
### Gruppen Informationen
Die Informationsseite einer Gruppe zeigt neben den Metadaten auch eine Liste der Gruppenmitglieder an.
![Gruppen Informationen](assets/groups-information.png)

View File

@@ -0,0 +1,13 @@
---
title: Gruppen
subtitle: Einstellungen
---
### Generell
In den allgemeinen Einstellungen einer Gruppe können die Beschreibung und die Mitglieder-Liste editiert werden. Ebenso kann die Gruppe hier gelöscht werden. Dieser Vorgang kann nicht rückgängig gemacht werden.
![Generelle Gruppeneinstellungen](assets/groups-settings-general.png)
### Berechtigungen
Eine Gruppe kann globale Berechtigung bekommen. Diese Berechtigungen gelten für alle Mitglieder der Gruppe.
![Gruppen Berechtigungen](assets/groups-settings-permissions.png)

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 777 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 531 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 753 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 976 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 KiB

View File

@@ -0,0 +1,22 @@
---
title: Repository
subtitle: Branches
---
### Übersicht
Auf der Branches-Übersicht sind die bereits existierenden Branches aufgeführt. Bei einem Klick auf einen Branch wird man zur Detailseite des Branches weitergeleitet.
Der Tag "Default" gibt an welcher Branch aktuell, als Standard-Branch dieses Repository im SCM-Manager markiert ist. Der Standard-Branch wird immer zuerst angezeigt, wenn man das Repository im SCM-Manager öffnet.
Über den "Branch erstellen"-Button gelangt man zum Formular, um neue Branches anzulegen.
![Branches Übersicht](assets/repository-branches-overview.png)
### Branch erstellen
Mit dem "Branch erstellen"-Formular können neue Branches für das Repository erzeugt werden. Dafür muss ausgewählt werden von welchem existierenden Branch der neue Branch abzweigen soll und wie der neue Branch heißen soll. In einem leeren Git Repository können keine Branches erzeugt werden.
![Branch erstellen](assets/repository-create-branch.png)
### Branch Detailseite
Hier werden einige Befehle zum Arbeiten mit dem Branch auf einer Kommandozeile aufgeführt.
![Branch Detailseite](assets/repository-branch-detailView.png)

42
docs/de/user/repo/code.md Normal file
View File

@@ -0,0 +1,42 @@
---
title: Repository
subtitle: Code
displayToc: true
---
Die Sektion "Code" enthält sämtliche Informationen, die sich auf den Code bzw. Inhalt des Repository beziehen. Oben auf der Seite befindet sich ein Aktionsbalken über den innerhalb der Code-Sektion navigiert werden kann.
### Sources
Die Übersicht der Sources zeigt die Dateien und Ordner in dem Repository an. Wenn Branches existieren, werden die Sources für den ausgewählten Branch angezeigt.
Es gibt unter dem Aktionsbalken eine Breadcrumbs Navigation, die den Pfad der angezeigten Dateien darstellt. Durch Klicken auf die einzelnen Pfad-Bestandteile, kann man sich durch die Dateistruktur des Repository (zurück-)navigieren.
![Repository-Code-Sources](assets/repository-code-sourcesView.png)
### Changesets
Die Übersicht der Changesets/Commits zeigt die Änderungshistorie je Branch an. Jeder Listeneintrag stellt einen Commit dar.
Über den Details-Button kann man sich den Inhalt / die Änderungen dieses Changesets ansehen.
Über den Sources-Button gelangt man zur Sources-Übersicht und es wird der Datenstand zum Zeitpunkt nach diesem Commit angezeigt.
![Repository-Code-Changesets](assets/repository-code-changesetsView.png)
### Changeset Details
Auf der Detailseite eines Changesets sieht man zusätzlich zu den Metadaten des Changesets sämtliche Änderungen, die in diesem Changeset enthalten sind. Die Diffs werden dabei im bekannten Format je Datei inklusive Syntax-Highlighting angezeigt.
![Repository-Code-Changesets](assets/repository-code-changesetDetails.png)
### Datei Details
Nach einem Klick auf eine Datei in den Sources landet man in der Detailansicht der Datei. Dabei sind je nach Dateiformat unterschiedliche Ansichten zu sehen:
- Bild-Datei: Bild wird gerendert angezeigt.
- Markdown-Datei: Markdown wird gerendert dargestellt. Die Ansicht kann auf eine nicht gerenderte Textansicht umgeschaltet werden.
- Text-basierte Datei: Der Text wird angezeigt. Falls verfügbar mit Syntax-Highlighting.
- Nicht unterstützte Formate: Ein Download-Button wird angezeigt.
![Repository-Code-FileDetails](assets/repository-code-fileViewer.png)
### Datei Historie
Bei der Datei Details Ansicht kann man über einen Switch oben rechts auf die Historien-Ansicht wechseln. Dort werden die Commits aufgelistet, die diese Datei verändert haben.
![Repository-Code-FileHistory](assets/repository-code-fileHistory.png)

View File

@@ -0,0 +1,39 @@
---
title: Repository
partiallyActive: true
---
Der Bereich Repository umfasst alles auf Basis von Repositories in Namespaces. Dazu zählen alle Operationen auf Branches, der Code und Einstellungen.
* [Branches](branches/)
* [Code](code/)
* [Einstellungen](settings/)
### Übersicht
Auf der Übersichtsseite der Repositories werden die einzelnen Repositories nach Namespaces gegliedert aufgelistet. Jedes Repository wird durch eine Kachel dargestellt. Durch einen Klick auf diese Kachel öffnet sich die Readme Seite des jeweiligen Repositories.
![Repository Übersicht](assets/repository-overview.png)
Über die Suchleiste oben können die Repositories gefiltert werden. Die Suche filtert dabei nach dem Namen und der Beschreibung des Repositories.
Ein bestimmter Tab des Repositories wie Branches, Changesets oder Sources kann über die blauen Icons geöffnet werden.
Icon | Beschreibung
---|---
![Repository Branches](assets/repository-overview-branches.png) | Öffnet die Branches-Übersicht für das Repository
![Repository Changesets](assets/repository-overview-changesets.png) | Öffnet die Changesets-Übersicht für das Repository
![Repository Sources](assets/repository-overview-sources.png) | Öffnet die Sources-Übersicht für das Repository
![Repository Einstellungen](assets/repository-overview-settings.png) | Öffnet die Einstellungen für das Repository
### Repository erstellen
Im SCM-Manager können neue Git, Mercurial & Subersion (SVN) Repositories über ein Formular angelegt werden. Dieses kann über den Button "Repository erstellen" aufgerufen werden. Dabei muss ein gültiger Name eingetragen und der Repository-Typ bestimmt werden.
Optional kann man das Repository beim Erstellen direkt initialisieren. Damit werden für Git und Mercurial jeweils der Standard-Branch (master bzw. default) angelegt. Außerdem wird ein initialer Commit ausgeführt, der eine README.md erzeugt.
Ist die Namespace-Strategie auf "Benutzerdefiniert" eingestellt, muss noch ein Namespace eingetragen werden.
![Repository erstellen](assets/create-repository.png)
### Repository Informationen
Die Informationsseite eines Repository zeigt die Metadaten zum Repository an. Darunter befinden sich Beschreibungen zu den unterschiedlichen Möglichkeiten wie man mit diesem Repository arbeiten kann.
![Repository-Information](assets/repository-information.png)

View File

@@ -0,0 +1,23 @@
---
title: Repository
subtitle: Einstellungen
---
Unter den Repository Einstellungen befinden sich zwei Einträge. Wenn weitere Plugins installiert sind, können es deutlich mehr Unterseiten sein.
### Generell
Unter dem Eintrag "Generell" kann man die Zusatzinformationen zum Repository editieren. Da es sich im Beispiel um ein Git Repository handelt, kann ebenfalls der Standard-Branch für dieses Repository gesetzt werden. Der Standard-Branch sorgt dafür, dass beim Arbeiten mit diesem Repository dieser Branch vorrangig geöffnet wird, falls kein expliziter Branch ausgewählt wurde.
Über den Button unten auf dieser Seite besteht noch die Möglichkeit dieses Repository aus dem SCM-Manager zu löschen. Dieser Vorgang kann nicht rückgängig gemacht werden.
![Repository-Settings-General-Git](assets/repository-settings-general-git.png)
### Berechtigungen
Dank des fein granularen Berechtigungskonzepts des SCM-Managers können Nutzern und Gruppen, basierend auf definierbaren Rollen oder auf individuellen Einstellungen, Rechte zugewiesen werden. Berechtigungen können global und auf Repository-Ebene vergeben werden. Globale Berechtigungen werden in der Administrations-Oberfläche des SCM-Managers vergeben. Unter diesem Eintrag handelt es sich um Repository-bezogene Berechtigungen.
Die Berechtigungen können jeweils für Gruppen und für Benutzer vergeben werden. Dabei gibt es die Möglichkeiten die Berechtigungen über Berechtigungsrollen zu definieren oder jede Berechtigung einzeln zu vergeben. Die Berechtigungsrollen können in der Administrations-Oberfläche definiert werden.
![Repository-Settings-PermissionOverview](assets/repository-settings-permissionOverview.png)
Für individuelle Berechtigungen kann man über "Erweitert" einen Dialog öffnen, um jede Berechtigung einzeln zu vergeben.
![Repository-Settings-PermissionList](assets/repository-settings-permissionList.png)

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB

View File

@@ -0,0 +1,26 @@
---
title: Benutzer
partiallyActive: true
---
Der Bereich Benutzer umfasst alles, was auf einen einzelnen Anwender und dessen Berechtigungen herunterzubrechen ist.
* [Einstellungen](settings/)
### Übersicht
Auf der Benutzer Übersichtsseite wird eine Liste der existierenden Benutzer angezeigt. Durch Klicken auf einen Benutzer gelangt man zu dessen Detailseite. Über die Schaltfläche "Benutzer erstellen" können neue Benutzer angelegt werden.
![Benutzer Übersicht](assets/user-overview.png)
### Benutzer erstellen
Mithilfe des "Benutzer erstellen"-Formulars können neue Benutzer im SCM-Manager angelegt werden. Neue Benutzer haben noch keine Berechtigungen und sollten direkt nach dem Anlegen konfiguriert werden.
![Benutzer erstellen](assets/create-user.png)
### Benutzer Detailseite
Die Detailseite eines Benutzers zeigt die Informationen zu diesem an.
Über den "Aktiv"-Marker sieht man, ob dies ein aktivierter Benutzer des SCM-Managers ist. Wird ein Benutzer auf inaktiv gesetzt, kann er sich nicht mehr am SCM-Manager anmelden.
Der Typ eines Benutzers gibt an, aus welcher Quelle dieser Benutzer stammt. Der Typ "XML" aus dem Beispiel gibt an, dass dieser Benutzer im SCM-Manager erstellt wurde. Daneben kann es aber auch externe Benutzer geben, die beispielweise mithilfe des LDAP-Plugins aus einer LDAP-Instanz angebunden wurden.
![Benutzer Informationen](assets/user-information.png)

View File

@@ -0,0 +1,21 @@
---
title: Benutzer
subtitle: Einstellungen
---
### Generell
In den generellen Einstellungen des Benutzers können der Anzeigename, die E-Mail-Adresse und der Aktivitätsstatus des Kontos editiert werden.
Über die Schaltfläche unten kann der Benutzer auch komplett gelöscht werden. Dieser Vorgang kann nicht rückgängig gemacht werden.
![Generelle Benutzereinstellungen](assets/user-settings-general.png)
### Passwort
Unter dem Eintrag "Passwort" kann das Login-Passwort des Benutzers geändert werden. Falls ein Benutzer sein Passwort selbst ändern möchte, kann er das machen indem er sich einloggt und ganz unten in der Fußzeile der Seite auf seinen Namen klickt. Dann gelangt er in die Kontoeinstellungen kann unter anderem ein neues Passwort vergeben.
![Passwort ändern](assets/user-settings-password.png)
### Berechtigungen
Hier werden die globalen (nicht-Repository-bezogenen) Berechtigungen für einen Benutzer konfiguriert.
Für die einzelnen Rechte sind Tooltips verfügbar, welche Auskunft über die Auswirkungen der jeweiligen Berechtigung geben.
![Benutzer Berechtigungen](assets/user-settings-permissions.png)

View File

@@ -2,10 +2,13 @@
title: Documentation title: Documentation
subtitle: SCM-Manager Documentation subtitle: SCM-Manager Documentation
--- ---
This documentation describes the administration and usage of SCM-Manager. It is available in different languages and versions, which can be selected in the menu on the right.
This documentation describes the administration and usage of SCM-Manager. SCM-Manager 2 is an extremely lightweight source code management tool that can be individually extended through a variety of plugins.
This documentation is divided into five categories:
## Version and language - The section "Getting started" introduces the installation and configuration of SCM-Manager and answers frequently asked questions.
- The "Administration" area deals with issues that are important when operating an instance.
The documentation belongs to a specific language and version of SCM-Manager. - The rubric "Development" contains information for the further development of SCM-Manager. It describes how SCM-Manager can be built and what needs to be considered.
You can choose your version and language on the menu to the right. - The area of "Plugin Development" focuses on the process of plugin development.
- "User-oriented" summarizes the features from the user's point of view in the basic version with the minimal set of plugins. The features of the optional plugins are introduced in separate documentations.

View File

@@ -6,11 +6,18 @@
- /faq/ - /faq/
- /known-issues/ - /known-issues/
- section: User-oriented
entries:
- /user/repo/
- /user/user/
- /user/group/
- /user/admin/
- section: Administration - section: Administration
entries: entries:
- /administration/scm-server-ssl/ - /administration/scm-server-ssl/
- /administration/logging/ - /administration/logging/
- /administration/command-line-client/ - /administration/command-line-client/
- section: Development - section: Development
entries: entries:

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 KiB

View File

@@ -0,0 +1,14 @@
---
title: Administration
partiallyActive: true
---
The SCM-Manager instance can be administered in the Administration area. From here, plugins can be managed, permission roles can be defined and adjusted, and settings can be made.
* [Plugins](plugins/)
* [Permission Roles](roles/)
* [Settings](settings/)
### Information
On the information page in the administration area you can find the version of your SCM-Manager instance and helpful links to get in touch with the SCM-Manager support team.
![Administration-Information](assets/administration-information.png)

View File

@@ -0,0 +1,19 @@
---
title: Administration
subtitle: Plugins
---
In the plugins section, plugins for SCM-Manager can be managed with the help of the external plugin center. Plugins are distinguished between installed and available plugins and are grouped based on their main functionality like for example workflow or authentication.
Plugins can be managed by functionality icons on the tiles. System relevant plugins that come with SCM-Manager by default cannot be deinstalled or updated.
In order for changes to plugins to become effective, the SCM-Manager server needs to be restarted. That can be done after every single action. It is also possible to queue several actions like the installation of a new plugin, updates or the deletion of a plugin and to perform all actions with one restart. If an action (installation, deinstallation, update) for a plugin was performed, the buttons "Execute changes" and "Abort changes" appear. If you choose to execute the changes, a popup window that shows the current queue (all actions without a restart) appears. Now the user can decide whether to execute the changes by restarting the server. If there are actions in the queue that are no longer desired, the queue can be emptied with the about changes button.
### Installed
The overview for installed plugins shows all plugins that are currently installed on the SCM-Manager instance. Plugins that are optional can be deinstalled or updated here.
![Administration-Plugins-Installed](assets/administration-plugins-installed.png)
### Available
The overview of all available plugins shows all plugins that are compatible with the current version of the SCM-Manager instance that are available through the SCM-plugin-center. The plugins can be downloaded by clicking on the icon and will be installed after a restart of the SCM-Manager server.
![Administration-Plugins-Available](assets/administration-plugins-available.png)

View File

@@ -0,0 +1,11 @@
---
title: Administration
subtitle: Permission Roles
---
The page "Permission Roles" can be used to create profiles with certain permissions. Each role gets a name and a set of permissions. Roles can be assigned to users and groups for repositories.
There are a few predefined system roles which cannot be changed or deleted.
By clicking on a role you can see the information about it and which permissions the role has. User-defined roles can be edited or deleted at any time.
![Administration-PermissionRoles](assets/administration-permissionRoles.png)

View File

@@ -0,0 +1,59 @@
---
title: Administration
subtitle: Settings
displayToc: true
---
The settings area is where the global configuration of SCM-Manager happens. Many SCM-Manager plugins that need some kind of configuration get an area in the settings. This makes it maximally configurable if required.
### General
#### Realm Description
The field "Realm Description" is used to set the authentication realm for logins with basic authentication.
#### Namespace Strategy
SCM-Manager groups repositories by namespaces. This grouping can be based on different strategies:
* Username: The username of the user that creates the repository is used.
* Current year: The current year is used.
* Repository type: The type (Git, HG, SVN) is used.
* Custom: The namespace can be freely set when creating the repository.
#### Login Info URL
The login screen of SCM-Manager shows helpful plugins and features. If you want to show your own information in the login screen, you can change the URL here.
#### Enable XSRF Protection
Activate this option to make attacks using cross site scripting (XSS / XSRF) on SCM-Manager more difficult. This feature is still in an experimental state.
#### Plugin Center URL
A plugin center can be used to conveniently manage plugins. If you want to use a plugin center that is not the default one, you only have to change this URL. If SCM-Manager is operated as part of a Cloudogu EcoSystem, the plugin center URL can be changed in the etcd.
#### Enable Anonymous Access
In SCM-Manager 2 the access for anonymous access is realized by using an "_anonymous" user. When the feature is activated, a new user with the name "_anonymous" is created. This user can be authorized just like any other user. This user is used for access to SCM-Manager without login credentials (this does not apply to access via web UI).
Example: If anonymous access is enabled and the "_anonymous" user has full access on a certain Git repository, everybody can access this repository via command line and the classic Git commands without any login credentials. Access via SSH is not supported at this time.
#### Login Attempt Limit
It can be configured how many failed login attempts a user can have before the account gets disabled. The counter for failed login attempts is reset after a successful login. This feature can be deactivated by setting the value "-1".
#### Login Attempt Limit Timeout
If the deactivation of accounts after too many unsuccessful login attempts is activated. This timeout can be used to set for how long accounts will be disabled.
#### Base URL
The base URL represents the URL that a SCM-Manager instance is available at. The checkbox "Force Base URL" can be used to force redirects to the base URL. If activated, access to this application through different URLs are redirected to the base URL.
Example: The base URL is www.scm.manager.com/scm but there is a second URL www.scm-manager.io/scm. Both URLs point to the same SCM-Manager instance. If the redirect to the base URL is forced, access via www.scm-manager.io/scm is redirected directly to www.scm-manager.com/scm.
**Warning:** If the base URL is set to a faulty value and "Force Base URL" is activated, the SCM-Manager instance is no longer accessible.
#### Proxy Settings
If the SCM-Manager instance is behind a proxy server, the connection can be configured here.
![Administration-Configuration](assets/administration-settings-general.png)
### Mercurial
The global settings for the source code management tool "Mercurial", hg for short, can be configured here.
### Git
The global settings for the source code management tool "Git", can be configured here.
### Subversion
The global settings for the source code management tool "Subversion", svn for short, can be configured here.

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 KiB

View File

@@ -0,0 +1,9 @@
---
title: Groups
subtitle: External groups (CAS)
---
Users who log on to SCM-Manager via a CAS (Central Authentication Service) instance receive additional groups from the CAS. External groups can be used without manual creation in SCM-Manager. However, adding the groups marked as "external" has the advantages that the groups created are taken into account in the auto-completion and authorizations can be assigned directly to an external group. Which external groups are assigned to a user can be read out on the profile page of a registered user.
See example: CasGroup
![External-CAS-Group](assets/external-cas-group.png)

View File

@@ -0,0 +1,25 @@
---
title: Groups
partiallyActive: true
---
The group area includes everything that can be broken down into a group of several users and their authorizations.
* [External groups (CAS)](external/)
* [Settings](settings/)
It is possible to create groups in SCM-Manager to not authorize each user individually. Groups can be authorized and can contain an unlimited number of users.
### Overview
The groups overview shows a list of all groups that are existing. Groups are distinguished between internal and external groups. Internal groups are groups that were created in SCM-Manager and are indicated by a house icon. External groups were created by external sources like a connected LDAP instance and have a world icon.
![Groups Overview](assets/groups-overview.png)
### Create a Group
Groups only require a name. It is also possible to add members to a group directly when they are created. Only the permissions of the group have to be added afterwards.
![Create Group](assets/create-group.png)
### Group Information
The information page of a group shows the meta data as well as the members.
![Group-Information](assets/groups-information.png)

View File

@@ -0,0 +1,13 @@
---
title: Groups
subtitle: Settings
---
### General
In the general settings page of a group the description and the members can be edited. Also, it is possible to delete a group here. The deletion is irreversible.
![General Group Settings](assets/groups-settings-general.png)
### Permissions
Groups can get global and repository-specific permissions. All permissions of a group are valid for all its members.
![Group Permissions](assets/groups-settings-permissions.png)

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 777 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 531 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 753 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 976 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

View File

@@ -0,0 +1,22 @@
---
title: Repository
subtitle: Branches
---
### Overview
The branches overview shows the branches that are already existing. By clicking on a branch, the details page of the branch is shown.
The tag "Default" shows which branch is currently set as the default branch of the repository in SCM-Manager. The default branch is always shown first when opening the repository in SCM-Manager.
The button "Create Branch" opens the form to create a new branch.
![Branches Overview](assets/repository-branches-overview.png)
### Create a Branch
New branches can be created with the "Create Branch" form. There, you have to choose the branch that the new branch will be branched from and to provide a name for the new branch. It is not possible to create branches in an empty Git repository.
![Create Branch](assets/repository-create-branch.png)
### Branch Details Page
This page shows some commands to work with the branch on the command line.
![Branch Details Page](assets/repository-branch-detailView.png)

42
docs/en/user/repo/code.md Normal file
View File

@@ -0,0 +1,42 @@
---
title: Repository
subtitle: Code
displayToc: true
---
The "Code" section contains all information that refers to the code respectively the content of the repository. At the top of the page is the action bar, which can be used to navigate within the code section.
### Sources
The sources overview shows the files and folders within the repository. If branches exist, it shows the sources for the selected branch.
Below the action bar is a breadcrumb navigation that shows the path of the files that are displayed. By clicking on the different sections of the path it is possible to navigate (back) through the file structure of the repository.
![Repository-Code-Sources](assets/repository-code-sourcesView.png)
### Changesets
The changesets/commits overview shows the change history of the branch. Each entry represents a commit.
The Details button leads to the content/changes of a changeset.
The Sources button leads to the sources overview that shows the state from after this commit.
![Repository-Code-Changesets](assets/repository-code-changesetsView.png)
### Changeset Details
The details page of a changeset shows the metadata and all changes that are part of the changeset. The diffs are presented in the well-known format per file with syntax highlighting.
![Repository-Code-Changesets](assets/repository-code-changesetDetails.png)
### File Details
After clicking on a file in the sources, the details of the file are shown. Depending on the format of the file, there are different views:
- Image file: The rendered image is shown.
- Markdown file: The rendered markdown is shown. The view can also be changed to a text view that is not rendered.
- Text based file: The content is shown. If available with syntax highlighting.
- Unsupported formats: A download button is shown.
![Repository-Code-FileDetails](assets/repository-code-fileViewer.png)
### File History
In the detailed file view there is a switch button in the upper right corner which allows to switch to the history view. The history shows all commits that changed the file.
![Repository-Code-FileHistory](assets/repository-code-fileHistory.png)

View File

@@ -0,0 +1,39 @@
---
title: Repository
partiallyActive: true
---
The Repository area includes everything based on repositories in namespaces. This includes all operations on branches, the code and settings.
* [Branches](branches/)
* [Code](code/)
* [Settings](settings/)
### Overview
The repository overview screen shows all repositories sorted by namespaces. Each repository is shown as a tile. After clicking on the tile the readme screen of the repository is shown.
![Repository Overview](assets/repository-overview.png)
The search bar at the top can be used to filter the repositories. The search uses the name and description of the repositories.
The different tabs like branches, changesets or sources of the repository can be accessed through the blue icons.
Icon | Description
---|---
![Repository Branches](assets/repository-overview-branches.png) | Opens the branches overview for the repository
![Repository Changesets](assets/repository-overview-changesets.png) | Opens the changeset overview for the repository
![Repository Sources](assets/repository-overview-sources.png) | Opens the sources overview for the repository
![Repository Settings](assets/repository-overview-settings.png) | Opens the settings for the repository
### Create a Repository
In SCM-Manager new Git, Mercurial & Subversion (SVN) repositories can be created via a form that can be accessed via the "Create Repository" button. A valid name and the repository type are mandatory.
Optionally, repositories can be initialized during the creation. That creates a standard branch (master or default) for Git and Mercurial repositories. Additionally, it performs a commit that creates a README.md.
If the namespace strategy is set to custom, the namespace field is also mandatory.
![Create Repository](assets/create-repository.png)
### Repository Information
The information screen of repositories shows meta data about the repository. Amongst that are descriptions for the different options on how the repository can be used.
![Repository Information](assets/repository-information.png)

View File

@@ -0,0 +1,23 @@
---
title: Repository
subtitle: Settings
---
By default, there are two items in the repository settings. Depending on additional plugins that are installed, there can be considerably more items.
### General
The "General" item allows you to edit the additional information of the repository. Git repositories for example also have the option to change the default branch here. The default branch is the one that is used when working with the repository if no specific branch is selected.
At the bottom of this screen is also a button to delete the repository from SCM-Manager. The deletion is irreversible.
![Repository-Settings-General-Git](assets/repository-settings-general-git.png)
### Permissions
Thanks to the finely granular permission concept of SCM-Manager, users and groups can be authorized based on definable roles or individual settings. Permissions can be granted globally or repository-specific. Global permissions are managed in the administration area of SCM-Manager. The following image shows repository-specific permissions.
Permissions can be granted to groups or users. It is possible to manage each permission individually or to create roles that contain several permissions. Roles can be defined in the administration area.
![Repository-Settings-PermissionOverview](assets/repository-settings-permissionOverview.png)
To manage permissions individually, an "Advanced" dialog can be opened to manage every single permission.
![Repository-Settings-PermissionList](assets/repository-settings-permissionList.png)

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 KiB

Some files were not shown because too many files have changed in this diff Show More