Correct migration of old documentation

This commit is contained in:
Florian Scholdei
2020-03-31 17:28:30 +02:00
parent ac66e6097e
commit fad91d5511
66 changed files with 2362 additions and 1931 deletions

View File

@@ -7,38 +7,38 @@
The easiest way to share and manage your Git, Mercurial and Subversion
repositories over http.
- Very easy installation
- No need to hack configuration files, SCM-Manager is completely
configureable from its Web-Interface
- No Apache and no database installation is required
- Central user, group and permission management
- Out of the box support for Git, Mercurial and Subversion
- Full RESTFul Web Service API (JSON and XML)
- Rich User Interface
- Simple Plugin API
- Useful plugins available
- Licensed under the MIT-License
- Very easy installation
- No need to hack configuration files, SCM-Manager is completely
configureable from its Web-Interface
- No Apache and no database installation is required
- Central user, group and permission management
- Out of the box support for Git, Mercurial and Subversion
- Full RESTFul Web Service API (JSON and XML)
- Rich User Interface
- Simple Plugin API
- Useful plugins available
- Licensed under the MIT-License
This branch (default) is for the development of SCM-Manager 2.x. If you are interested in the development of version 1.x, please checkout the 1.x branch.
## News
- \*\*2018-09-25\*\* - [SCM-Manager 2 gets a boost by Cloudogu
GmbH](https://www.scm-manager.org/scm-manager-2/scm-manager-2-gets-a-boost-by-cloudogu-gmbh/ "wikilink")
- \*\*2018-05-04\*\* - SCM-Manager 1.60 released
([download](http://www.scm-manager.org/download/ "wikilink") \|
[release notes](release-notes.md "wikilink"))
- \*\*2018-04-11\*\* - SCM-Manager 1.59 released
- **2018-09-25** - [SCM-Manager 2 gets a boost by Cloudogu
GmbH](https://www.scm-manager.org/scm-manager-2/scm-manager-2-gets-a-boost-by-cloudogu-gmbh/)
- **2018-05-04** - SCM-Manager 1.60 released
([download](http://www.scm-manager.org/download/) \|
[release notes](release-notes.md))
- **2018-04-11** - SCM-Manager 1.59 released
[All news](http://www.scm-manager.org/news/ "wikilink")
[All news](http://www.scm-manager.org/news/)
## Mailing List
- <scmmanager@googlegroups.com> -
[archive](http://groups.google.com/group/scmmanager "wikilink") \|
[subscribe](mailto:scmmanager+subscribe@googlegroups.com "wikilink")
[archive](http://groups.google.com/group/scmmanager) \|
[subscribe](mailto:scmmanager+subscribe@googlegroups.com)
\|
[unsubscribe](mailto:scmmanager+unsubscribe@googlegroups.com "wikilink")
[unsubscribe](mailto:scmmanager+unsubscribe@googlegroups.com)
## Documentation
You can find the complete documentation in the [docs/](docs/Home.md) directory.

View File

@@ -1,3 +1,5 @@
# Definition of Done
* Acceptance criteria are checked manually (from the user's perspective)
* Code coverage is checked manually (>= 80% on new code) ([sonarcloud](https://sonarcloud.io/dashboard?id=sonia.scm%3Ascm))
* The clean code principles are respected ([CleanCode](https://clean-code-developer.com/virtues/))

View File

@@ -1,21 +1,18 @@
ExtensionPoints
---------------
# Extension Points
- [AuthenticationHandler](http://docs.scm-manager.org/apidocs/latest/sonia/scm/web/security/AuthenticationHandler.html "wikilink")
- [AuthenticationListener](http://docs.scm-manager.org/apidocs/latest/sonia/scm/web/security/AuthenticationListener.html "wikilink")
- [ChangesetPreProcessor](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/ChangesetPreProcessor.html "wikilink")
- [ChangesetPreProcessorFactory](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/ChangesetPreProcessorFactory.html "wikilink")
- [
FileObjectPreProcessor](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/FileObjectPreProcessor.html "wikilink")
- [FileObjectPreProcessorFactory](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/FileObjectPreProcessorFactory.html "wikilink")
- [FileSystem](http://docs.scm-manager.org/apidocs/latest/sonia/scm/io/FileSystem.html "wikilink")
- [GroupListener](http://docs.scm-manager.org/apidocs/latest/sonia/scm/group/GroupListener.html "wikilink")
- [Module](http://google-guice.googlecode.com/svn/tags/3.0/javadoc/com/google/inject/Module.html "wikilink")
- [RepositoryHandler](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/RepositoryHandler.html "wikilink")
- [RepositoryHook](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/RepositoryHook.html "wikilink")
- [RepositoryListener](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/RepositoryListener.html "wikilink")
- [
RepositoryRequestListener](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/RepositoryRequestListener.html "wikilink")
- [ResourceHandler](http://docs.scm-manager.org/apidocs/latest/sonia/scm/resources/ResourceHandler.html "wikilink")
- [ServletModule](http://google-guice.googlecode.com/svn/tags/3.0/javadoc/com/google/inject/servlet/ServletModule.html "wikilink")
- [UserListener](http://docs.scm-manager.org/apidocs/latest/sonia/scm/user/UserListener.html "wikilink")
- [AuthenticationHandler](http://docs.scm-manager.org/apidocs/latest/sonia/scm/web/security/AuthenticationHandler.html)
- [AuthenticationListener](http://docs.scm-manager.org/apidocs/latest/sonia/scm/web/security/AuthenticationListener.html)
- [ChangesetPreProcessor](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/ChangesetPreProcessor.html)
- [ChangesetPreProcessorFactory](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/ChangesetPreProcessorFactory.html)
- [FileObjectPreProcessor](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/FileObjectPreProcessor.html)
- [FileObjectPreProcessorFactory](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/FileObjectPreProcessorFactory.html)
- [FileSystem](http://docs.scm-manager.org/apidocs/latest/sonia/scm/io/FileSystem.html)
- [GroupListener](http://docs.scm-manager.org/apidocs/latest/sonia/scm/group/GroupListener.html)
- [Module](http://google-guice.googlecode.com/svn/tags/3.0/javadoc/com/google/inject/Module.html)
- [RepositoryHandler](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/RepositoryHandler.html)
- [RepositoryHook](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/RepositoryHook.html)
- [RepositoryListener](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/RepositoryListener.html)
- [RepositoryRequestListener](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/RepositoryRequestListener.html)
- [ResourceHandler](http://docs.scm-manager.org/apidocs/latest/sonia/scm/resources/ResourceHandler.html)
- [ServletModule](http://google-guice.googlecode.com/svn/tags/3.0/javadoc/com/google/inject/servlet/ServletModule.html)
- [UserListener](http://docs.scm-manager.org/apidocs/latest/sonia/scm/user/UserListener.html)

View File

@@ -1,118 +1,103 @@
The easiest way to share and manage your Git, Mercurial and Subversion
repositories over http.
- Very easy installation
- No need to hack configuration files, SCM-Manager is completely
- Very easy installation
- No need to hack configuration files, SCM-Manager is completely
configureable from its Web-Interface
- No Apache and no database installation is required
- Central user, group and permission management
- Out of the box support for Git, Mercurial and Subversion
- Full RESTFul Web Service API (JSON and XML)
- Rich User Interface
- Simple Plugin API
- Useful plugins available ( f.e. Ldap-, ActiveDirectory-,
- No Apache and no database installation is required
- Central user, group and permission management
- Out of the box support for Git, Mercurial and Subversion
- Full RESTFul Web Service API (JSON and XML)
- Rich User Interface
- Simple Plugin API
- Useful plugins available ( f.e. Ldap-, ActiveDirectory-,
PAM-Authentication)
- Licensed under the MIT-License
- Licensed under the MIT-License
### News
- \*\*2018-09-25\*\* - [SCM-Manager 2 gets a boost by Cloudogu
GmbH](https://www.scm-manager.org/scm-manager-2/scm-manager-2-gets-a-boost-by-cloudogu-gmbh/ "wikilink")
- \*\*2018-05-04\*\* - SCM-Manager 1.60 released
([download](http://www.scm-manager.org/download/ "wikilink") \|
[release notes](release-notes.md "wikilink"))
- \*\*2018-04-11\*\* - SCM-Manager 1.59 released
- **2018-09-25** - [SCM-Manager 2 gets a boost by Cloudogu GmbH](https://www.scm-manager.org/scm-manager-2/scm-manager-2-gets-a-boost-by-cloudogu-gmbh/)
- **2018-05-04** - SCM-Manager 1.60 released ([download](http://www.scm-manager.org/download/) \|
[release notes](release-notes.md))
- **2018-04-11** - SCM-Manager 1.59 released
[All news](http://www.scm-manager.org/news/ "wikilink")
[All news](http://www.scm-manager.org/news/)
### Mailing List
- <scmmanager@googlegroups.com> -
[archive](http://groups.google.com/group/scmmanager "wikilink") \|
[subscribe](mailto:scmmanager+subscribe@googlegroups.com "wikilink")
- <scmmanager@googlegroups.com> -
[archive](http://groups.google.com/group/scmmanager) \|
[subscribe](mailto:scmmanager+subscribe@googlegroups.com)
\|
[unsubscribe](mailto:scmmanager+unsubscribe@googlegroups.com "wikilink")
[unsubscribe](mailto:scmmanager+unsubscribe@googlegroups.com)
### Use SCM-Manager
- [Getting started](getting-started.md "wikilink")
- [Download latest
version](http://www.scm-manager.org/download/ "wikilink")
- [FAQ](faq.md "wikilink")
- [Upgrade SCM-Manager to a newer version](upgrade.md "wikilink")
- [Download latest snapshot
release](download-snapshot-release.md "wikilink")
- [Download Archive](download-archive.md "wikilink")
- [Command line client](command-line-client.md "wikilink")
- [SCM-Server SSL](scm-server-ssl.md "wikilink")
- [ApplicationServer
(Tomcat/Glassfish/Jetty)](applicationserver.md "wikilink")
- [Using SCM-Manager with Apache
mod\_proxy](apache/apache-mod_proxy.md "wikilink")
- [Using SCM-Manager with Nginx](nginx.md "wikilink")
- [Using SCM-Manager with ISS
(Helicon)](SCM-Manager%20on%20ISS%20Helicon.md "wikilink")
- [Permissions](Permissions.md "wikilink")
- [Plugins](http://plugins.scm-manager.org/scm-plugin-backend/page/index.html "wikilink")
- [Revision Control Plugin
Comparison](rv-plugin-comparison.md "wikilink")
- [Screenshots](http://www.scm-manager.org/screenshots/ "wikilink")
- [Mercurial Subrepositories](subrepositories.md "wikilink")
- [Unix Daemons and Windows Services](daemons.md "wikilink")
- [RPM and DEB packages](RPM%20and%20DEB%20packages.md "wikilink")
- [Build windows mercurial packages for
SCM-Manager](https://bitbucket.org/sdorra/build-win-hg-packages "wikilink")
- [Getting started](getting-started.md)
- [Download latest version](http://www.scm-manager.org/download/)
- [Frequently Asked Questions](faq.md)
- [Upgrade SCM-Manager to a newer version](upgrade.md)
- [Download latest snapshot release](download-snapshot-release.md)
- [Download Archive](download-archive.md)
- [Command line client](command-line-client.md)
- [SCM-Server SSL](scm-server-ssl.md)
- [ApplicationServer (Tomcat/Glassfish/Jetty)](applicationserver.md)
- [Using SCM-Manager with Apache mod\_proxy](apache/apache-mod_proxy.md)
- [Using SCM-Manager with Nginx](nginx.md)
- [Using SCM-Manager with IIS (Helicon)](iis-helicon.md)
- [Permissions](Permissions.md)
- [Plugins](http://plugins.scm-manager.org/scm-plugin-backend/page/index.html)
- [Revision Control Plugin Comparison](rv-plugin-comparison.md)
- [Screenshots](http://www.scm-manager.org/screenshots/)
- [Mercurial Subrepositories](subrepositories.md)
- [Unix Daemons and Windows Services](daemons.md)
- [RPM and DEB packages](RPM%20and%20DEB%20packages.md)
- [Build windows mercurial packages for SCM-Manager](https://bitbucket.org/sdorra/build-win-hg-packages)
### Plugin documentation
- [Active Directory Plugin](active-directory-plugin.md "wikilink")
- [Branch Write Protect Plugin](branchwp-plugin.md "wikilink")
- [Jenkins Plugin](jenkins-plugin.md "wikilink")
- [Jira Plugin](jira-plugin.md "wikilink")
- [Mail Plugin](mail-plugin.md "wikilink")
- [Path Write Protect Plugin](pathwp-plugin.md "wikilink")
- [Redmine Plugin](redmine-plugin.md "wikilink")
- [Scheduler Plugin](scheduler-plugin.md "wikilink")
- [Trac Plugin](trac-plugin.md "wikilink")
- [WebHook Plugin](webhook-plugin.md "wikilink")
- [Active Directory Plugin](active-directory-plugin.md)
- [Branch Write Protect Plugin](branchwp-plugin.md)
- [Jenkins Plugin](jenkins-plugin.md)
- [Jira Plugin](jira-plugin.md)
- [Mail Plugin](mail-plugin.md)
- [Path Write Protect Plugin](pathwp-plugin.md)
- [Redmine Plugin](redmine-plugin.md)
- [Scheduler Plugin](scheduler-plugin.md)
- [Trac Plugin](trac-plugin.md)
- [WebHook Plugin](webhook-plugin.md)
### Development
- [Building SCM-Manager from source](build-from-source.md "wikilink")
- [Java Client API](java-client-api.md "wikilink")
- [Code Snippets](code-snippets.md "wikilink")
- [Configuring Eclipse projects for
SCM-Manager](configure-eclipse.md "wikilink")
- [Plugin Descriptor](plugin-descriptor.md "wikilink")
- [ExtensionPoints](ExtensionPoints.md "wikilink")
- [How to create your own plugin](howto-create-a-plugin.md "wikilink")
- [Injection Objects](injectionObjects.md "wikilink")
- [API
documentation](http://docs.scm-manager.org/apidocs/latest/ "wikilink")
- [WebService
documentation](http://docs.scm-manager.org/restdocs/current/ "wikilink")
- [Building SCM-Manager from source](build-from-source.md)
- [Java Client API](java-client-api.md)
- [Code Snippets](code-snippets.md)
- [Configuring Eclipse projects for SCM-Manager](configure-eclipse.md)
- [Plugin Descriptor](plugin-descriptor.md)
- [ExtensionPoints](ExtensionPoints.md)
- [How to create your own plugin](howto-create-a-plugin.md)
- [Injection Objects](injectionObjects.md)
- [API documentation](http://docs.scm-manager.org/apidocs/latest/)
- [WebService documentation](http://docs.scm-manager.org/restdocs/current/)
### SCM Manager 2
- [Configuration for Intellij
IDEA](v2/intellij-idea-configuration.md "wikilink")
- [State of SCM-Manager 2
development](v2/State%20of%20SCM-Manager%202%20development.md "wikilink")
- [SCM v2 Test Cases](v2/SCMM-v2-Test-Cases.md "wikilink")
- [Table of decisions made during
development](v2/Decision-Table.md "wikilink")
- [Definition of done](Definition%20of%20done.md "wikilink")
- [Style Guide](v2/style-guide.md "wikilink")
- [Error Handling in REST, Java, UI](v2/error-handling.md "wikilink")
- [Create a new Plugin](v2/Create%20a%20new%20Plugin.md "wikilink")
- [Migrate Plugin from v1](v2/Migrate%20Plugin%20from%20v1.md "wikilink")
- [Plugin Development](v2/Plugin%20Development.md "wikilink")
- [i18n for Plugins](v2/i18n%20for%20Plugins.md "wikilink")
- [Extension Points](v2/Extension-Points.md "wikilink")
- [API changes](v2/API%20changes.md "wikilink")
- [ui-components/ui-types](v2/UI%20Additions%20or%20Changes%20to%20ui-components%20or%20ui-types.md "wikilink")
- [Vulnerabilities](v2/vulnerabilities.md "wikilink")
- [Common pitfall](v2/Common%20pitfall.md "wikilink")
- [Release process](v2/Release%20process.md "wikilink")
- [Migration Wizard](v2/Migration-Wizard.md "wikilink")
- [Known Issues](v2/Known%20Issues.md "wikilink")
- [Configuration for Intellij IDEA](v2/intellij-idea-configuration.md)
- [State of SCM-Manager 2 development](v2/State%20of%20SCM-Manager%202%20development.md)
- [SCM v2 Test Cases](v2/SCMM-v2-Test-Cases.md)
- [Table of decisions made during development](v2/Decision-Table.md)
- [Definition of done](Definition%20of%20done.md)
- [Style Guide](v2/style-guide.md)
- [Error Handling in REST, Java, UI](v2/error-handling.md)
- [Create a new Plugin](v2/Create%20a%20new%20Plugin.md)
- [Migrate Plugin from v1](v2/Migrate%20Plugin%20from%20v1.md)
- [Plugin Development](v2/Plugin%20Development.md)
- [i18n for Plugins](v2/i18n%20for%20Plugins.md)
- [Extension Points](v2/Extension-Points.md)
- [API changes](v2/API%20changes.md)
- [ui-components/ui-types](v2/UI%20Additions%20or%20Changes%20to%20ui-components%20or%20ui-types.md)
- [Vulnerabilities](v2/vulnerabilities.md)
- [Common pitfall](v2/Common%20pitfall.md)
- [Release process](v2/Release%20process.md)
- [Migration Wizard](v2/Migration-Wizard.md)
- [Known Issues](v2/Known%20Issues.md)

View File

@@ -1,3 +1,5 @@
# RPM and DEB packages
Since version 1.39, SCM-Manager is delivered as RPM and DEB package. The package are generated with the [nativepkg-maven-plugin](https://github.com/sdorra/nativepkg-maven-plugin). The following table shows the directory structure which will be created by the packages:
File | Description
@@ -17,8 +19,7 @@ The package will create a user and group which are called scm. The scm user will
The RPM package is tested with Fedora and Centos. Create a new files at /etc/yum.repos.d/SCM-Manager.repo with the following content to install the scm-manager repository:
```
#!text
```text
[scm-releases]
name=SCM-Manager Releases
baseurl=http://maven.scm-manager.org/nexus/content/repositories/releases
@@ -33,9 +34,7 @@ type=rpm-md
After file creation execute the following command to install scm-server:
```
#!bash
```bash
# install the scm-server package
sudo yum install scm-server
```
@@ -44,9 +43,7 @@ sudo yum install scm-server
The DEB package is tested with Debian and Ubuntu. Execute the following commands to install scm-server:
```
#!bash
```bash
# add the scm-manager repository
echo "echo 'deb http://maven.scm-manager.org/nexus/content/repositories/releases ./' >> /etc/apt/sources.list" | sudo sh
@@ -58,7 +55,6 @@ sudo apt-get update
# install scm-server
sudo apt-get install scm-server
```
## Migration from ApplicationServer or Standalone version

View File

@@ -1,8 +1,9 @@
# State of SCM-Manager 2 development
The development of SCM-Manager 2.0.0 is organised in [Trello Boards](https://trello.com/scmmanager).
## [Milestone 1](https://trello.com/b/oit1MD92/scm-manager-2-0-0-milestone-1) ##
## [Milestone 1](https://trello.com/b/oit1MD92/scm-manager-2-0-0-milestone-1)
### Main goals ###
### Main goals
* remove deprecated and unused stuff
* remove old style listeners
* replace [guava eventbus](https://code.google.com/p/guava-libraries/wiki/EventBusExplained) with [legman](https://github.com/sdorra/legman)
@@ -12,25 +13,25 @@ The development of SCM-Manager 2.0.0 is organised in [Trello Boards](https://tre
* use of [annotation processors](http://docs.oracle.com/javase/7/docs/api/javax/annotation/processing/Processor.html) instead of classpath scanning
* move non core modules (plugin-backend, maven plugins, etc.) to separate repositories
## [Milestone 2](https://trello.com/b/Afb3hoJ9/scm-manager-2-0-0-milestone-2) ##
## [Milestone 2](https://trello.com/b/Afb3hoJ9/scm-manager-2-0-0-milestone-2)
### Main goals ###
### Main goals
* use [apache shiro](http://shiro.apache.org/) everywhere
* improve authentication
* improve user and group management
* use permission instead of roles
## [Milestone 3](https://trello.com/b/eLvqTGGe/scm-manager-2-0-0-milestone-3) ##
## [Milestone 3](https://trello.com/b/eLvqTGGe/scm-manager-2-0-0-milestone-3)
### Main goals ###
### Main goals
* completely new designed rest api
## Milestone 4 ##
## Milestone 4
### Main goals ###
### Main goals
* completely new user interface
## Milestone 5 ##
## Milestone 5
### Main goals ###
### Main goals
* improve repository api

View File

@@ -1,11 +1,9 @@
### Active Directory Plugin
- Connect your Windows machine to your local Active Directory
- Log in as a user of that directory
- Run the scm-server batch file
- Install the active-directory plugin
- restart the scm-server
- Connect your Windows machine to your local Active Directory
- Log in as a user of that directory
- Run the scm-server batch file
- Install the active-directory plugin
- Restart the scm-server
<!-- -->
- - Note:\*\* Since version 1.7 of the plugin 64bit is supported.
**Note**: Since version 1.7 of the plugin 64bit is supported.

View File

@@ -1,10 +1,34 @@
SCM-Server and Apache mod\_jk
-----------------------------
# SCM-Server and Apache mod\_jk
### Apache Configuration
```apache
JkWorkersFile /etc/apache2/jkworkers.properties
JkLogFile /var/log/apache2/mod_jk.log
JkLogLevel info
JkMount /scm* worker1
```
### JK Workers File (jkworkers.properties)
```ini
worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=50
worker.worker1.cachesize=10
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1
```
### SCM-Server conf/server-config.xml
Uncomment the following lines:
```xml
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.ajp.Ajp13SocketConnector">
<Set name="port">8009</Set>
</New>
</Arg>
</Call>
```

View File

@@ -1,31 +1,55 @@
SCM-Server and Apache mod\_proxy
--------------------------------
# SCM-Server and Apache mod\_proxy
### Apache configuration
- - Warning\*\*: Setting ProxyPassReverseCookiePath would most
likely cause problems with session handling!
<!-- -->
- - Note\*\*: If you encounter timeout problems, please have a look
[here](http://httpd.apache.org/docs/current/mod/mod_proxy.html#workers "wikilink").
```apache
ProxyPass /scm http://localhost:8080/scm
ProxyPassReverse /scm http://localhost:8080/scm
ProxyPassReverse /scm http://servername:8080/scm
<Location /scm>
Order allow,deny
Allow from all
</Location>
```
- **Warning**: Setting ProxyPassReverseCookiePath would most likely cause problems with session handling!
- **Note**: If you encounter timeout problems, please have a look at [Apache Module mod_proxy#Workers](http://httpd.apache.org/docs/current/mod/mod_proxy.html#workers).
### SCM-Server conf/server-config.xml
NOTE: This file is found in the installation directory, not the user\'s
home directory.
Uncomment following line: Example: === SCM-Manager Configuration version
1.5 and above ==
Uncomment following line:
```xml
<Set name="forwarded">true</Set>
```
1. Login as an admin user and select \"General\"
2. Set the \"Base Url\" to the URL of the Apache (\*\*warning:\*\*
don\'t check \"Force Base Url\")
3. Save the new new settings
Example:
```xml
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
<Set name="host">
<SystemProperty name="jetty.host" />
</Set>
<Set name="port">
<SystemProperty name="jetty.port" default="8080"/>
</Set>
<!-- for mod_proxy -->
<Set name="forwarded">true</Set>
</New>
</Arg>
</Call>
```
### SCM-Manager Configuration version 1.5 and above
1. Login as an admin user and select \"General\"
2. Set the \"Base Url\" to the URL of the Apache (**warning:** don\'t check \"Force Base Url\")
3. Save the new new settings
### SCM-Manager Configuration before version 1.5
1. Login as an admin user and select \"General\"
2. Set the Serverport to the apache port (normally port 80)
3. Save the new settings
1. Login as an admin user and select \"General\"
2. Set the Serverport to the apache port (normally port 80)
3. Save the new settings

View File

@@ -1,47 +1,75 @@
Tomcat
------
# Applicationserver
## Tomcat
Mercurial uses very large http headers for branch and head informations.
You have to increase the maxHttpHeaderSize parameter on the connector
configuration. Open the conf/server.xml and add the parameter to your
connector e.g.:
```xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxHttpHeaderSize="16384" />
```
After changing the configuration you have to restart the tomcat.
Source: <http://tomcat.apache.org/tomcat-7.0-doc/config/http.html>
- - Note\*\*: If you have problems with big mercurial pushes on
instances which are newer than tomcat 7.0.55, you have to
increase/disable the maxSwallowSize (see issue \#691).
**Note**: If you have problems with big mercurial pushes on instances which are newer than tomcat 7.0.55,
you have to increase/disable the maxSwallowSize (see issue [#691](https://github.com/scm-manager/scm-manager/issues/691)).
#### Access Log
If you wan\'t like to print the current user in tomcats access log you
could use a valve like the following:
The pattern \*\*%{principal}r\*\* is responsible for logging the
username to the access log (see issue \#877).
```xml
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %{principal}r %t &quot;%r&quot; %s %b" />
```
GlassFish
---------
The pattern **%{principal}r** is responsible for logging the
username to the access log (see issue [#877](https://github.com/scm-manager/scm-manager/issues/877)).
## GlassFish
To use SCM-Manager 1.6 and above with GlassFish 3 you have to add a
JVM-Option to the GlassFish configuration to override the jax-rs
packages. Please execute the following commands.
- - Note\*\* Glassfish 3.1.2 and above seems not to work with
SCM-Manager. Please have a look at
[QeO-QVX6wmsJ](https://groups.google.com/forum/#!searchin/scmmanager/glassfish/scmmanager/SEbuEU8H-qo/QeO-QVX6wmsJ "wikilink").
```bash
# override jax-rs packages
$ bin/asadmin create-jvm-options -Dcom.sun.enterprise.overrideablejavaxpackages=javax.ws.rs,javax.ws.rs.core,javax.ws.rs.ext
# increase http header size
$ bin/asadmin set configs.config.default-config.network-config.protocols.protocol.http-listener-1.http.header-buffer-length-bytes=16384
$ bin/asadmin set configs.config.default-config.network-config.protocols.protocol.http-listener-2.http.header-buffer-length-bytes=16384
```
**Note** Glassfish 3.1.2 and above seems not to work with SCM-Manager.
Please have a look at [QeO-QVX6wmsJ](https://groups.google.com/forum/#!searchin/scmmanager/glassfish/scmmanager/SEbuEU8H-qo/QeO-QVX6wmsJ "Exception deploying to Glassfish 3.1.2").
Restart the GlassFish-Server.
Source:
<http://jersey.java.net/nonav/documentation/latest/glassfish.html>
Source: <http://jersey.java.net/nonav/documentation/latest/glassfish.html>
Jetty
-----
## Jetty
If Jetty returns a HTTP \"413 FULL head\" status, you may want to
further increase the maximum header size. You can configure the limit by
setting the headerBufferSize for the connector you\'re using in the
jetty.xml file:
```xml
<Call name="addConnector">
<Arg>
<New class="org.mortbay.jetty.nio.SelectChannelConnector">
[...]
<Set name='headerBufferSize'>32768</Set>
</New>
</Arg>
</Call>
```

View File

@@ -1,5 +1,4 @@
Branch Write Protect Plugin
---------------------------
# Branch Write Protect Plugin
### Installation
@@ -26,7 +25,7 @@ plugin:
The branchwp plugin works only for Git and Mercurial, for Subversion
have a look at the
[pathwp-plugin](http://plugins.scm-manager.org/scm-plugin-backend/page/detail/sonia.scm.plugins/scm-pathwp-plugin.html "wikilink").
[pathwp-plugin](http://plugins.scm-manager.org/scm-plugin-backend/page/detail/sonia.scm.plugins/scm-pathwp-plugin.html).
Since version 1.2 of the plugin it is possible to define deny
permissions and placeholders for branch names. Deny permissions are
@@ -38,5 +37,4 @@ following placeholders are available:
user
### Known issues
- <https://bitbucket.org/sdorra/scm-manager/issue/235/branchwp-plugin-can-not-use-on-git>
- [#235](https://github.com/scm-manager/scm-manager/issues/235 "branchwp plugin can not use on git")

View File

@@ -1,35 +1,40 @@
Building SCM-Manager from source
--------------------------------
# Building SCM-Manager from source
### Software Requirements
- JDK 1.7 or higher
([download](http://www.oracle.com/technetwork/java/index.html "wikilink"))
- Maven 3 or higher ([download](http://maven.apache.org/ "wikilink"))
- Mercurial ([download](https://www.mercurial-scm.org/ "wikilink"))
- JDK 1.7 or higher
([download](http://www.oracle.com/technetwork/java/index.html))
- Maven 3 or higher ([download](http://maven.apache.org/))
- Mercurial ([download](https://www.mercurial-scm.org/))
### Build SCM-Manager 1.x from source
- - Note:\*\* if you use the \"package\" phase rather than the
\"install\" phase, the standalone version may include an old
version of the WAR file in the distribution bundle, rather than
the version you just built.
```bash
hg clone https://bitbucket.org/sdorra/scm-manager
cd scm-manager
hg update 1.x
mvn clean install
```
**Note**: if you use the \"package\" phase rather than the \"install\" phase,
the standalone version may include an old version of the WAR file in the distribution bundle,
rather than the version you just built.
After mvn finished, the war bundle is located at
\*\*scm-webapp/target/scm-webapp.war\*\* and the standalone version is
located at \*\*scm-server/target/scm-server-app\*\*.
**scm-webapp/target/scm-webapp.war** and the standalone version is
located at **scm-server/target/scm-server-app**.
You can also start a dev server using \`mvn jetty:run-war -f
scm-webapp\`. SCMM is served at <http://localhost:8081/scm>.
You can also start a dev server using `mvn jetty:run-war -f
scm-webapp`. SCM-Manager is served at <http://localhost:8081/scm>.
### REST
Docs:
- Create the documentation: \`mvn -f scm-webapp compile -P doc\`
- The documentation can be found at scm-webapp/target/restdocs
- Create the documentation: `mvn -f scm-webapp compile -P doc`
- The documentation can be found at scm-webapp/target/restdocs
Note that if using jetty (see above) you have to access
<http://localhost:8081/scm> once, to trigger creation of the
\`scmadmin\` user. Then you can access the REST api directly
`scmadmin` user. Then you can access the REST api directly
<http://localhost:8081/scm/api/rest>

View File

@@ -1,12 +1,11 @@
Code Snippets
-------------
# Code Snippets
### User Interface
- [extend navigation](snippet-extend-navigation.md "wikilink")
- [add tab to repository configuration](snippet-repository-tab.md "wikilink")
- [extend global configuration](snippet-config-group.md "wikilink")
- [extend navigation](snippet-extend-navigation.md)
- [add tab to repository configuration](snippet-repository-tab.md)
- [extend global configuration](snippet-config-group.md)
### Backend
- [Authentication](snippet-authentication.md "wikilink")
- [Authentication](snippet-authentication.md)

View File

@@ -1,16 +1,65 @@
Command line client
-------------------
# Command line client
You can download the command line client from
[here](http://www.scm-manager.org/download/ "wikilink") (the
scm-cli-client).
[here](http://www.scm-manager.org/download/) (the scm-cli-client).
### Examples
- - 1\. Store username, password and server url\*\*
**1\. Store username, password and server url**
- - 2\. List all repositories\*\*
```bash
$ java -jar scm-cli-client-1.47-jar-with-dependencies.jar --user scmadmin --password madmin --server http://localhost:8080/scm store-config
- - 3\. Create a new user\*\*
store config
```
- - 4\. Add write permission for user test to repository scm\*\*
**2\. List all repositories**
```bash
$ java -jar scm-cli-client-1.47-jar-with-dependencies.jar list-repositories
ID: fbb64701-6dd3-4847-8588-26f693736961
Name: scm
Type: hg
E-Mail: s.sdorra@gmail.com
Description: SCM-Manager
Public: false
Creation-Date: 2011-06-03 16:13:19
Last-Modified: 2011-06-03 16:15:38
URL: http://localhost:8080/scm/hg/scm
Permissions:
WRITE - sdorra (Group: false)
```
**3\. Create a new user**
```bash
$ java -jar scm-cli-client-1.47-jar-with-dependencies.jar create-user --name test --display-name "Test User" --mail "test@scm-manager.org" --password secret
Name: test
Display Name: Test User
Type: xml
E-Mail: test@scm-manager.org
Administrator: false
Creation-Date:
Last-Modified:
```
**4\. Add write permission for user test to repository scm**
```bash
$ java -jar scm-cli-client-1.47-jar-with-dependencies.jar add-permission fbb64701-6dd3-4847-8588-26f693736961 --name test -t WRITE
ID: fbb64701-6dd3-4847-8588-26f693736961
Name: scm
Type: hg
E-Mail: s.sdorra@gmail.com
Description: SCM-Manager
Public: false
Creation-Date: 2011-06-03 16:13:19
Last-Modified: 2011-06-03 16:15:38
URL: http://localhost:8080/scm/hg/scm
Permissions:
WRITE - sdorra (Group: false)
WRITE - test (Group: false)
```

View File

@@ -1,14 +1,16 @@
# Configure Eclipse
There are multiple approaches to using Maven projects within Eclipse. If
you use an approach that isn\'t listed here, feel free to add it.
Use Maven to generate Eclipse project files
-------------------------------------------
## Use Maven to generate Eclipse project files
1. First, [build scm-manager from
source](build-from-source "wikilink").
1. First, [build scm-manager from source](build-from-source.md).
2. Open a shell to the root of your scm-manager source.
3. Run the following command:\\\\
4. Run the following command:\\\\
3. Run the following command:\
`mvn eclipse:configure-workspace -Declipse.workspace=YOUR_WORKSPACE_PATH`
4. Run the following command:\
`mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true`
5. Open Eclipse using the specified workspace.
6. In Eclipse, select the \"File\", \"Import\...\" menu.
7. Select the \"General\", \"Existing Projects into Workspace\" item
@@ -20,27 +22,51 @@ Use Maven to generate Eclipse project files
You may encounter an error during the \"eclipse:eclipse\" step that
looks like this:
```
[INFO] Request to merge when 'filtering' is not identical. Original=resource src
/main/resources: output=target/classes, include=[META-INF/scm/plugin.xml], exclu
de=[**/*.java], test=false, filtering=true, merging with=resource src/main/resou
rces: output=target/classes, include=[], exclude=[META-INF/scm/plugin.xml|**/*.j
ava], test=false, filtering=false
```
This error is caused by a bug in version 2.7 and 2.8 of the Maven
eclipse plugin. See below for one workaround. Other discussion of this
issue can be found
[here](http://forums.atlassian.com/thread.jspa?threadID=34952&tstart=1 "wikilink").
[here](http://forums.atlassian.com/thread.jspa?threadID=34952&tstart=1).
1. Add the following line within the <settings> element of your
\~/.m2/settings.xml [file:\\\\](file:\\){{{
1. Add the following line within the <settings> element of your /.m2/settings.xml file:\
`<usePluginRegistry>true</usePluginRegistry>`
<usePluginRegistry>true</usePluginRegistry> }}}
1. Add the file \~/.m2/plugin-registry.xml with the following contents:
1. Add the file /.m2/plugin-registry.xml with the following contents:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<pluginRegistry
xsi:schemaLocation="http://maven.apache.org/PLUGIN_REGISTRY/1.0.0 http://maven.apache.org/xsd/plugin-registry-1.0.0.xsd"
xmlns="http://maven.apache.org/PLUGIN_REGISTRY/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<useVersion>2.6</useVersion>
<rejectedVersions>
<rejectedVersion>2.7</rejectedVersion>
<rejectedVersion>2.8</rejectedVersion>
</rejectedVersions>
</plugin>
</plugins>
</pluginRegistry>
```
If you have .project files in any parent directory, the Eclipse import
step will not search beneath that parent for any further projects.
Delete the .project file in the parent and try the import again.
If you get errors in Eclipse about not finding M2\_REPO, it means that
the eclipse:configure-workspace step didn\'t work. One cause for this
the eclipse:configure-workspace step didn't work. One cause for this
could be using \"\~\" or other special characters in your workspace path
that the plugin doesn\'t resolve properly. Either re-run
that the plugin doesn't resolve properly. Either re-run
eclipse:configure-workspace, or manually create a classpath variable
named M2\_REPO pointing to the root of your local maven repository
directory.

View File

@@ -1,20 +1,33 @@
Unix Daemons and Windows Services
---------------------------------
# Unix Daemons and Windows Services
- - Note\*\*: If you are using a 64Bit operating system you should
use a 64Bit JavaVirtualMachine as well (\#74 or
[rOL1nJ9DnfI](https://groups.google.com/forum/?fromgroups#!topic/scmmanager/rOL1nJ9DnfI "wikilink")).
**Note**: If you are using a 64Bit operating system you should use a 64Bit JavaVirtualMachine as well
([#74](https://github.com/scm-manager/scm-manager/issues/74) or
[rOL1nJ9DnfI](https://groups.google.com/forum/?fromgroups#!topic/scmmanager/rOL1nJ9DnfI "Can't start scm windows service")).
### Unix Daemons
You could run scm-server in background as unix daemon with one simple
command:
You could run scm-server in background as unix daemon with one simple command:
```bash
scm-server start
```
If you would like to stop the running daemon instance just call:
```bash
scm-server stop
```
### Windows Services
Register scm-server as Windows service open a console (cmd) as
Administrator and execute the following command: The service is no
available in the service control center. You could uninstall the service
with the command below:
Register scm-server as Windows service open a console (cmd) as Administrator and execute the following command:
```bash
scm-server.bat install
```
The service is no available in the service control center. You could uninstall the service with the command below:
```bash
scm-server.bat uninstall
```

File diff suppressed because it is too large Load Diff

View File

@@ -1,14 +1,13 @@
Download latest Snapshot release
--------------------------------
# Download latest Snapshot release
### SCM-Server 1.61 SNAPSHOT (standalone)
- [scm-server](https://repository-scm-manager.forge.cloudbees.com/snapshot/sonia/scm/scm-server/1.61-SNAPSHOT/ "wikilink")
- [scm-server](https://repository-scm-manager.forge.cloudbees.com/snapshot/sonia/scm/scm-server/1.61-SNAPSHOT/)
### SCM-WebApp 1.61 SNAPSHOT (Web application archive)
- [scm-webapp](https://repository-scm-manager.forge.cloudbees.com/snapshot/sonia/scm/scm-webapp/1.61-SNAPSHOT "wikilink")
- [scm-webapp](https://repository-scm-manager.forge.cloudbees.com/snapshot/sonia/scm/scm-webapp/1.61-SNAPSHOT)
### SCM-Cli-Client 1.61 SNAPSHOT (Java application archive)
- [scm-cli-client](https://repository-scm-manager.forge.cloudbees.com/snapshot/sonia/scm/clients/scm-cli-client/1.61-SNAPSHOT/ "wikilink")
- [scm-cli-client](https://repository-scm-manager.forge.cloudbees.com/snapshot/sonia/scm/clients/scm-cli-client/1.61-SNAPSHOT/)

View File

@@ -1,4 +1,3 @@
Download
--------
# Download
The download page has moved to <http://www.scm-manager.org/download/>

View File

@@ -1,18 +1,16 @@
FAQ
---
# Frequently Asked Questions
### What are the username and the password in the default installation?
Username: scmadmin
Password: scmadmin
Username: `scmadmin`\
Password: `scmadmin`
### Where does SCM-Manager store its configuration, log files and the repositories?
SCM-Manager stores the complete data in a directory called .scm (the
SCM-Manager home directory). This directory is located in the home
directory of the user which is the owner of the process. Except for [rpm
and deb](RPM%20and%20DEB%20packages.md "wikilink")
and deb](RPM%20and%20DEB%20packages.md)
installations, for those installations the home directory is located at
/var/lib/scm.
@@ -21,11 +19,11 @@ installations, for those installations the home directory is located at
You could change the SCM-Manager home directory in a few ways:
- Edit the scm.properties (WEB-INF/classes) file and add the path to
your folder f.e. scm.home=/var/scm
your folder f.e. `scm.home=/var/scm`
- Set an environment variable SCM\_HOME with the path of your
directory
- Start your application server with a java property called scm.home
f.e. -Dscm.home=/var/scm
- Start your application server with a java property called `scm.home`
f.e. `-Dscm.home=/var/scm`
### Can I create a directory structure for scm-manager repositories?
@@ -34,11 +32,19 @@ use a \"/\" in the name of the repository to create the structure. For
example the repositories Project/module-1, Project/module-2 and
OtherProject/module-1 will result in the following structure.
For more information have a look at [Support for directory structure](https://github.com/scm-manager/scm-manager/issues/47).
```text
+ Project
| - module-1
| - module-2
+ OtherProject
| - module-1
```
For more information have a look at [#47](https://github.com/scm-manager/scm-manager/issues/47 "Support for directory structure").
### After creation of a new public repository I am trying to clone it anonymously, but I got request of user and password. What am I doing wrong?
You have to enabled \"Allow Anonymous Access\" at Config-\>General.
You have to enable \"Allow Anonymous Access\" at Config-\>General.
### Where does SCM-Manager stores it log files?
@@ -50,8 +56,15 @@ store its configuration, log files and the repositories?\").
Edit scm-server/conf/logging.xml change the line from:
```xml
<logger name="sonia.scm" level="INFO" />
```
to:
```xml
<logger name="sonia.scm" level="TRACE" />
```
If you are using the war version with an application server such as
tomcat, you have to edit the logback.xml in WEB-INF/classes.

View File

@@ -1,42 +1,52 @@
Getting started
---------------
# Getting started
### Install Java
SCM-Manager needs an installed Java 1.7 or newer. It is recommended to
use the [oracle jre](http://java.oracle.com/ "wikilink"). How to check
use the [oracle jre](http://java.oracle.com/). How to check
which version of Java is installed:
```bash
java -version
```
### Install the latest version of Java
Download java from [here](http://java.oracle.com/ "wikilink") and follow
Download java from [here](http://java.oracle.com/) and follow
the install instructions.
### Install SCM-Manager
Download the latest version of SCM-Manager from
[here](http://www.scm-manager.org/download/ "wikilink"), unpack the .zip
[here](http://www.scm-manager.org/download/), unpack the .zip
or .tar.gz package and start SCM-Manager with
```bash
scm-server/bin/scm-server
```
### First access
\|=URL\|<http://localhost:8080>\| \|=Username\|scmadmin\|
\|=Password\|scmadmin\|
| | |
| ------------ | ----------------------- |
| **URL** | <http://localhost:8080> |
| **Username** | scmadmin |
| **Password** | scmadmin |
### Mercurial
Subversion and Git will work out of the box, but if you want to use
mercurial with SCM-Manager you have to install mercurial version
\*\*1.9\*\* or newer.
**1.9** or newer.
#### Mercurial on Windows
The installation of mercurial for SCM-Manager is very complicated on
windows, have a look at:
- <https://bitbucket.org/sdorra/scm-manager/issue/1/no-ability-to-rename-repository>
- <https://groups.google.com/d/msg/scmmanager/zOigMIn2RiE/xeFcruG70s8J>
- <https://bitbucket.org/sdorra/build-win-hg-packages>
- [#1](https://bitbucket.org/sdorra/scm-manager/issues/1/no-ability-to-rename-repository)
- [xeFcruG70s8J](https://groups.google.com/d/msg/scmmanager/zOigMIn2RiE/xeFcruG70s8J "Python/Hg Package Build Process")
- [build-win-hg-packages](https://bitbucket.org/sdorra/build-win-hg-packages)
SCM-Manager comes with the option to install packages for windows to
simplify this setup. To use such a package just login as Administrator,
@@ -45,10 +55,13 @@ Choose \"Download and install\".
If you see an error like the following:
Then you have to install [Microsoft Visual C++ 2008 SP1 Redistributable
Package
(x86)](http://www.microsoft.com/en-us/download/details.aspx?id=5582 "wikilink").
```text
sonia.scm.repository.RepositoryException: command exit with error 14001 and message: 'The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tool for more detail.'
```
Then you have to install [Microsoft Visual C++ 2008 SP1 Redistributable Package
(x86)](http://www.microsoft.com/en-us/download/details.aspx?id=5582).
Note you have to use the x86 package and not the x64 package, because we
use 32bit python in SCM-Manager on Windows. For more informations have a
look at
[\#522](https://bitbucket.org/sdorra/scm-manager/issue/552/hg-repo-creation-failed "wikilink").
[#522](https://bitbucket.org/sdorra/scm-manager/issue/552/hg-repo-creation-failed).

View File

@@ -1,5 +1,4 @@
SCM-Manager with GlassFish
--------------------------
# SCM-Manager with GlassFish
To use SCM-Manager 1.6 and above with GlassFish 3.x you have to add a
JVM-Option to the GlassFish configuration. Please follow the steps
@@ -9,6 +8,10 @@ Open the GlassFish Admin-Console (http://yourserver:4848), login as
admin user, goto Configuration-\>JVM Settings, switch to the JVM Options
tab and add the following JVM-Option:
```bash
-Dcom.sun.enterprise.overrideablejavaxpackages=javax.ws.rs,javax.ws.rs.core,javax.ws.rs.ext
```
Restart the GlassFish-Server.
Source:

View File

@@ -9,9 +9,7 @@ This incompatible repositories must be converted, before they can be used with S
* download the convert util from [here](https://maven.scm-manager.org/nexus/content/repositories/releases/sonia/scm/scm-fixsvndb5-cli/1.0.1/scm-fixsvndb5-cli-1.0.1-jar-with-dependencies.jar)
* execute the convert util with your scm home directory as parameter e.g.:
```
#!bash
```bash
java -jar scm-fixsvndb5-cli-1.0.1-jar-with-dependencies.jar /path/to/.scm
```
@@ -19,5 +17,5 @@ java -jar scm-fixsvndb5-cli-1.0.1-jar-with-dependencies.jar /path/to/.scm
For more informations have a look at:
* [Issue #519](https://bitbucket.org/sdorra/scm-manager/issue/519/default-svn-repository-format-setting)
* [Issue #519](https://github.com/scm-manager/scm-manager/issues/519)
* [Subversion release notes](https://subversion.apache.org/docs/release-notes/1.7.html#revprop-packing)

View File

@@ -1,32 +1,37 @@
How to create your own plugin
-----------------------------
# How to create your own plugin
### Software Requirements
- JDK 1.7 or higher
([download](http://www.oracle.com/technetwork/java/index.html "wikilink"))
- Maven 3 or higher ([download](http://maven.apache.org/ "wikilink"))
([download](http://www.oracle.com/technetwork/java/index.html))
- Maven 3 or higher ([download](http://maven.apache.org/))
### Create plugin
```bash
mvn archetype:generate\
-DarchetypeGroupId=sonia.scm.maven\
-DarchetypeArtifactId=scm-plugin-archetype\
-DarchetypeVersion=1.60\
-DarchetypeRepository=http://maven.scm-manager.org/nexus/content/groups/public/
```
### Test the plugin
```bash
mvn scmp:run
```
### Samples
- [Hello
World](https://bitbucket.org/sdorra/scm-manager/src/1.x/scm-samples/scm-sample-hello/ "wikilink")
- [Authentication
Plugin](https://bitbucket.org/sdorra/scm-manager/src/1.x/scm-samples/scm-sample-auth/ "wikilink")
- [Hello World](https://bitbucket.org/sdorra/scm-manager/src/1.x/scm-samples/scm-sample-hello/)
- [Authentication Plugin](https://bitbucket.org/sdorra/scm-manager/src/1.x/scm-samples/scm-sample-auth/)
### Further reading
- [Injection framework - Google
Guice](http://code.google.com/p/google-guice/ "wikilink")
- [Restful WebService -
Jersey](http://jersey.java.net/nonav/documentation/latest/user-guide.html "wikilink")
- [ XML transformation - JAXB](http://jaxb.java.net/guide/ "wikilink")
- [User interface - Ext
JS](http://www.sencha.com/products/extjs3/ "wikilink")
- [Injection framework - Google Guice](http://code.google.com/p/google-guice/)
- [Restful WebService - Jersey](http://jersey.java.net/nonav/documentation/latest/user-guide.html)
- [ XML transformation - JAXB](http://jaxb.java.net/guide/)
- [User interface - Ext JS](http://www.sencha.com/products/extjs3/)
### Questions/Help

View File

@@ -1,12 +1,11 @@
# SCM-Manager on IIS Helicon
First of all this setup is not recommended, because there were a lot of problems with it and it was never tested by the development team of SCM-Manager. However there are several working installation out there. But there some pitfalls:
**Problem description:**
When moving of copying files in SVN, the commit fails with the following message:
```
#!cmd
```bash
MyWorkstation:MyRepo user$ svn mv A.cs B.cs
A B.cs
D A.cs
@@ -25,33 +24,30 @@ This problem only occurs when accessing the repository via https, not http.
1. Add the following rewrite rule to the web.config of the SCM application:
```
#!xml
<system.webServer>
```xml
<system.webServer>
<!-- <heliconZoo /> -->
<!-- <handlers /> -->
<rewrite>
<rules>
<rule name="Rewrite Destination Header" stopProcessing="true">
<match url=".+" />
<conditions>
<add input="{REQUEST_METHOD}" pattern="MOVE|COPY" />
<add input="{HTTP_Destination}" pattern="^https://(.+)$" />
</conditions>
<serverVariables>
<set name="HTTP_Destination" value="http://{C:1}" />
</serverVariables>
<action />
</rule>
</rules>
</rewrite>
</system.webServer>
<rewrite>
<rules>
<rule name="Rewrite Destination Header" stopProcessing="true">
<match url=".+" />
<conditions>
<add input="{REQUEST_METHOD}" pattern="MOVE|COPY" />
<add input="{HTTP_Destination}" pattern="^https://(.+)$" />
</conditions>
<serverVariables>
<set name="HTTP_Destination" value="http://{C:1}" />
</serverVariables>
<action />
</rule>
</rules>
</rewrite>
</system.webServer>
```
2. Add HTTP_Destination to the Allowed Server Variables using IIS:
![2014-10-16_01-40-50.png](https://bitbucket.org/repo/65dEj/images/3287552754-2014-10-16_01-40-50.png)
![Helicon: Allowed Server Variables](screenshots/helicon-server-vars.png)
For more information, see issue [624](https://bitbucket.org/sdorra/scm-manager/issue/624/svn-400-bad-request-on-copy-or-move-when).
For more information, see issue [#624](https://bitbucket.org/sdorra/scm-manager/issue/624/svn-400-bad-request-on-copy-or-move-when).

View File

@@ -1,25 +1,23 @@
Injection Objects
-----------------
# Injection Objects
- [AdministrationContext](http://docs.scm-manager.org/apidocs/latest/sonia/scm/web/security/AdministrationContext.html "wikilink")
- [AuthenticationManager](http://docs.scm-manager.org/apidocs/latest/sonia/scm/web/security/AuthenticationManager.html "wikilink")
- [CGIExecutorFactory](http://docs.scm-manager.org/apidocs/latest/sonia/scm/web/cgi/CGIExecutorFactory.html "wikilink")
- [CacheManager](http://docs.scm-manager.org/apidocs/latest/sonia/scm/cache/CacheManager.html "wikilink")
- [ChangesetViewerUtil](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/ChangesetViewerUtil.html "wikilink")
- [CipherHandler](http://docs.scm-manager.org/apidocs/latest/sonia/scm/security/CipherHandler.html "wikilink")
- [EncryptionHandler](http://docs.scm-manager.org/apidocs/latest/sonia/scm/security/EncryptionHandler.html "wikilink")
- [FileSystem](http://docs.scm-manager.org/apidocs/latest/sonia/scm/io/FileSystem.html "wikilink")
- [GroupManager](http://docs.scm-manager.org/apidocs/latest/sonia/scm/group/GroupManager.html "wikilink")
- [HttpClient](http://docs.scm-manager.org/apidocs/latest/sonia/scm/net/HttpClient.html "wikilink")
- [HttpServletRequest](http://java.sun.com/javaee/5/docs/api/javax/servlet/http/HttpServletRequest.html "wikilink")
- [HttpServletResponse](http://java.sun.com/javaee/5/docs/api/javax/servlet/http/HttpServletResponse.html "wikilink")
- [HttpSession](http://java.sun.com/javaee/5/docs/api/javax/servlet/http/HttpSession.html "wikilink")
- [KeyGenerator](http://docs.scm-manager.org/apidocs/latest/sonia/scm/security/KeyGenerator.html "wikilink")
- [RepositoryBrowserUtil](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/RepositoryBrowserUtil.html "wikilink")
- [RepositoryManager](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/RepositoryManager.html "wikilink")
- [
RepositoryRequestListenerUtil](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/RepositoryRequestListenerUtil.html "wikilink")
- [ScmConfiguration](http://docs.scm-manager.org/apidocs/latest/sonia/scm/config/ScmConfiguration.html "wikilink")
- [StoreFactory](http://docs.scm-manager.org/apidocs/latest/sonia/scm/store/StoreFactory.html "wikilink")
- [UserManager](http://docs.scm-manager.org/apidocs/latest/sonia/scm/user/UserManager.html "wikilink")
- [WebSecurityContext](http://docs.scm-manager.org/apidocs/latest/sonia/scm/web/security/WebSecurityContext.html "wikilink")
- [AdministrationContext](http://docs.scm-manager.org/apidocs/latest/sonia/scm/web/security/AdministrationContext.html)
- [AuthenticationManager](http://docs.scm-manager.org/apidocs/latest/sonia/scm/web/security/AuthenticationManager.html)
- [CGIExecutorFactory](http://docs.scm-manager.org/apidocs/latest/sonia/scm/web/cgi/CGIExecutorFactory.html)
- [CacheManager](http://docs.scm-manager.org/apidocs/latest/sonia/scm/cache/CacheManager.html)
- [ChangesetViewerUtil](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/ChangesetViewerUtil.html)
- [CipherHandler](http://docs.scm-manager.org/apidocs/latest/sonia/scm/security/CipherHandler.html)
- [EncryptionHandler](http://docs.scm-manager.org/apidocs/latest/sonia/scm/security/EncryptionHandler.html)
- [FileSystem](http://docs.scm-manager.org/apidocs/latest/sonia/scm/io/FileSystem.html)
- [GroupManager](http://docs.scm-manager.org/apidocs/latest/sonia/scm/group/GroupManager.html)
- [HttpClient](http://docs.scm-manager.org/apidocs/latest/sonia/scm/net/HttpClient.html)
- [HttpServletRequest](http://java.sun.com/javaee/5/docs/api/javax/servlet/http/HttpServletRequest.html)
- [HttpServletResponse](http://java.sun.com/javaee/5/docs/api/javax/servlet/http/HttpServletResponse.html)
- [HttpSession](http://java.sun.com/javaee/5/docs/api/javax/servlet/http/HttpSession.html)
- [KeyGenerator](http://docs.scm-manager.org/apidocs/latest/sonia/scm/security/KeyGenerator.html)
- [RepositoryBrowserUtil](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/RepositoryBrowserUtil.html)
- [RepositoryManager](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/RepositoryManager.html)
- [RepositoryRequestListenerUtil](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/RepositoryRequestListenerUtil.html)
- [ScmConfiguration](http://docs.scm-manager.org/apidocs/latest/sonia/scm/config/ScmConfiguration.html)
- [StoreFactory](http://docs.scm-manager.org/apidocs/latest/sonia/scm/store/StoreFactory.html)
- [UserManager](http://docs.scm-manager.org/apidocs/latest/sonia/scm/user/UserManager.html)
- [WebSecurityContext](http://docs.scm-manager.org/apidocs/latest/sonia/scm/web/security/WebSecurityContext.html)

View File

@@ -1,29 +1,129 @@
Java Client API
---------------
# Java Client API
### Maven
To use the SCM-Manager Java Client API you have to configure the
SCM-Manager maven repository in your pom.xml:
```xml
<repositories>
<repository>
<id>maven.scm-manager.org</id>
<name>scm-manager release repository</name>
<url>http://maven.scm-manager.org/nexus/content/groups/public</url>
</repository>
</repositories>
```
And you have to define the dependency to the api and one implementation:
```xml
<dependencies>
<dependency>
<groupId>sonia.scm.clients</groupId>
<artifactId>scm-client-api</artifactId>
<version>1.60</version>
</dependency>
<dependency>
<groupId>sonia.scm.clients</groupId>
<artifactId>scm-client-impl</artifactId>
<version>1.60</version>
</dependency>
</dependencies>
```
### Usage
First you have to create a session to your SCM-Manager instance:
```java
String url = "http://localhost:8080/scm";
String username = "scmadmin";
String password = "scmadmin";
ScmClientSession session = ScmClient.createSession(url, username, password);
```
After you have successfully created a client session you can nearly
execute every action which is available from the web interface. But do
not forget to close the session after you have finished your work:
```java
session.close();
```
### Examples
Create a new repository:
```java
Repository repository = new Repository();
repository.setName("scm-manager");
repository.setType("hg");
repository.setDescription("The easiest way to share and manage your Git, Mercurial and Subversion repositories over http.");
// set permissions for user sdorra to owner
List<Permission> permissions = new ArrayList<Permission>();
permissions.add(new Permission("sdorra", PermissionType.OWNER));
repository.setPermissions(permissions);
session.getRepositoryHandler().create(repository);
```
Get the last 20 commits of a repository:
```java
RepositoryClientHandler repositoryHandler = session.getRepositoryHandler();
// get the mercurial (hg) repository scm-manager
Repository repository = repositoryHandler.get("hg", "scm-manager");
ClientChangesetHandler changesetHandler = repositoryHandler.getChangesetHandler(repository);
// get 20 changesets started by 0
ChangesetPagingResult changesets = changesetHandler.getChangesets(0, 20);
for ( Changeset c : changesets ){
System.out.println( c.getId() + ": " + c.getDescription() );
```
Print the content of a file in a repository:
```java
RepositoryClientHandler repositoryHandler = session.getRepositoryHandler();
// get the mercurial (hg) repository scm-manager
Repository repository = repositoryHandler.get("hg", "scm-manager");
ClientRepositoryBrowser browser = repositoryHandler.getRepositoryBrowser(repository);
BufferedReader reader = null;
try {
// get the content of the file pom.xml at revision tip
reader = new BufferedReader(new InputStreamReader(browser.getContent("tip", "pom.xml")));
String line = reader.readLine();
while ( line != null ){
System.out.println( line );
line = reader.readLine();
}
} finally {
if ( reader != null ){
reader.close();
}
}
```
Create a new user:
```java
User user = new User("tuser", "Test User", "test.user@test.net");
user.setPassword("test123");
session.getUserHandler().create( user );
```
Add a user to an existing group:
```java
GroupClientHandler groupHandler = session.getGroupHandler();
Group group = groupHandler.get("developers");
group.getMembers().add("tuser");
groupHandler.modify(group);
```

View File

@@ -1,5 +1,4 @@
scm-jenkins-plugin
------------------
# scm-jenkins-plugin
The jenkins plugin will ping your Jenkins CI server when a new commit is
pushed to SCM-Manager. In SCM-Manager exists two differnt methods to

View File

@@ -1,5 +1,4 @@
scm-jira-plugin
---------------
# scm-jira-plugin
The plugin enables the following features to integrate Atlassian JIRA to
SCM-Manager:
@@ -16,11 +15,11 @@ SCM-Manager:
(https://developer.atlassian.com/display/JIRADEV/JIRA+XML-RPC+Overview)
2. Install scm-jira-plugin over the plugin center in scm-manager
3. Be sure that your jira installation accepts remote calls
([Screenshot](screenshots/scm-jira-plugin/jira-plugin-01.png "wikilink"))
([Screenshot](screenshots/scm-jira-plugin/jira-plugin-01.png))
4. Configure the plugin, select a repository to enable the
scm-jira-plugin for this repository
([Screenshot](screenshots/scm-jira-plugin/jira-plugin-02.png "wikilink"))
5. \*\*Note: \*\* For the auto close and update feature it is necessary
([Screenshot](screenshots/scm-jira-plugin/jira-plugin-02.png))
5. **Note**: For the auto close and update feature it is necessary
that users have the same names and passwords in SCM-Manager and Jira
### Auto Close Words (Since v. 1.17)
@@ -41,8 +40,8 @@ close words with transition that are configured in JIRA.
### Screenshots
[](screenshots/scm-jira-plugin/jira-plugin-01.png "wikilink")
[](screenshots/scm-jira-plugin/jira-plugin-02.png "wikilink")
[](screenshots/scm-jira-plugin/jira-plugin-03.png "wikilink")
[](screenshots/scm-jira-plugin/jira-plugin-04.png "wikilink")
[](screenshots/scm-jira-plugin/jira-plugin-05.png "wikilink")
![](screenshots/scm-jira-plugin/jira-plugin-01.png)
![](screenshots/scm-jira-plugin/jira-plugin-02.png)
![](screenshots/scm-jira-plugin/jira-plugin-03.png)
![](screenshots/scm-jira-plugin/jira-plugin-04.png)
![](screenshots/scm-jira-plugin/jira-plugin-05.png)

View File

@@ -1,20 +1,83 @@
scm-mail-plugin
===============
# scm-mail-plugin
The mail plugin provides an central api for sending e-mails. This api
can be used by other plugins.
Configuration
-------------
## Configuration
The scm-mail-plugin provides a single place for the mail server
configurations at Config-\>General-\>Mail Settings.
API Usage
---------
## API Usage
First you have to add the dependency to your pom.xml e.g.:
```xml
<dependency>
<groupId>sonia.scm.plugins</groupId>
<artifactId>scm-mail-plugin</artifactId>
<version>1.4</version>
</dependency>
```
But note you should use at least version 1.15 of scm-plugins as parent.
Now you can use the MailService class via injection e.g.:
```java
import com.google.inject.Inject;
import javax.mail.Message.RecipientType;
import org.codemonkey.simplejavamail.Email;
import sonia.scm.mail.api.MailService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Service for e-mail notifications.
* @author Sebastian Sdorra
*/
public class NotificationService
{
/** logger for NotificationService */
private static final Logger logger = LoggerFactory.getLogger(
NotificationService.class);
private MailService mailService;
/**
* Constructs a new NotificationService.
*
* @param mailService injected mail service
*/
@Inject
public NotificationService(MailService mailService)
{
this.mailService = mailService;
}
/**
* Sends a mail from admin@scm-manager.org to test.user@scm-manager.org,
* if the mail service is configured.
*
* @throws MailSendBatchException
*/
public void sendNotification() throws MailSendBatchException {
// check if the mail service is configured
if ( mailService.isConfigured() ){
// create a new e-mail
Email mail = new Email();
mail.setFromAddress("SCM-Administrator", "admin@scm-manager.org");
mail.addRecipient("Test User", "test.user@scm-manager.org", RecipientType.TO);
mail.setSubject("SCM-Manager notification");
mail.setText("Notification from SCM-Manager");
// send the e-mail
mailService.send(mail);
} else {
// log that the mail service is not configured
logger.warn("mail service is not configured");
}
}
}
```

View File

@@ -1,4 +1,4 @@
== scm-mantisbt-plugin ==
# scm-mantisbt-plugin
The plugin enables the following features to integrate [MantisBT](https://www.mantisbt.org/) to SCM-Manager:

View File

@@ -1,10 +1,8 @@
# SCM-Server and Nginx #
# SCM-Server and Nginx
## Nginx configuration ##
```
#!text
## Nginx configuration
```text
location /scm {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
@@ -14,19 +12,17 @@ location /scm {
}
```
## SCM-Server conf/server-config.xml ##
## SCM-Server conf/server-config.xml
Uncomment following line:
```
#!xml
```xml
<Set name="forwarded">true</Set>
```
Example:
```
#!xml
```xml
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
@@ -43,7 +39,7 @@ Example:
</Call>
```
## SCM-Manager Configuration version 1.5 and above ##
## SCM-Manager Configuration version 1.5 and above
* Login as an admin user and select "General"
* Set the "Base Url" to the URL of Nginx (**warning:** don't check "Force Base Url")
* Save the new new settings

View File

@@ -1,12 +1,11 @@
Path Write Protect Plugin
-------------------------
# Path Write Protect Plugin
### Installation
- Login in as administrator
- Open Plugins
- Install scm-pathwp-plugin
- Restart your applicationserver
- Login in as administrator
- Open Plugins
- Install scm-pathwp-plugin
- Restart your applicationserver
### Usage
@@ -15,19 +14,17 @@ repository. On this tab you are able to set path write protection for
users and groups. Here are some rules for the usage of the pathwp
plugin:
- Administrators and repository owner have always write access.
- Grant write permissions on the \"Permission\" tab for every user or
group who should write to any file or folder in the repository.
- If the pathwp plugin is enabled, nobody can write to the repository
expect administrators, repository owners and the specified rules.
- To protect a complete folder use a star at the end of the path
(e.g.: trunk/\*)
- Administrators and repository owner have always write access.
- Grant write permissions on the \"Permission\" tab for every user or
group who should write to any file or folder in the repository.
- If the pathwp plugin is enabled, nobody can write to the repository
expect administrators, repository owners and the specified rules.
- To protect a complete folder use a star at the end of the path (e.g.: trunk/\*)
Examples
--------
### Examples
\|=Path \|=Name \|=Group Permission \|=Description \| \| \* \| scmadmin
\| false \| user scmadmin has write access to the whole repository \| \|
trunk/\* \| development \| true \| group development has write access to
the trunk directory \| \| trunk/joe.txt \| joe \| false \| user joe has
write access to the file trunk/joe.txt \|
| Path | Name | Group Permission | Description |
| ------------- | ----------- | ---------------- | ---------------------- |
| * | scmadmin | false | user scmadmin has write access to the whole repository |
| trunk/\* | development | true | group development has write access to the trunk directory |
| trunk/joe.txt | joe | false | user joe has write access to the file trunk/joe.txt |

View File

@@ -1,34 +1,70 @@
Plugin Descriptor
-----------------
# Plugin Descriptor
The plugin descriptor contains informations and instructions for the
scm-manager to integrate the plugin. The descriptor is located at
META-INF/scm/plugin.xml in the package of a plugin.
\|=Element \|=Description \|=Multiple \| \| plugin \| Root element of
the plugin descriptor \| \| \| plugin/condition \| Plugin condifitions
\| \| \| plugin/condition/arch \| Processor architecture (x86/amd64) \|
\| \| plugin/condition/min-version \| Minimum version of SCM-Manager \|
\| \| plugin/condition/os \| Operation System \| \| \|
plugin/condition/os/name \| Name of the Operating System \| X \| \|
plugin/information \| Contains informations of the plugin for the plugin
backend \| \| \| plugin/information/artifactId \| Maven artifact id \|
\| \| plugin/information/author \| The Author of the plugin \| \| \|
plugin/information/category \| Category of the plugin \| \| \|
plugin/information/description \| Description of the plugin \| \| \|
plugin/information/groupId \| Maven group id \| \| \|
plugin/information/name \| Name of the plugin \| \| \|
plugin/information/screenshots \| Contains screenshots of the plugin \|
\| \| plugin/information/screenshots/screenshot \| Single screenshot of
the plugin \| X \| \| plugin/information/url \| The url of the plugin
homepage \| \| \| plugin/information/version \| The current version of
the plugin \| \| \| plugin/information/wiki \| The url of a wiki page \|
\| \| plugin/packages \| Java packages which are being searched for
extensions \| \| \| plugin/packages/package \| Single Java packages
which is being searched for extensions \| X \| \| plugin/resources \|
Contains resources for the web interface (stylesheets and JavaScript
files) \| \| \| plugin/resources/script \| JavaScript file for the web
interface \| X \| \| plugin/resources/stylesheet \| Stylesheet for the
web interface \| X \|
| Element | Description | Multiple |
| --- | --- | --- |
| plugin | Root element of the plugin descriptor | |
| plugin/condition | Plugin condifitions | |
| plugin/condition/arch | Processor architecture (x86/amd64) | |
| plugin/condition/min-version | Minimum version of SCM-Manager | |
| plugin/condition/os | Operation System | |
| plugin/condition/os/name | Name of the Operating System | X |
| plugin/information | Contains informations of the plugin for the plugin backend | |
| plugin/information/artifactId | Maven artifact id | |
| plugin/information/author | The Author of the plugin | |
| plugin/information/category | Category of the plugin | |
| plugin/information/description | Description of the plugin | |
| plugin/information/groupId | Maven group id | |
| plugin/information/name | Name of the plugin | |
| plugin/information/screenshots | Contains screenshots of the plugin | |
| plugin/information/screenshots/screenshot | Single screenshot of the plugin | X |
| plugin/information/url | The url of the plugin homepage | |
| plugin/information/version | The current version of the plugin | |
| plugin/information/wiki | The url of a wiki page | |
| plugin/packages | Java packages which are being searched for extensions | |
| plugin/packages/package | Single Java packages which is being searched for extensions | X |
| plugin/resources | Contains resources for the web interface (stylesheets and JavaScript files) | |
| plugin/resources/script | JavaScript file for the web interface | X |
| plugin/resources/stylesheet | Stylesheet for the web interface | X |
Example of the plugin descriptor:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<plugin>
<!--
Informations for the plugin backend.
The elements groupId, artifactId, name, version and url
are automatically added from the pom.xml by a maven plugin (since 1.5).
-->
<information>
<author>Sebastian Sdorra</author>
</information>
<!--
pluigin requires SCM-Manager version 1.7
-->
<conditions>
<min-version>1.7</min-version>
</conditions>
<!--
register package for plugin extension finder
-->
<packages>
<package>sonia.scm.jenkins</package>
</packages>
<!--
register javascript file
-->
<resources>
<script>/sonia/scm/sonia.jenkins.js</script>
</resources>
</plugin>
```

View File

@@ -1,16 +1,14 @@
Redmine Plugin
--------------
# Redmine Plugin
Is based on [scm-jira-plugin](jira-plugin.md "wikilink").
Is based on [scm-jira-plugin](jira-plugin.md).
The plugin enables the following features to integrate SCM-Manager to
[Redmine](http://www.redmine.org/ "wikilink"):
[Redmine](http://www.redmine.org/):
- Turn issue keys in changeset descriptions to links for redmine
- Updates a redmine issue if the issue key is found in a changeset
description
- Close a Redmine issue if the issue key and a auto close (close, fix,
resolve, \...) word is found in the changeset description
- Turn issue keys in changeset descriptions to links for redmine
- Updates a redmine issue if the issue key is found in a changeset description
- Close a Redmine issue if the issue key and a auto close (close, fix, resolve, \...)
word is found in the changeset description
### Installation and configuration
@@ -22,6 +20,6 @@ The plugin enables the following features to integrate SCM-Manager to
redmine-plugin for this repository
4. To link issues commit must be match the following: \'(\#issue\_id)
your commit message\'
5. \*\*Note: \*\* For the auto close and update feature it is necessary
5. **Note**: For the auto close and update feature it is necessary
that users have the same names and passwords in SCM-Manager and
Redmine

View File

@@ -1,625 +1,528 @@
SCM-Manager 1.19
----------------
# Release Notes 1.19 - 1.0
- - improvements\*\*
## SCM-Manager 1.19
- implement new template api which uses mustache as default engine
- display error on startup if home directory is not writable
- use cached thread pool for async hooks to improve memory consumption
- added support for jersey viewables
- do not show browser basic authentication dialog on session timeout
**improvements**
<!-- -->
- implement new template api which uses mustache as default engine
- display error on startup if home directory is not writable
- use cached thread pool for async hooks to improve memory consumption
- added support for jersey viewables
- do not show browser basic authentication dialog on session timeout
- - fixed bugs\*\*
**fixed bugs**
- fix npe on windows startup, see \<\<issue 226\>\>
- fix npe on windows startup, see \<\<issue 226\>\>
<!-- -->
**library updates**
- - library updates\*\*
- update javahg to version 0.4
- update enunciate to version 1.26
- update javahg to version 0.4
- update enunciate to version 1.26
## SCM-Manager 1.18
SCM-Manager 1.18
----------------
**improvements**
- - improvements\*\*
- use javahg for mercurial commit, source, blame, content and diff
- use javahg for mercurial commit, source, blame, content and diff
views
- support for tags in source view
- support for branches in commit view
- improve svnkit logging, see \<\<issue 211\>\>
- improve mercurial error messages, see \<\<issue 192\>\>
- allow configuration of mercurial repository encoding
- warn if plugin artifact checksum not match
- support for tags in source view
- support for branches in commit view
- improve svnkit logging, see \<\<issue 211\>\>
- improve mercurial error messages, see \<\<issue 192\>\>
- allow configuration of mercurial repository encoding
- warn if plugin artifact checksum not match
<!-- -->
**fixed bugs**
- - fixed bugs\*\*
- fix wrong cache result in blame command
- fix wrong escaped subversion commit messages, see \<\<issue 199\>\>
- fix wrong directory content in source browser, see \<\<issue 215\>\>
- fix missing error messages for some json stores
- fix missing localizations
- fix wrong unarchive message
- added missing dtd to server-config.xml
- fix wrong cache result in blame command
- fix wrong escaped subversion commit messages, see \<\<issue 199\>\>
- fix wrong directory content in source browser, see \<\<issue 215\>\>
- fix missing error messages for some json stores
- fix missing localizations
- fix wrong unarchive message
- added missing dtd to server-config.xml
**library updates**
<!-- -->
- update ehcache to version 2.6.0
- update jetty to version 7.6.5.v20120716
- update google guava to version 13.0
- update jersey to version 1.13
- - library updates\*\*
## SCM-Manager 1.17
- update ehcache to version 2.6.0
- update jetty to version 7.6.5.v20120716
- update google guava to version 13.0
- update jersey to version 1.13
**improvements**
SCM-Manager 1.17
----------------
- - improvements\*\*
- new repository api
- log scm-manager version on boot
- use copy on read for repository api caches to fix reference problems
- new repository api
- log scm-manager version on boot
- use copy on read for repository api caches to fix reference problems
with pre processor api
- added api for blame line pre processor
- added compatibility modes for svn 1.7, see \<\<issue 182\>\>
- added warning message if javascript is disabled, see \<\<issue
- added api for blame line pre processor
- added compatibility modes for svn 1.7, see \<\<issue 182\>\>
- added warning message if javascript is disabled, see \<\<issue
178\>\>
- fix ugly login error message, see \<\<issue 183\>\>
- Repository links should use relative paths, see \<\<issue 156\>\>
- Added locale and timezone to support informations
- fix ugly login error message, see \<\<issue 183\>\>
- Repository links should use relative paths, see \<\<issue 156\>\>
- Added locale and timezone to support informations
<!-- -->
**fixed bugs**
- - fixed bugs\*\*
- fix detection of scm-server servlet container
- fix svn version informations
- fix mercurial version informations
- fix mercurial import with non valid mail address in contact field,
- fix detection of scm-server servlet container
- fix svn version informations
- fix mercurial version informations
- fix mercurial import with non valid mail address in contact field,
see \<\<issue 173\>\>
- disable ssl validation for mercurial hook detection, see \<\<issue
- disable ssl validation for mercurial hook detection, see \<\<issue
170\>\>
- fix basic authentication for systems with turkish locale, see
- fix basic authentication for systems with turkish locale, see
\<\<issue 195\>\>
<!-- -->
**library updates**
- - library updates\*\*
- update jgit to version 2.0.0.201206130900-r
- update svnkit to version 1.7.5-1
- update logback to version 1.0.6
- update slf4j to version 1.6.6
- update jgit to version 2.0.0.201206130900-r
- update svnkit to version 1.7.5-1
- update logback to version 1.0.6
- update slf4j to version 1.6.6
## SCM-Manager 1.16
SCM-Manager 1.16
----------------
**improvements**
- - improvements\*\*
- improve mercurial hook error handling
- mercurial hook url auto detection
- cleanup empty directories during repository delete, see \<\<issue
- improve mercurial hook error handling
- mercurial hook url auto detection
- cleanup empty directories during repository delete, see \<\<issue
154\>\>
- use urllib2 for urlopen to be more campatible to different python
- use urllib2 for urlopen to be more campatible to different python
versions, see \<\<issue 163\>\>
- redirect to repository root help when accessing repository type root
- redirect to repository root help when accessing repository type root
url, see \<\<issue 161\>\>
- Add a way to deactivate users, see \<\<issue 153\>\>
- small performance improvements
- store svn uuid as property on repository creation
- allow basic authentication for rest endpoint
- Add a way to deactivate users, see \<\<issue 153\>\>
- small performance improvements
- store svn uuid as property on repository creation
- allow basic authentication for rest endpoint
/api/rest/authentication
- added api for store listeners
- added option to encode svn responses with gzip
- added api for store listeners
- added option to encode svn responses with gzip
<!-- -->
**fixed bugs**
- - fixed bugs\*\*
- do not encode changeset author name, see \<\<issue 160\>\>
- pass shell environment to mercurial cgi process, see \<\<issue
- do not encode changeset author name, see \<\<issue 160\>\>
- pass shell environment to mercurial cgi process, see \<\<issue
155\>\>
- fix mercurial encoding problem on windows, see \<\<issue 139\>\>
- fix changing resource order for plugins
- fix repository name validation, see \<\<issue 148\>\>
- fix mercurial encoding problem on windows, see \<\<issue 139\>\>
- fix changing resource order for plugins
- fix repository name validation, see \<\<issue 148\>\>
<!-- -->
**library updates**
- - library updates\*\*
- update jetty to version 7.6.4.v20120524
- update logback to version 1.0.4
- update jersey-client to version 1.12
- update args4j to version 2.0.21
- update svnkit to version 1.7.4-1.v1
- update jetty to version 7.6.4.v20120524
- update logback to version 1.0.4
- update jersey-client to version 1.12
- update args4j to version 2.0.21
- update svnkit to version 1.7.4-1.v1
## SCM-Manager 1.15
SCM-Manager 1.15
----------------
**improvements**
- - improvements\*\*
- added information page for service requests
- templates can be loaded from webapp context or classpath
- allow sourcing in /etc/default/scm-server when available, see
- added information page for service requests
- templates can be loaded from webapp context or classpath
- allow sourcing in /etc/default/scm-server when available, see
\<\<issue 145\>\>
- display user informations on the bottom of the page, see \<\<issue
- display user informations on the bottom of the page, see \<\<issue
146\>\>
- improve mercurial error messages, see \<\<issue 138\>\>
- improve logging for plugin loading
- added public and archived option to modify-repository sub command of
- improve mercurial error messages, see \<\<issue 138\>\>
- improve logging for plugin loading
- added public and archived option to modify-repository sub command of
scm-cli-client
<!-- -->
**fixed bugs**
- - fixed bugs\*\*
- disable jsvc arch call to fix wrong cpu problem on darwin i386
- disable jsvc arch call to fix wrong cpu problem on darwin i386
daemon
- fix wrong german localization, see \<\<issue 122\>\>
- fix build with jdk7
- fix bug in repository name validation, see \<\<issue 142\>\> and
- fix wrong german localization, see \<\<issue 122\>\>
- fix build with jdk7
- fix bug in repository name validation, see \<\<issue 142\>\> and
\<\<issue 144\>\>
- fix subversion path not found on merge, see \<\<issue 136\>\>
- fix subversion lock results in NoSuchMethodError, see \<\<issue
- fix subversion path not found on merge, see \<\<issue 136\>\>
- fix subversion lock results in NoSuchMethodError, see \<\<issue
130\>\>
- fix possible xss in Acitivities View, Repository Commits, see
- fix possible xss in Acitivities View, Repository Commits, see
\<\<issue 131\>\>
- fix plugin installation failed with enabled proxy server, see
- fix plugin installation failed with enabled proxy server, see
\<\<issue 124\>\>
- fix wrong changeset url in ui url provider
- fix wrong changeset url in ui url provider
<!-- -->
**library updates**
- - library updates\*\*
- update google guava to version 12.0
- update logback to version 1.0.3
- update google guava to version 12.0
- update logback to version 1.0.3
## SCM-Manager 1.14
SCM-Manager 1.14
----------------
**improvements**
- - improvements\*\*
- archive for repositories, see \<\<issue 42\>\>
- simpler api to create other backend as the default xml version
- api for overriding core components
- extensionpoint for ServletContextListener
- improved error dialog in user interface, see \<\<issue 107\>\>
- improve german locale
- archive for repositories, see \<\<issue 42\>\>
- simpler api to create other backend as the default xml version
- api for overriding core components
- extensionpoint for ServletContextListener
- improved error dialog in user interface, see \<\<issue 107\>\>
- improve german locale
**fixed bugs**
<!-- -->
- - fixed bugs\*\*
- fix wrong log messages
- fix repository creation failure leaves empty directory, see
- fix wrong log messages
- fix repository creation failure leaves empty directory, see
\<\<issue 106\>\>
- fix mercurial repository source does not display with
- fix mercurial repository source does not display with
subrepositories, see \<\<issue 104\>\>
- fix history repository selection
- fix history repository selection
<!-- -->
**library updates**
- - library updates\*\*
- update jetty to version 7.6.3.v20120416
- update logback to version 1.0.1
- update ehcache to version 2.5.2
- update commons-daemon to version 1.0.10, see \<\<issue 103\>\>
- update jetty to version 7.6.3.v20120416
- update logback to version 1.0.1
- update ehcache to version 2.5.2
- update commons-daemon to version 1.0.10, see \<\<issue 103\>\>
## SCM-Manager 1.13
SCM-Manager 1.13
----------------
**improvements**
- - improvements\*\*
- more robust python modules to access mercurial resources
- added disable option to each core plugin
- more robust python modules to access mercurial resources
- added disable option to each core plugin
**fixed bugs**
<!-- -->
- - fixed bugs\*\*
- fix changing etags for collections
- fix missing hooks of mercurial repository import, see \<\<issue
- fix changing etags for collections
- fix missing hooks of mercurial repository import, see \<\<issue
97\>\>
- fix anonymous push to public mercurial repositories, see \<\<issue
- fix anonymous push to public mercurial repositories, see \<\<issue
97\>\>
- execute \"hg init\" in the scm home directory instead of current
- execute \"hg init\" in the scm home directory instead of current
working directory, see \<\<issue 97\>\>
- use repository directory as working directory for git repository
- use repository directory as working directory for git repository
hooks, see \<\<issue 99\>\>
- do not fail on non basic authorization header
- fix mercurial encoding problem, see \<\<issue 95\>\>
- fix issue-94 can\'t edit users, see \<\<issue 94\>\>
- do not fail on non basic authorization header
- fix mercurial encoding problem, see \<\<issue 95\>\>
- fix issue-94 can\'t edit users, see \<\<issue 94\>\>
<!-- -->
**library updates**
- - library updates\*\*
- update freemarker to version 2.3.19
- update jetty to version 7.6.1.v20120215
- update jgit to version 1.3.0.201202151440-r
- update jersey to version 1.12
- update freemarker to version 2.3.19
- update jetty to version 7.6.1.v20120215
- update jgit to version 1.3.0.201202151440-r
- update jersey to version 1.12
## SCM-Manager 1.12
SCM-Manager 1.12
----------------
**improvements**
- - improvements\*\*
- new theme
- support for mercurial 2.1
- import of existing repositories, see \<\<issue 59\>\>
- new changeset view
- show categories in plugin overview
- added api for project stages
- added api to fetch a single changeset
- new theme
- support for mercurial 2.1
- import of existing repositories, see \<\<issue 59\>\>
- new changeset view
- show categories in plugin overview
- added api for project stages
- added api to fetch a single changeset
**fixed bugs**
<!-- -->
- allow usernames \< 3 chars, see pull request 2
- git: use author ident instead of commit ident
- fix plugin resource caching bug
- mercurial: fix getChangesets of post receive hooks
- fix history bug during repository selection
- - fixed bugs\*\*
**library updates**
- allow usernames \< 3 chars, see pull request 2
- git: use author ident instead of commit ident
- fix plugin resource caching bug
- mercurial: fix getChangesets of post receive hooks
- fix history bug during repository selection
- update jetty to version 7.6.0.v20120127
- update maven for aether to version 3.0.4
- update ehcache to version 2.5.1
<!-- -->
##SCM-Manager 1.11
- - library updates\*\*
**improvements**
- update jetty to version 7.6.0.v20120127
- update maven for aether to version 3.0.4
- update ehcache to version 2.5.1
- allow to fetch repositories by type and name
- added icon for tags
- show parent revision in changeset viewer
- added repository browser support for external git submodules
SCM-Manager 1.11
----------------
**fixed bugs**
- - improvements\*\*
- allow to fetch repositories by type and name
- added icon for tags
- show parent revision in changeset viewer
- added repository browser support for external git submodules
<!-- -->
- - fixed bugs\*\*
- fix wrong svn diff
- fix wrong revision for sub module repository browser
- fix basic authentication access with a colon in the user password,
- fix wrong svn diff
- fix wrong revision for sub module repository browser
- fix basic authentication access with a colon in the user password,
see \<\<issue 88\>\>
- fix git hooks for repository structures
- fix subversion hooks on windows with repository structure
- fix mercurial hooks on windows with repository structure
- fix wrong mercurial revisions in urls
- fix svn hooks for repositories located on soft links
- fix bug in appendParameter method of UrlBuilder
- truncate long svn status lines, see \<\<issue 83\>\>
- fix git hooks for repository structures
- fix subversion hooks on windows with repository structure
- fix mercurial hooks on windows with repository structure
- fix wrong mercurial revisions in urls
- fix svn hooks for repositories located on soft links
- fix bug in appendParameter method of UrlBuilder
- truncate long svn status lines, see \<\<issue 83\>\>
SCM-Manager 1.10
----------------
## SCM-Manager 1.10
- - improvements\*\*
**improvements**
- small performance improvements
- added basic support for external mercurial subrepositories
- added repository request listener api
- added file object pre processor api
- small performance improvements
- added basic support for external mercurial subrepositories
- added repository request listener api
- added file object pre processor api
<!-- -->
**fixed bugs**
- - fixed bugs\*\*
- fix vertical scrollbar in webkit based browsers
- fix mercurial push with symbolic links, see \<\<issue 82\>\>
- fix wrong decoding in hgweb, see \<\<issue 79\>\>
- fix plugin installation with a proxy server, see \<\<issue 76\>\>
- fix \"Allow anonymous access\" breaks access to private
- fix vertical scrollbar in webkit based browsers
- fix mercurial push with symbolic links, see \<\<issue 82\>\>
- fix wrong decoding in hgweb, see \<\<issue 79\>\>
- fix plugin installation with a proxy server, see \<\<issue 76\>\>
- fix \"Allow anonymous access\" breaks access to private
repositories, see \<\<issue 77\>\>
<!-- -->
**library updates**
- - library updates\*\*
- update args4j to version 2.0.19
- update aether to version 1.13.1
- update jersey to version 1.11
- update jgit to version 1.2.0.201112221803-r
- update svnkit to version 1.3.7.1
- update args4j to version 2.0.19
- update aether to version 1.13.1
- update jersey to version 1.11
- update jgit to version 1.2.0.201112221803-r
- update svnkit to version 1.3.7.1
## SCM-Manager 1.9
SCM-Manager 1.9
---------------
**improvements**
- - improvements\*\*
- Support for directory structure, see \<\<issue 47\>\>
- Added webservice method to fetch repository by its type and name
- Mercurial auto configuration support for homebrew installations
- Improve httpclient api to support headers and authentication
- Reimplemented browser history functions
- SCM-Manager is now complete bookmark-able
- Added api to create urls for the interface or the webservice
- Improve interface performance by reducing Ext.getCmp calls
- Added history panel for a single file, see pull request 1
- Added wiki categories, wiki and screenshots to plugin descriptor
- Added version and server-version to scm-cli-client
- Improve performance by better repository caching
- Support for directory structure, see \<\<issue 47\>\>
- Added webservice method to fetch repository by its type and name
- Mercurial auto configuration support for homebrew installations
- Improve httpclient api to support headers and authentication
- Reimplemented browser history functions
- SCM-Manager is now complete bookmark-able
- Added api to create urls for the interface or the webservice
- Improve interface performance by reducing Ext.getCmp calls
- Added history panel for a single file, see pull request 1
- Added wiki categories, wiki and screenshots to plugin descriptor
- Added version and server-version to scm-cli-client
- Improve performance by better repository caching
**fixed bugs**
<!-- -->
- - fixed bugs\*\*
- fix bug in get method of repository resource
- fix issue \"Administrator flag is disabled after login\", see
- fix bug in get method of repository resource
- fix issue \"Administrator flag is disabled after login\", see
\<\<issue 73\>\>
- Allow usernames with spaces, see \<\<issue 69\>\>
- fix rolling file policy of scm-manager logging
- fix mercurial hooks with configured force base url
- fix mercurial hooks with apache mod\_proxy, see \<\<issue 71\>\>
- Allow usernames with spaces, see \<\<issue 69\>\>
- fix rolling file policy of scm-manager logging
- fix mercurial hooks with configured force base url
- fix mercurial hooks with apache mod\_proxy, see \<\<issue 71\>\>
<!-- -->
**library updates**
- - library updates\*\*
- update jersey to version 1.10
- update slf4j to verion 1.6.4
- update logback to version 1.0.0
- update jetty to version 7.5.4.v20111024
- update jersey to version 1.10
- update slf4j to verion 1.6.4
- update logback to version 1.0.0
- update jetty to version 7.5.4.v20111024
## SCM-Manager 1.8
SCM-Manager 1.8
---------------
**improvements**
- - improvements\*\*
- support for pre receive hooks, see \<\<issue 62\>\>
- scm-maven-plugin are now useable for integration tests
- added readme file to server bundles
- support for mercurial 1.9
- improve mercurial performance
- support for blame/annotation view, special thanks to narva.com
- support for Diff views of changesets
- added basic authentication support to restful webservice
- generate webservice documentation
- improve javadoc
- download for single files from repository
- support for pre receive hooks, see \<\<issue 62\>\>
- scm-maven-plugin are now useable for integration tests
- added readme file to server bundles
- support for mercurial 1.9
- improve mercurial performance
- support for blame/annotation view, special thanks to narva.com
- support for Diff views of changesets
- added basic authentication support to restful webservice
- generate webservice documentation
- improve javadoc
- download for single files from repository
**fixed bugs**
<!-- -->
- Fixed bug in git repositories without head
- - fixed bugs\*\*
**library updates**
- Fixed bug in git repositories without head
- update jetty to version 7.5.1.v20110908
- update aether to version 1.13
- update ehcache to version 2.4.5
- update logback to version 0.9.30
- update jgit to version 1.1.0.201109151100-r
- update jersey to version 1.9
<!-- -->
## SCM-Manager 1.7
- - library updates\*\*
**improvements**
- update jetty to version 7.5.1.v20110908
- update aether to version 1.13
- update ehcache to version 2.4.5
- update logback to version 0.9.30
- update jgit to version 1.1.0.201109151100-r
- update jersey to version 1.9
SCM-Manager 1.7
---------------
- - improvements\*\*
<!-- -->
- added repository search and repository type filter to user
- added repository search and repository type filter to user
interface, see \<\<issue 48\>\>
- handle browser back and forward buttons
- improve output of mercurial hooks
- added injection support for authentication, group, repository, user
- handle browser back and forward buttons
- improve output of mercurial hooks
- added injection support for authentication, group, repository, user
and hook listeners
- added cipher api
- select new repository after creation
- added option to configure the scm home directory with a classpath
- added cipher api
- select new repository after creation
- added option to configure the scm home directory with a classpath
resource, see \<\<issue 53\>\>
- support for proxyservers with authentication, see
[ko7eGU88rB4](https://groups.google.com/forum/#!topic/scmmanager/ko7eGU88rB4 "wikilink")
- improve changeset pre processor api
- improve support for repository, group and user properties
- support for proxyservers with authentication, see
[ko7eGU88rB4](https://groups.google.com/forum/#!topic/scmmanager/ko7eGU88rB4 "Plugins through http auth proxy?")
- improve changeset pre processor api
- improve support for repository, group and user properties
<!-- -->
**fixed bugs**
- - fixed bugs\*\*
<!-- -->
- show installed plugins without internet connection, see \<\<issue
- show installed plugins without internet connection, see \<\<issue
44\>\>
- fix git svn clone, see \<\<issue 45\>\>
- fix wron chanllenge bug in mercurial hook management
- fix jdk7 build bug
- fix a classloading problem in scmp:run maven goal
- fix bug in property xml serialization
- fix git svn clone, see \<\<issue 45\>\>
- fix wron chanllenge bug in mercurial hook management
- fix jdk7 build bug
- fix a classloading problem in scmp:run maven goal
- fix bug in property xml serialization
<!-- -->
**library updates**
- - library updates\*\*
- update ehcache to version 2.4.4
- update slf4j to version 1.6.2
- update junit to version 4.9
<!-- -->
## SCM-Manager 1.6
- update ehcache to version 2.4.4
- update slf4j to version 1.6.2
- update junit to version 4.9
**note**
SCM-Manager 1.6
---------------
- GlassFish 3.x users have to change their GlassFish configuration,
see [SCM-Manager with GlassFish](glassfish.md)
- - note\*\*
**improvements**
- GlassFish 3.x users have to change their GlassFish configuration,
see [SCM-Manager with GlassFish](glassfish "wikilink")
- added an api for repository hooks
- support for git post-receive hook
- improved performance for source and commit viewer
- added loading mask of commit viewer
- added run as admin api
- improved validaton of user, group and repository names
- simplify plugin development
- added icons to member and permission grid
- added properties to repositories, users and groups
<!-- -->
**fixed bugs**
- - improvements\*\*
- added an api for repository hooks
- support for git post-receive hook
- improved performance for source and commit viewer
- added loading mask of commit viewer
- added run as admin api
- improved validaton of user, group and repository names
- simplify plugin development
- added icons to member and permission grid
- added properties to repositories, users and groups
<!-- -->
- - fixed bugs\*\*
- fixed deployment bug on some tomcat configurations, \<\<issue 38\>\>
- fixed NullPointerException with empty git repositories, \<\<issue
- fixed deployment bug on some tomcat configurations, \<\<issue 38\>\>
- fixed NullPointerException with empty git repositories, \<\<issue
36\>\>
- fixed source and commit browser for git repositories without HEAD
- fixed source and commit browser for git repositories without HEAD
ref
- fixed missing updates in plugin overview
- fixed plugin update
- fixed xml representation of changeset webservice resource
- fixed error 500 in mercurial repository browser with configured
- fixed missing updates in plugin overview
- fixed plugin update
- fixed xml representation of changeset webservice resource
- fixed error 500 in mercurial repository browser with configured
python path
<!-- -->
**library updates**
- - library updates\*\*
- upgraded jetty to version 7.4.5.v20110725
- upgraded wagon to version 1.0
- upgraded ehcache to version 2.4.3
- upgraded aether to version 1.12
- upgraded jetty to version 7.4.5.v20110725
- upgraded wagon to version 1.0
- upgraded ehcache to version 2.4.3
- upgraded aether to version 1.12
## SCM-Manager 1.5
SCM-Manager 1.5
---------------
**note**
- - note\*\*
- mod\_proxy users have to change their configuration, see [mod\_proxy configuration](apache/apache-mod_proxy.md)
- mod\_proxy users have to change their configuration, see [mod\_proxy configuration](apache/apache-mod_proxy.md "wikilink")
**improvements**
<!-- -->
- added a \"repositorybrowser\"
- added missing error messages on session timeout
- support for mod\_proxy forward with ssl, see \<\<issue 32\>\>
- added toolbar icons for add, remove and refresh action
- - improvements\*\*
**fixed bugs**
- added a \"repositorybrowser\"
- added missing error messages on session timeout
- support for mod\_proxy forward with ssl, see \<\<issue 32\>\>
- added toolbar icons for add, remove and refresh action
<!-- -->
- - fixed bugs\*\*
- fixed javascript error on loginwindow cancelbutton click
- fixed bug with non default git repository directory, see \<\<issue
- fixed javascript error on loginwindow cancelbutton click
- fixed bug with non default git repository directory, see \<\<issue
29\>\>
<!-- -->
**library updates**
- - library updates\*\*
- upgraded jersey to version 1.8
- upgraded jgit to version 1.0.0.201106090707-r
- upgraded jersey to version 1.8
- upgraded jgit to version 1.0.0.201106090707-r
## SCM-Manager 1.4
SCM-Manager 1.4
---------------
**improvements**
- - improvements\*\*
- support for IE 9
- using tabs for group details
- support for IE 9
- using tabs for group details
**fixed bugs**
<!-- -->
- fixed svn move command, see \<\<issue 25\>\>
- fixed svn log command, see \<\<issue 25\>\>
- - fixed bugs\*\*
**library updates**
- fixed svn move command, see \<\<issue 25\>\>
- fixed svn log command, see \<\<issue 25\>\>
- upgraded jersey-ahc-client to version 1.0.2
- upgraded jersey-client to version 1.7
- upgraded logback to version 0.9.29
- upgraded extjs to version 3.4.0
<!-- -->
## SCM-Manager 1.3
- - library updates\*\*
**improvements**
- upgraded jersey-ahc-client to version 1.0.2
- upgraded jersey-client to version 1.7
- upgraded logback to version 0.9.29
- upgraded extjs to version 3.4.0
- added a client api
- added a commandline client
- added support for proxy servers, see \<\<issue 14\>\>
- improved plugin page
- improved session timeout handling, see \<\<issue 23\>\>
- move logging configuration to \"conf\" folder of scm-server
SCM-Manager 1.3
---------------
**fixed bugs**
- - improvements\*\*
- svn: fixed wrong content-length in DAVServlet, see \<\<issue 24\>\>
- svn: fixed wrong encoding, see \<\<issue 22\>\>
- added a client api
- added a commandline client
- added support for proxy servers, see \<\<issue 14\>\>
- improved plugin page
- improved session timeout handling, see \<\<issue 23\>\>
- move logging configuration to \"conf\" folder of scm-server
**library updates**
<!-- -->
- upgraded jetty to version 7.4.2.v20110526
- upgraded google guice to version 3.0
- upgraded ehcache to version 2.4.2
- upgraded freemarker to version 2.3.18
- upgraded jersey to version 1.7
- - fixed bugs\*\*
## SCM-Manager 1.2
- svn: fixed wrong content-length in DAVServlet, see \<\<issue 24\>\>
- svn: fixed wrong encoding, see \<\<issue 22\>\>
**improvements**
<!-- -->
- added a \"changesetviewer\"
- using tabs for repository configuration
- added a configuration wizard for mercurial
- the date format is now configurable
- added a repository information panel
- new cgi api
- added subversion compatibility switches, see \<\<issue 13\>\>
- - library updates\*\*
**fixed bugs**
- upgraded jetty to version 7.4.2.v20110526
- upgraded google guice to version 3.0
- upgraded ehcache to version 2.4.2
- upgraded freemarker to version 2.3.18
- upgraded jersey to version 1.7
- fixed ssl support in scm-server, see \<\<issue 9\>\>
- fixed ssl support in mercurial cgi servlet, see \<\<issue 9\>\>
- fixed a browser window resize bug, see \<\<issue 10\>\>
- fixed bug with spaces in the scm home path, see \<\<issue 11\>\>
SCM-Manager 1.2
---------------
**library updates**
- - improvements\*\*
- upgrade freemarker to version 2.3.16
- upgrade jersey to version 1.6
- upgrade ehcache to version 2.4.1
- upgrade jgit to version 0.12.1
- added a \"changesetviewer\"
- using tabs for repository configuration
- added a configuration wizard for mercurial
- the date format is now configurable
- added a repository information panel
- new cgi api
- added subversion compatibility switches, see \<\<issue 13\>\>
## SCM-Manager 1.1
<!-- -->
- - fixed bugs\*\*
- fixed ssl support in scm-server, see \<\<issue 9\>\>
- fixed ssl support in mercurial cgi servlet, see \<\<issue 9\>\>
- fixed a browser window resize bug, see \<\<issue 10\>\>
- fixed bug with spaces in the scm home path, see \<\<issue 11\>\>
<!-- -->
- - library updates\*\*
- upgrade freemarker to version 2.3.16
- upgrade jersey to version 1.6
- upgrade ehcache to version 2.4.1
- upgrade jgit to version 0.12.1
SCM-Manager 1.1
---------------
- Support for Unix-Daemons and Windows-Services
- Support for localization
- German localization
- Help tooltips
- New Plugin-Backend
- Support for Unix-Daemons and Windows-Services
- Support for localization
- German localization
- Help tooltips
- New Plugin-Backend

View File

@@ -1,7 +1,9 @@
# Release Notes 1.39 - 1.20
SCM-Manager 1.39
----------------
- - improvements\*\*
**improvements**
- created rpm and deb packages for scm-server
- improve error handling of permission system
@@ -11,9 +13,9 @@ SCM-Manager 1.39
- implemented marker interface for plugin class loaders to make it
easier to find class loader leaks
<!-- -->
- - fixed bugs\*\*
**fixed bugs**
- fix mailto links
- fix automatic start as service on windows server 2012, see \<\<issue
@@ -29,9 +31,9 @@ SCM-Manager 1.39
- fix marshalling exception on plugin installation with rest api, see
\<\<issue \#578\>\>
<!-- -->
- - library updates\*\*
**library updates**
- update mustache to version 0.8.15
- update jgit to version 3.4.0.201406110918-r
@@ -41,7 +43,7 @@ SCM-Manager 1.39
SCM-Manager 1.38
----------------
- - fixed bugs\*\*
**fixed bugs**
- fix NoClassDefFoundError in scm-cli-client, see issue \<\<issue
\#576\>\>
@@ -55,7 +57,7 @@ SCM-Manager 1.38
SCM-Manager 1.37
----------------
- - improvements\*\*
**improvements**
- improved git error messages for failed authentication and not enough
permissions
@@ -65,9 +67,9 @@ SCM-Manager 1.37
- update last modified date of a repository after each push
- added hidden last modified column to repository grid
<!-- -->
- - fixed bugs\*\*
**fixed bugs**
- resolve dependency resolution conflicts, see \<\<issue 541\>\>,
\<\<issue 549\>\> and \<\<issue 558\>\>
@@ -79,9 +81,9 @@ SCM-Manager 1.37
\<\<issue 548\>\>
- subversion cannot delete properties, see \<\<issue 547\>\>
<!-- -->
- - library updates\*\*
**library updates**
- update jetty to version 7.6.15.v20140411
- update svnkit to version 1.8.5-scm1
@@ -93,18 +95,18 @@ SCM-Manager 1.37
SCM-Manager 1.36
----------------
- - improvements\*\*
**improvements**
- added feature to set custom realm description, see [PR
16](https://bitbucket.org/sdorra/scm-manager/pull-request/16/add-feature-to-set-custom-realm "wikilink")
16](https://bitbucket.org/sdorra/scm-manager/pull-request/16/add-feature-to-set-custom-realm)
- added option to skip failed authenticators
- cli-client: allow retrieving repositories by using type/name instead
of repository id
- implemented repository health checks
<!-- -->
- - fixed bugs\*\*
**fixed bugs**
- solve classloading issues for plugin classes
- fix changing passwords which a shorter than 5 chars, see issue
@@ -119,9 +121,9 @@ SCM-Manager 1.36
- fix bug with some special chars in SearchUtil
- fix mercurial out of scope exception on startup
<!-- -->
- - library updates\*\*
**library updates**
- update args4j 2.0.26
- update svnkit to version 1.8.4-scm1
@@ -135,35 +137,35 @@ SCM-Manager 1.36
SCM-Manager 1.35
----------------
- - improvements\*\*
**improvements**
- Spanish translation, see [PR
9](https://bitbucket.org/sdorra/scm-manager/pull-request/9/spanish-translation "wikilink")
9](https://bitbucket.org/sdorra/scm-manager/pull-request/9/spanish-translation)
thanks to [Ángel L.
García](https://bitbucket.org/algarcia "wikilink")
García](https://bitbucket.org/algarcia)
- added auto-login filter system, see [PR
4](https://bitbucket.org/sdorra/scm-manager/pull-request/4/modifications-for-auto-login "wikilink")
thanks to [Clemens Rabe](https://bitbucket.org/seeraven "wikilink")
4](https://bitbucket.org/sdorra/scm-manager/pull-request/4/modifications-for-auto-login)
thanks to [Clemens Rabe](https://bitbucket.org/seeraven)
- added property to disable escaping for blame, browse, log command
and hooks, see \<\<issue 505\>\>
- remove cancel button on login window if anonymous access is
disabled, see \<\<issue 396\>\>
- syntax highlighting for c, h, hh and cc files, see [PR
11](https://bitbucket.org/sdorra/scm-manager/pull-request/11/c-java-extensions-added-to "wikilink")
thanks to [pankaj azad](https://bitbucket.org/pankajazad "wikilink")
11](https://bitbucket.org/sdorra/scm-manager/pull-request/11/c-java-extensions-added-to)
thanks to [pankaj azad](https://bitbucket.org/pankajazad)
- custom subversion collection renderer
- use full message instead of short message for git commits, see
\<\<issue 474\>\>
- improved german translation, see [PR
5](https://bitbucket.org/sdorra/scm-manager/pull-request/5/german-translation-adjusted/diff "wikilink")
thanks to [Ahmed Saad](https://bitbucket.org/saadous "wikilink")
5](https://bitbucket.org/sdorra/scm-manager/pull-request/5/german-translation-adjusted/diff)
thanks to [Ahmed Saad](https://bitbucket.org/saadous)
- use same validation rules for user and group names, see \<\<issue
470\>\>
- added brushes for applescript and sass
<!-- -->
- - fixed bugs\*\*
**fixed bugs**
- fixed file leak, see \<\<issue 500\>\>
- fixed double escaping, see \<\<issue 505\>\>
@@ -178,9 +180,9 @@ SCM-Manager 1.35
see \<\<issue 464\>\>
- fix wrong sql brush filename, see \<\<issue 461\>\>
<!-- -->
- - library updates\*\*
**library updates**
- update jetty to 7.6.14.v20131031
- update jersey to 1.18
@@ -193,7 +195,7 @@ SCM-Manager 1.35
SCM-Manager 1.34
----------------
- - improvements\*\*
**improvements**
- allow multi line mercurial messages
- change order of permission column and use a more robust cell editor
@@ -203,9 +205,9 @@ SCM-Manager 1.34
- added configuration changed event
- implement login attempt handler to handle failed authentications
<!-- -->
- - fixed bugs\*\*
**fixed bugs**
- fix bug with user events and decorated user managers
- fix hg push fails with \'URLError\' object has no attribute
@@ -222,9 +224,9 @@ SCM-Manager 1.34
- fix out of scope exception on access hgcontext, see \<\<issue
451\>\>
<!-- -->
- - library updates\*\*
**library updates**
- update jetty to 7.6.13.v20130916
- update guava to version 15.0
@@ -232,7 +234,7 @@ SCM-Manager 1.34
SCM-Manager 1.33
----------------
- - improvements\*\*
**improvements**
- added api to bypass changeset pre processors during hook
- added api to send messages back to scm client during hook
@@ -240,9 +242,9 @@ SCM-Manager 1.33
- introduce Event annotation to mark event classes which are
receiveable over the event system
<!-- -->
- - fixed bugs\*\*
**fixed bugs**
- fix login window scrollbars on linux with firefox 21, see \<\<issue
411\>\>
@@ -259,9 +261,9 @@ SCM-Manager 1.33
- fix handling of pending changesets during pre receive repository
hooks
<!-- -->
- - library updates\*\*
**library updates**
- update jgit to 3.0.0.201306101825-r
- update args4j to version 2.0.25
@@ -274,16 +276,16 @@ SCM-Manager 1.33
SCM-Manager 1.32
----------------
- - improvements\*\*
**improvements**
- added support for subversion 1.8 and ra\_serf (\<\<issue 222\>\>,
\<\<issue 406\>\>)
- added detection eclipse jetty (standalone) to
ServletContainerDetector (pull request 3)
<!-- -->
- - fixed bugs\*\*
**fixed bugs**
- fix loading of cache configurations from plugins
- resolve conflicts for plugins and plugin dependencies
@@ -295,7 +297,7 @@ SCM-Manager 1.32
SCM-Manager 1.31
----------------
- - improvements\*\*
**improvements**
- added first access url and credentials to readme
- option to assign global access permissions to users and groups
@@ -311,9 +313,9 @@ SCM-Manager 1.31
parent
- create and deploy package for rest documentation
<!-- -->
- - fixed bugs\*\*
**fixed bugs**
- fix wrong message for deleting repositories (\<\<issue 370\>\>)
- fix button handling on repository grid with enabled archive mode
@@ -326,9 +328,9 @@ SCM-Manager 1.31
395\>\>)
- fix daemon mode on some operating systems (\<\<issue 397\>\>)
<!-- -->
- - library updates\*\*
**library updates**
- update logback to version 1.0.13
- update svnkit to version 1.7.9-scm1
@@ -341,14 +343,14 @@ SCM-Manager 1.31
SCM-Manager 1.30
----------------
- - fixed bugs\*\*
**fixed bugs**
- fix missing copy strategy in guava cache configuration
SCM-Manager 1.29
----------------
- - improvements\*\*
**improvements**
- use guava as default cache implementation (\<\<issue 345\>\>)
- merge cache configuration from default location, config directory
@@ -363,9 +365,9 @@ SCM-Manager 1.29
- use template engine and repository service for git repository page
(\<\<issue 341\>\>)
<!-- -->
- - fixed bugs\*\*
**fixed bugs**
- synchronize getCache method of cache manager implementations
(\<\<issue 345\>\>)
@@ -381,9 +383,9 @@ SCM-Manager 1.29
- sonia.scm.net.HttpRequest.appendValues() adds parameter values twice
(\<\<issue 342\>\>)
<!-- -->
- - library updates\*\*
**library updates**
- update ehcache to version 2.6.5
- update jersey to version 1.17.1
@@ -397,7 +399,7 @@ SCM-Manager 1.29
SCM-Manager 1.28
----------------
- - improvements\*\*
**improvements**
- added scm.home example for windows, see \<\<issue 328\>\>
- disable directory listings on default scm-server configuration
@@ -407,9 +409,9 @@ SCM-Manager 1.28
- use async cache for scm realm
- improve manager exception handling
<!-- -->
- - fixed bugs\*\*
**fixed bugs**
- fix path traversal vulnerability in git changelog api, see \<\<issue
319\>\>
@@ -423,15 +425,15 @@ SCM-Manager 1.28
SCM-Manager 1.27
----------------
- - improvements\*\*
**improvements**
- exclude commons-logging and use jcl-over-slf4j instead
- icons of repository browser should be clickable
- post authentication events to the new event system
<!-- -->
- - fixed bugs\*\*
**fixed bugs**
- fix binding of extensions with eager singleton scope
- fix bug with registration of multiple authentication listeners
@@ -441,7 +443,7 @@ SCM-Manager 1.27
SCM-Manager 1.26
----------------
- - improvements\*\*
**improvements**
- use localStorage to store state of the user interface
- improve logging of plugin installer
@@ -450,9 +452,9 @@ SCM-Manager 1.26
- added recursive option to browse command
- added option to disable sub repository detection of browse command
<!-- -->
- - fixed bugs\*\*
**fixed bugs**
- normalize urls for BaseUrlFilter to prevent redirect loops, see
\<\<issue 311\>\>
@@ -462,23 +464,23 @@ SCM-Manager 1.26
- synchronize getChangeset method of hook events and call registered
pre processors before the changesets are returned to hook
<!-- -->
- - library updates\*\*
**library updates**
- update jersey to version 1.17
SCM-Manager 1.25
----------------
- - improvements\*\*
**improvements**
- added feature api for specific repository types
- improve logging of plugin installer
<!-- -->
- - fixed bugs\*\*
**fixed bugs**
- fix svn make and put with Polish characters in path, see \<\<issue
298\>\>
@@ -489,9 +491,9 @@ SCM-Manager 1.25
- fix installing plugin package breaks classpath.xml, see \<\<issue
306\>\>
<!-- -->
- - library updates\*\*
**library updates**
- update svnkit to version 1.7.8-scm1
- update ehcache to version 2.6.3
@@ -502,14 +504,14 @@ SCM-Manager 1.25
SCM-Manager 1.24
----------------
- - fixed bugs\*\*
**fixed bugs**
- fix wrong default date format
SCM-Manager 1.23
----------------
- - improvements\*\*
**improvements**
- new event api based on guavas EventBus
- added option to exclude hosts from proxy, see \<\<issue 281\>\>
@@ -523,9 +525,9 @@ SCM-Manager 1.23
- prepare server-config.xml for request logging
- improve javadoc
<!-- -->
- - fixed bugs\*\*
**fixed bugs**
- use system environment when executing \"hg create\"
- fix build from source, see \<\<issue 289\>\>
@@ -538,9 +540,9 @@ SCM-Manager 1.23
- fix mercurial sub repository detection in source browser
- fix non closing client response
<!-- -->
- - library updates\*\*
**library updates**
- update selenium to version 2.28.0
- update svnkit to version 1.7.6-scm3
@@ -554,7 +556,7 @@ SCM-Manager 1.23
SCM-Manager 1.22
----------------
- - improvements\*\*
**improvements**
- store expanded/collapsed state of groupingviews across sessions, see
\<\<issue 268\>\>
@@ -562,15 +564,15 @@ SCM-Manager 1.22
- added method to read templates from a reader
- added repository type icons to grid
<!-- -->
- - fixed bugs\*\*
**fixed bugs**
- fix permission autocomplete, see \<\<issue 267\>\>
<!-- -->
- - library updates\*\*
**library updates**
- update mustache.java to version 0.8.8
- update mockito to version 1.9.5
@@ -578,7 +580,7 @@ SCM-Manager 1.22
SCM-Manager 1.21
----------------
- - improvements\*\*
**improvements**
- reimplment the complete security model on top of apache shiro
- allow execution of administration tasks without an active http
@@ -590,9 +592,9 @@ SCM-Manager 1.21
- improve performance and memory consumption of svn log command
- do not log sensitive cgi env variables
<!-- -->
- - fixed bugs\*\*
**fixed bugs**
- fix freezing configuration form on ie, see \<\<issue 236\>\>
- fix wrong branch informations of git repository hooks, \<\<issue
@@ -600,9 +602,9 @@ SCM-Manager 1.21
- fix bug in history of subversion repositories
- fix wrong mercurial changeset ids during hooks
<!-- -->
- - library updates\*\*
**library updates**
- update google guava to version 13.0.1
- update jetty to version 7.6.7.v20120910
@@ -616,25 +618,25 @@ SCM-Manager 1.21
SCM-Manager 1.20
----------------
- - improvements\*\*
**improvements**
- added java.awt.headless system property to server startup scripts
- strip changeset ids to 12 chars
- use eternal caches for new repository api
- added placeholder to commit view
<!-- -->
- - fixed bugs\*\*
**fixed bugs**
- fix non closing \"hg serve\" processes
- fix error on changing branches in commit viewer
- fix wrong file modifications on git changeset overview
<!-- -->
- - library updates\*\*
**library updates**
- update logback to version 1.0.7
[Release 1.19 - 1.0](release%20notes%201.19%20-%201.0.md "wikilink")
[Release 1.19 - 1.0](release%20notes%201.19%20-%201.0.md)

View File

@@ -1,8 +1,8 @@
- - note\*\*
**note**
- Versions prior to 1.36 are creating incompatible subversion
repositories, if the subversion option \"with 1.7 Compatible\" is
enabled. [read more](healthchecks/svn-incompatible-dbformat.md "wikilink")
enabled. [read more](healthchecks/svn-incompatible-dbformat.md)
- since version 1.18 scm-manager requires mercurial 1.9 or newer
- since version 1.49 Java 7 or newer is required
- version 1.58 and 1.59 are not working on java 7, but version 1.60
@@ -12,54 +12,54 @@
SCM-Manager 1.60
----------------
- - fixed bugs\*\*
**fixed bugs**
- restored java 7 compatibility (broken since 1.58), see \<\<issue
972\>\> and \<\<issue 982\>\>
- fixed build on java 9
- fixed execution on java 9 and 10
<!-- -->
- - improvements\*\*
**improvements**
- encrypt cli configuration with aes instead of pbe, see \<\<issue
979\>\> and \<\<issue 978\>\>
<!-- -->
- - library updates\*\*
**library updates**
- update commons-daemon to version 1.1.0
SCM-Manager 1.59
----------------
- - fixed bugs\*\*
**fixed bugs**
- mercurial: fix hgweb execution for mercurial versions prior 4.1, see
[\#976](https://bitbucket.org/sdorra/scm-manager/issues/976/issue-with-158-and-mercurial "wikilink")
[\#976](https://bitbucket.org/sdorra/scm-manager/issues/976/issue-with-158-and-mercurial)
- mercurial: make {extras} work on old versions of Hg, see [PR
\#41](https://bitbucket.org/sdorra/scm-manager/pull-requests/41/make-extras-work-on-old-versions-of-hg/diff "wikilink")
\#41](https://bitbucket.org/sdorra/scm-manager/pull-requests/41/make-extras-work-on-old-versions-of-hg/diff)
and
[\#971](https://bitbucket.org/sdorra/scm-manager/issues/971/commit-listening-requires-at-least "wikilink")
[\#971](https://bitbucket.org/sdorra/scm-manager/issues/971/commit-listening-requires-at-least)
SCM-Manager 1.58
----------------
- - improvements\*\*
**improvements**
- mercurial: support for httppostargs protocol, see \<\<issue 970\>\>
- mercurial: prevent
[CVE-2018-1000132](https://cve.mitre.org/cgi-bin/cvename.cgi?name=2018-1000132 "wikilink"),
[CVE-2018-1000132](https://cve.mitre.org/cgi-bin/cvename.cgi?name=2018-1000132),
see \<\<issue 970\>\>
- mercurial: dded option to disable ssl validation for scm hooks, see
\<\<issue 959\>\>
- removed never released scm-dao-orientdb module
<!-- -->
- - library updates\*\*
**library updates**
- update javahg to 0.13
- update commons-beanutils to 1.9.3
@@ -74,27 +74,27 @@ SCM-Manager 1.58
SCM-Manager 1.57
----------------
- - improvements\*\*
**improvements**
- treat update of a git tag as delete and create for hooks
<!-- -->
- - fixed bugs\*\*
**fixed bugs**
- fixed handling of resources with spaces in its id, see \<\<issue
965\>\>
<!-- -->
- - library updates\*\*
**library updates**
- update svnkit to version 1.9.0-scm3
SCM-Manager 1.56
----------------
- - fixed bugs\*\*
**fixed bugs**
- fixed high cpu load after subversion client connection abort, see
\<\<issue 939\>\>
@@ -104,13 +104,13 @@ SCM-Manager 1.56
SCM-Manager 1.55
----------------
- - improvements\*\*
**improvements**
- added option to disallow non fast-forward git pushes
<!-- -->
- - fixed bugs\*\*
**fixed bugs**
- fixes usage of named cache configurations, see \<\<issue 943\>\>
- fixed update of git repositories with empty git default branch, see
@@ -118,11 +118,11 @@ SCM-Manager 1.55
- remove work directory after package upgrade, see \<\<issue 923\>\>
- prevent binary data in mercurial {extras} from interfering with
UTF-8 decoding, see
[\#PR-39](https://bitbucket.org/sdorra/scm-manager/pull-requests/39 "wikilink")
[\#PR-39](https://bitbucket.org/sdorra/scm-manager/pull-requests/39)
<!-- -->
- - library updates\*\*
**library updates**
- update jgit to version v4.5.3.201708160445-r-scm1
- update svnkit to version 1.9.0-scm1
@@ -130,23 +130,23 @@ SCM-Manager 1.55
SCM-Manager 1.54
----------------
- - improvements\*\*
**improvements**
- added experimetal support for git-lfs,
[\#PR-27](https://bitbucket.org/sdorra/scm-manager/pull-requests/27 "wikilink")
[\#PR-27](https://bitbucket.org/sdorra/scm-manager/pull-requests/27)
- improve git client detection to include jgit
- git repositories are now accessible with the \".git\" suffix
<!-- -->
- - fixed bugs\*\*
**fixed bugs**
- fix repository browsing with mercurial 4.x
- fixing test execution on german / windows machines
<!-- -->
- - library updates\*\*
**library updates**
- update jgit to v4.5.2.201704071617-r-scm1
- update javahg to 0.8-scm1
@@ -156,20 +156,20 @@ SCM-Manager 1.54
SCM-Manager 1.53
----------------
- - fixed bugs\*\*
**fixed bugs**
- fix jax-rs classpath conflict, see \<\<issue 916\>\>
<!-- -->
- - library updates\*\*
**library updates**
- update nativepkg-maven-plugin to version 1.1.4
SCM-Manager 1.52
----------------
- - improvements\*\*
**improvements**
- added support for gtld email domains, see \<\<issue 909\>\>
- improved performance by creating an adapter between scm and shiro
@@ -177,9 +177,9 @@ SCM-Manager 1.52
- improved rest api documentation, see
<https://docs.scm-manager.org/restdocs/1.52/>
<!-- -->
- - library updates\*\*
**library updates**
- update svnkit to version 1.8.15-scm1
- update enunciate to version 2.9.1
@@ -187,14 +187,14 @@ SCM-Manager 1.52
SCM-Manager 1.51
----------------
- - improvements\*\*
**improvements**
- update svnkit to version 1.8.14-scm1 in order to support subversion
1.9 new fsfs repository format, see \<\<issue 858\>\>
<!-- -->
- - fixed bugs\*\*
**fixed bugs**
- fix wrong subversion urls behind a reverse proxy, see \<\<issue
889\>\>
@@ -203,9 +203,9 @@ SCM-Manager 1.51
- fix wrong key usage during encoding in DefaultCipherHandler, see
\<\<issue 887\>\>
<!-- -->
- - library updates\*\*
**library updates**
- update jersey to version 1.19.3
- update slf4j to version 1.7.22
@@ -217,7 +217,7 @@ SCM-Manager 1.51
SCM-Manager 1.50
----------------
- - improvements\*\*
**improvements**
- added reusable components for branch and tag combo boxes
- option to define default branch for git repositories \<\<issue
@@ -228,9 +228,9 @@ SCM-Manager 1.50
GET, see issue \<\<issue 859\>\>
- added new hook context api for tags
<!-- -->
- - fixed bugs\*\*
**fixed bugs**
- send http status code 401 unauthorized on failed git authentication,
see issue \<\<issue 870\>\>
@@ -240,14 +240,14 @@ SCM-Manager 1.50
SCM-Manager 1.49
----------------
- - improvements\*\*
**improvements**
- reduce event bus logging
- added RepositoryHookITCase to test repository post receive hooks
<!-- -->
- - fixed bugs\*\*
**fixed bugs**
- escape url parameters ub UrlBuilder in order to fix \<\<issue
847\>\>
@@ -257,23 +257,23 @@ SCM-Manager 1.49
\<\<issue 844\>\>
- fix guice javadoc link
<!-- -->
- - library updates\*\*
**library updates**
- update apache shiro to version 1.3.0
- updated jgit 4.4.0.201606070830-r-scm1, see \<\<issue 848\>\>
<!-- -->
- - breaking changes\*\*
**breaking changes**
- SCM-Manager 1.49 requires at least Java 7
SCM-Manager 1.48
----------------
- - improvements\*\*
**improvements**
- added request uri to mdc logging context
- added request method to mdc filter
@@ -283,24 +283,24 @@ SCM-Manager 1.48
- improve modification events to pass the item before it was modified
to the subscriber
<!-- -->
- - fixed bugs\*\*
**fixed bugs**
- fixed bug in equals method of Permission object
- fixed syntax highlight for bash/sh, see issue \<\<issue 843\>\>
- added missing name of repository to access denied exceptions
<!-- -->
- - library updates\*\*
**library updates**
- update apache shiro to version 1.2.5
SCM-Manager 1.47
----------------
- - improvements\*\*
**improvements**
- added implmentation for running git gc in an configurable interval,
see \<\<issue 801\>\>
@@ -312,11 +312,11 @@ SCM-Manager 1.47
interface or locahost instead of just all interfaces.
- added option for plugins to change ssl context
- case insensitive sorting the of name column, see
[\#PR-25](https://bitbucket.org/sdorra/scm-manager/pull-requests/25/case-insensitive-sorting-of-the-name "wikilink")
[\#PR-25](https://bitbucket.org/sdorra/scm-manager/pull-requests/25/case-insensitive-sorting-of-the-name)
<!-- -->
- - fixed bugs\*\*
**fixed bugs**
- removed broken maven repositories
- do not swallow the ScmSecurityException in PermissionFilter
@@ -329,9 +329,9 @@ SCM-Manager 1.47
- update commons-daemon-native to version 1.0.15.1 to fix scm-server
start on macos
<!-- -->
- - library updates\*\*
**library updates**
- update enunciate to version 1.31
- update jetty to version 7.6.19.v20160209
@@ -343,7 +343,7 @@ SCM-Manager 1.47
SCM-Manager 1.46
----------------
- - improvements\*\*
**improvements**
- link modification to files on commit panel, see \<\<issue 356\>\>
- added to branch switcher to repository browser, see \<\<issue
@@ -352,9 +352,9 @@ SCM-Manager 1.46
- use cached thread pool to process mercurial process error streams
- new advanced http client, see \<\<issue 709\>\>
<!-- -->
- - fixed bugs\*\*
**fixed bugs**
- fix rendering of bottom toolbar in repository browser, if path is
null
@@ -366,9 +366,9 @@ SCM-Manager 1.46
client api
- set content-length header on post requests, see \<\<issue 701\>\>
<!-- -->
- - library updates\*\*
**library updates**
- update enunciate to version 1.30.1
- update jgit to version 3.7.1.201504261725-r-scm1
@@ -378,7 +378,7 @@ SCM-Manager 1.46
SCM-Manager 1.45
----------------
- - improvements\*\*
**improvements**
- improve remove repository confirmation dialog
- introducing HookBranchProvider to get informations about changed
@@ -390,9 +390,9 @@ SCM-Manager 1.45
branches, see \<\<issue \#663\>\>
- usability of init script improved.
<!-- -->
- - fixed bugs\*\*
**fixed bugs**
- added missing shebang statement in create user script, see \<\<issue
665\>\>
@@ -401,9 +401,9 @@ SCM-Manager 1.45
- fixed basic authentication with non ascii passwords, see \<\<issue
627\>\>
<!-- -->
- - library updates\*\*
**library updates**
- update jersey to version 1.19
- update slf4j to version 1.7.10
@@ -411,17 +411,17 @@ SCM-Manager 1.45
SCM-Manager 1.44
----------------
- - library updates\*\*
**library updates**
- update jgit to version 3.5.3.201412180710-r in order to fix
[CVE-2014-9390](http://article.gmane.org/gmane.linux.kernel/1853266 "wikilink")
[CVE-2014-9390](http://article.gmane.org/gmane.linux.kernel/1853266)
- update jersey to version 1.18.3
- update slf4j to version 1.7.9
SCM-Manager 1.43
----------------
- - improvements\*\*
**improvements**
- new repository import wizard
- added support for remote urls to push and pull apis (implemented by
@@ -431,45 +431,45 @@ SCM-Manager 1.43
- implemented AdvancedImportHandler which gives more control over the
import result than ImportHandler
<!-- -->
- - fixed bugs\*\*
**fixed bugs**
- create default accounts only, if no other user exists in the dao
- do not try to convert git changesets from a receive command of type
delete, see \<\<issue 634\>\>
- added utf-8 response encoding for git quick commit view,
[\#PR-17](https://bitbucket.org/sdorra/scm-manager/pull-request/17/utf-8-response-encoding-for-git-quick "wikilink")
[\#PR-17](https://bitbucket.org/sdorra/scm-manager/pull-request/17/utf-8-response-encoding-for-git-quick)
- load advanced plugin configuration from plugin directory and from
root of scm home
- fix wrong changeset count for git push and pull commands
<!-- -->
- - library updates\*\*
**library updates**
- update jersey to version 1.18.2
SCM-Manager 1.42
----------------
- - improvements\*\*
**improvements**
- added comment about POODLE vulnerability to https configuration
- added extension point for HttpSessionListener
- implement util class for AutoLoginModules to mark request as
completed or send redirects from an AutoLoginModule
<!-- -->
- - fixed bugs\*\*
**fixed bugs**
- use base uri from request for git quick repository view, see
\<\<issue 631\>\>
<!-- -->
- - library updates\*\*
**library updates**
- update mustache to version 0.8.17
- update mockito to version 1.10.8
@@ -477,7 +477,7 @@ SCM-Manager 1.42
SCM-Manager 1.41
----------------
- - improvements\*\*
**improvements**
- improve performance for simple subversion changeset paging, see
\<\<issue 610\>\>
@@ -486,18 +486,18 @@ SCM-Manager 1.41
- added mdc logging variables username, client\_ip and client\_host
- use default jersey client implementation instead of ahc
<!-- -->
- - fixed bugs\*\*
**fixed bugs**
- subversion fails to commit filenames containing url-encoded
character \"/\", see \<\<issue 606\>\>
- fix some missing file extensions for syntax highlighter
- fix scm-server stop method on windows, see \<\<issue 623\>\>
<!-- -->
- - library updates\*\*
**library updates**
- update jetty to version 7.6.16.v20140903
- update jgit to version 3.4.1.201406201815-r
@@ -507,22 +507,22 @@ SCM-Manager 1.41
SCM-Manager 1.40
----------------
- - improvements\*\*
**improvements**
- added display name to web.xml
<!-- -->
- - fixed bugs\*\*
**fixed bugs**
- remove url parameters before building base url
- fixed wrong directory permissions on rpm installations
- fixed missing preinstall scripts in rpm and deb packages
<!-- -->
- - library updates\*\*
**library updates**
- update args4j to version 2.0.28
[Release 1.39 - 1.20](release%20notes%201.39%20-%201.20.md "wikilink")
[Release 1.39 - 1.20](release%20notes%201.39%20-%201.20.md)

View File

@@ -1,10 +1,8 @@
Revision Control Plugin Comparison
----------------------------------
# Revision Control Plugin Comparison
\|=Plugin Name \|=Name \|=Core-Plugin \|=Requirements \|=Url \| \|
scm-svn-plugin \| Subversion \| X \| \| <http://subversion.apache.org>
\| \| scm-git-plugin \| Git \| X \| \| <http://git-scm.com> \| \|
scm-hg-plugin \| Mercurial \| X \| [Python (v.
2.6)](http://www.python.org/getit/releases/2.6 "wikilink"), Mercurial \|
<https://www.mercurial-scm.org/> \| \| scm-bzr-plugin \| Bazaar \| \|
Python, Bazaar \| <http://bazaar.canonical.com> \|
| Plugin Name | Name | Core-Plugin | Requirements | Url |
| --- | --- | --- | --- | --- |
| scm-svn-plugin | Subversion | X | | <http://subversion.apache.org> |
| scm-git-plugin | Git | X | | <http://git-scm.com> |
| scm-hg-plugin | Mercurial | X | [Python (v.2.6)](http://www.python.org/getit/releases/2.6), Mercurial | <https://www.mercurial-scm.org/> |
| scm-bzr-plugin | Bazaar | | Python, Bazaar | <http://bazaar.canonical.com> |

View File

@@ -1,17 +1,16 @@
# scm-scheduler-plugin #
# scm-scheduler-plugin
The scheduler plugin provides an api for other plugins to execute scheduled jobs. The plugin is based on the [quartz project](http://quartz-scheduler.org/).
## Configuration ##
## Configuration
The plugin needs no further configuration.
## API Usage ##
## API Usage
First you have to add the dependency to your pom.xml e.g.:
```
#!xml
```xml
<dependency>
<groupId>sonia.scm.plugins</groupId>
<artifactId>scm-scheduler-plugin</artifactId>
@@ -25,10 +24,7 @@ Now you can get a [SchedulerFactory](http://www.quartz-scheduler.org/api/2.0.0/o
For Example:
```
#!java
```java
public class ReportHandler {
private final SchedulerFactory schedulerFactory;
@@ -43,25 +39,22 @@ public class ReportHandler {
With the SchedulerFactory [SchedulerFactory](http://www.quartz-scheduler.org/api/2.0.0/org/quartz/SchedulerFactory.html) you can schedule [Jobs](http://www.quartz-scheduler.org/api/2.0.0/org/quartz/Job.html). To simplify the steps to schedule a job, the scm-scheduler-plugin comes with a helper class called Schedulers.
### Notes ###
### Notes
* Schedulers must always be executed by an administrator or in an administrative context. Jobs which are executed by a scheduler are executed with administrator privileges.
* Each job is able to get dependencies via injection.
### Further reading ###
### Further reading
* [Quartz Overview](http://www.quartz-scheduler.org/overview)
* [Quartz Cron Trigger](http://www.quartz-scheduler.org/documentation/quartz-2.1.x/tutorials/crontrigger)
* [Quartz Examples](http://www.quartz-scheduler.org/documentation/quartz-2.1.x/examples)
### Complete Example ###
### Complete Example
In the following example a ReportJob is executed every minute since the start of scm-manager.
```
#!java
```java
@Extension
public class ReportContextListener implements ServletContextListener {

View File

@@ -1,62 +1,47 @@
Plugins
-------
# Plugins
### Authentication
\|=Plugin Name \|=Description \|=Core-Plugin \|=Repository \| \|
scm-activedirectory-auth-plugin \| Plugin for using Active Directory as
an authentication handler. Currently only supports running on Windows in
a 32-bit JVM. \| \|
<https://bitbucket.org/davidmc24/scm-activedirectory-auth-plugin> \| \|
scm-auth-ldap-plugin \| Plugin for using LDAP as an authentication
handler. \| \| <https://bitbucket.org/tludewig/scm-auth-ldap-plugin> \|
\| scm-pam-plugin \| This plugin enables PAM-Authentication for
SCM-Manager. \| \| <https://bitbucket.org/sdorra/scm-pam-plugin> \| \|
scm-crowd-plugin \| Plugin for using Atlassian Crowd as an
authentication handler. \| \|
<https://github.com/soudmaijer/scm-crowd-plugin> \|
| Plugin Name | Description | Core-Plugin | Repository |
| --- | --- | --- | --- |
| scm-activedirectory-auth-plugin | Plugin for using Active Directory as an authentication handler. Currently only supports running on Windows in a 32-bit JVM. | | <https://bitbucket.org/davidmc24/scm-activedirectory-auth-plugin> |
| scm-auth-ldap-plugin | Plugin for using LDAP as an authentication handler. | | <https://bitbucket.org/tludewig/scm-auth-ldap-plugin> |
| scm-pam-plugin | This plugin enables PAM-Authentication for SCM-Manager. | | <https://bitbucket.org/sdorra/scm-pam-plugin> |
| scm-crowd-plugin | Plugin for using Atlassian Crowd as an authentication handler. | | <https://github.com/soudmaijer/scm-crowd-plugin> |
### Continuous Integration
\|=Plugin Name \|=Description \|=Core-Plugin \|=Repository \| \|
scm-bamboo-plugin \| Post receive hook for Atlassian Bamboo. \| \|
<https://github.com/soudmaijer/scm-bamboo-plugin> \| \|
scm-jenkins-plugin \| This plugin will ping your Jenkins CI server when
a new commit is pushed to SCM-Manager. \| \|
<https://bitbucket.org/sdorra/scm-jenkins-plugin> \|
| Plugin Name | Description | Core-Plugin | Repository |
| --- | --- | --- | --- |
| scm-bamboo-plugin | Post receive hook for Atlassian Bamboo. | | <https://github.com/soudmaijer/scm-bamboo-plugin> |
| scm-jenkins-plugin | This plugin will ping your Jenkins CI server when a new commit is pushed to SCM-Manager. | | <https://bitbucket.org/sdorra/scm-jenkins-plugin> |
### Development
\|=Plugin Name \|=Description \|=Core-Plugin \|=Repository \| \|
scm-graph-plugin \| Creates a Google Guice injection graph. \| \|
<https://bitbucket.org/sdorra/scm-graph-plugin> \|
| Plugin Name | Description | Core-Plugin | Repository |
| --- | --- | --- | --- |
| scm-graph-plugin | Creates a Google Guice injection graph. | | <https://bitbucket.org/sdorra/scm-graph-plugin> |
### Issue-Tracking
\|=Plugin Name \|=Description \|=Core-Plugin \|=Repository \| \|
scm-jira-plugin \| This plugin integrates Atlassian JIRA to SCM-Manager.
\| \| <https://bitbucket.org/sdorra/scm-jira-plugin> \|
| Plugin Name | Description | Core-Plugin | Repository |
| --- | --- | --- | --- |
| scm-jira-plugin | This plugin integrates Atlassian JIRA to SCM-Manager. | | <https://bitbucket.org/sdorra/scm-jira-plugin> |
### Miscellaneous
\|=Plugin Name \|=Description \|=Core-Plugin \|=Repository \| \|
scm-activity-plugin \| Shows the latest activity from your repositories.
\|\| <https://bitbucket.org/sdorra/scm-activity-plugin> \| \|
scm-gravatar-plugin \| Gravatar icons for the changesetviewer. \| \|
<https://bitbucket.org/sdorra/scm-gravatar-plugin> \| \|
scm-pathwp-plugin \| This plugin adds path write protection for
repositories. \|\| <https://bitbucket.org/sdorra/scm-pathwp-plugin> \|
\| scm-userrepo-plugin \| This plugin allows regular users to create
repositories. \|\| <https://bitbucket.org/sdorra/scm-userrepo-plugin> \|
| Plugin Name | Description | Core-Plugin | Repository |
| --- | --- | --- | --- |
| scm-activity-plugin | Shows the latest activity from your repositories. || <https://bitbucket.org/sdorra/scm-activity-plugin> |
| scm-gravatar-plugin | Gravatar icons for the changesetviewer. | | <https://bitbucket.org/sdorra/scm-gravatar-plugin> |
| scm-pathwp-plugin | This plugin adds path write protection for repositories. || <https://bitbucket.org/sdorra/scm-pathwp-plugin> |
| scm-userrepo-plugin | This plugin allows regular users to create repositories. || <https://bitbucket.org/sdorra/scm-userrepo-plugin> |
### Version Control Systems
\|=Plugin Name \|=Description \|=Core-Plugin \|=Repository \| \|
scm-hg-plugin \| Support for the version control system Mercurial. \| X
\| <https://bitbucket.org/sdorra/scm-manager> \| \| scm-git-plugin \|
Support for the version control system Git. \| X \|
<https://bitbucket.org/sdorra/scm-manager> \| \| scm-svn-plugin \|
Support for the version control system Subversion. \| X \|
<https://bitbucket.org/sdorra/scm-manager> \| \| scm-bzr-plugin \|
Support for the version control system Bazaar. \| \|
<https://bitbucket.org/sdorra/scm-bzr-plugin> \|
| Plugin Name | Description | Core-Plugin | Repository |
| --- | --- | --- | --- |
| scm-hg-plugin | Support for the version control system Mercurial. | X | <https://bitbucket.org/sdorra/scm-manager> |
| scm-git-plugin | Support for the version control system Git. | X | <https://bitbucket.org/sdorra/scm-manager> |
| scm-svn-plugin | Support for the version control system Subversion. | X | <https://bitbucket.org/sdorra/scm-manager> |
| scm-bzr-plugin | Support for the version control system Bazaar. | | <https://bitbucket.org/sdorra/scm-bzr-plugin> |

View File

@@ -1,22 +1,76 @@
SCM-Server SSL
--------------
# SCM-Server SSL
- - Note\*\*: This document describes a ssl configuration with a
**Note**: This document describes a ssl configuration with a
self-signed certificate
1\. Open a shell and go to the conf directory of the scm-server
2\. Create a certificate request. Replace all variables (\*varname\*)
- - Note:\*\* You have to enter the full qualified hostname of your
```bash
$ keytool -genkey -alias scm -keyalg RSA -keystore keystore.jks
Enter keystore password: your password
Re-enter new password: your password
What is your first and last name?
[Unknown]: *your servername*
What is the name of your organizational unit?
[Unknown]: *organisation unit*
What is the name of your organization?
[Unknown]: *organisation*
What is the name of your City or Locality?
[Unknown]: *city*
What is the name of your State or Province?
[Unknown]: *state*
What is the two-letter country code for this unit?
[Unknown]: *country code*
Is CN=your servername, OU=your organisation unit, O=your organisation, L=your city, ST=your state, C=cc correct?
[no]: yes
Enter key password for <scm>
(RETURN if same as keystore password): *password*
Re-enter new password: *password*
```
**Note**: You have to enter the full qualified hostname of your
server for the cn (cn = What is your first and last name?)
3\. Edit the server-config.xml, uncomment the SSL-Connector and set your
password. For example:
```xml
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector">
<Arg>
<!--
Exclude SSLv3 to avoid POODLE vulnerability.
See https://groups.google.com/d/msg/scmmanager/sX_Ydy-wAPA/-Dvs5i7RHtQJ
-->
<New class="org.eclipse.jetty.http.ssl.SslContextFactory">
<Set name="excludeProtocols">
<Array type="java.lang.String">
<Item>SSLv2Hello</Item>
<Item>SSLv3</Item>
</Array>
</Set>
</New>
</Arg>
<Set name="Port">8181</Set>
<Set name="maxIdleTime">30000</Set>
<Set name="keystore"><SystemProperty name="basedir" default="." />/conf/keystore.jks</Set>
<Set name="password">*password*</Set>
<Set name="keyPassword">*password*</Set>
<Set name="truststore"><SystemProperty name="basedir" default="." />/conf/keystore.jks</Set>
<Set name="trustPassword">*password*</Set>
</New>
</Arg>
</Call>
```
4\. Start or restart the scm-server
- - Note\*\*: It looks like there is a error in some version of
**Note**: It looks like there is a error in some version of
OpenJDK (issues \#84 and \#151). If you have such a problem,
please try to use the Oracle JDK.
@@ -24,17 +78,33 @@ password. For example:
1\. Export the certificate from keystore:
```bash
$ keytool -exportcert -keystore keystore.jks -alias scm -rfc -file cert.pem
```
2\. Copy the certificate to your client and add it to your git config:
```bash
$ git config http.sslCAInfo /complete/path/to/cert.pem
```
### Configure Mercurial
1\. Export the certificate from keystore:
```bash
$ keytool -exportcert -keystore keystore.jks -alias scm -rfc -file cert.pem
```
2\. Copy the certificate to your client and add it to your .hgrc config
file:
```bash
[web]
cacerts = /complete/path/to/cert.pem
```
### Sources
- [Keytool](http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/keytool.html "wikilink")
- [Jetty
SSL-Connectors](http://wiki.eclipse.org/Jetty/Reference/SSL_Connectors "wikilink")
- [Keytool](http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/keytool.html)
- [Jetty SSL-Connectors](http://wiki.eclipse.org/Jetty/Reference/SSL_Connectors)

View File

@@ -1,43 +1,32 @@
Screenshots
-----------
# Screenshots
<http://www.scm-manager.org/screenshots/>
Screenshots pre 1.12
--------------------
## Screenshots pre 1.12
\|{{/sdorra/scm-manager/wiki/screenshots/login.thumb.png\|Login}}\|
{{/sdorra/scm-manager/wiki/screenshots/change-password.thumb.png\|Change
Password}} \|
{{/sdorra/scm-manager/wiki/screenshots/repository-config.thumb.png\|Repository
Config}} \|
\|[Login](/sdorra/scm-manager/wiki/screenshots/login.png "wikilink") \|
[Change
Password](/sdorra/scm-manager/wiki/screenshots/change-password.png "wikilink")
\| [Repository
Configuration](/sdorra/scm-manager/wiki/screenshots/repository-config.png "wikilink")
\|
\|{{/sdorra/scm-manager/wiki/screenshots/repository-details.thumb.png\|Repository
details}}\|
{{/sdorra/scm-manager/wiki/screenshots/repository-overview.thumb.png\|Repository
Overview}} \|
{{/sdorra/scm-manager/wiki/screenshots/user-overview.thumb.png\|User
Overview}} \| \|[Repository
details](/sdorra/scm-manager/wiki/screenshots/repository-details.png "wikilink")
\| [Repository
Overview](/sdorra/scm-manager/wiki/screenshots/repository-overview.png "wikilink")
\| [User
Overview](/sdorra/scm-manager/wiki/screenshots/user-overview.png "wikilink")
\|
\|{{/sdorra/scm-manager/wiki/screenshots/plugin-overview.thumb.png\|Plugin
Overview}}\|
{{/sdorra/scm-manager/wiki/screenshots/mercurial-wizard.thumb.png\|Mercurial
Configuration Wizard}} \|
{{/sdorra/scm-manager/wiki/screenshots/changesetviewer-gravatar-plugin.thumb.png\|Changesetviewer
(with Gravatar Plugin)}} \| \|[Plugin
Overview](/sdorra/scm-manager/wiki/screenshots/plugin-overview.png "wikilink")\|
[Mercurial Configuration
Wizard](/sdorra/scm-manager/wiki/screenshots/mercurial-wizard.png "wikilink")
\| [Changesetviewer (with Gravatar
Plugin)](/sdorra/scm-manager/wiki/screenshots/changesetviewer-gravatar-plugin.png "wikilink")
\|
[![Login](screenshots/login.thumb.png)\
*Login*](screenshots/login.png "Login")
[![Change Password](screenshots/change-password.thumb.png)\
*Change Password*](screenshots/change-password.png "Change Password")
[![Repository Configuration](screenshots/repository-config.thumb.png)\
*Repository Configuration*](screenshots/repository-config.png "Repository Configuration")
[![Repository Details](screenshots/repository-details.thumb.png)\
*Repository Details*](screenshots/repository-details.png "Repository Details")
[![Repository Overview](screenshots/repository-overview.thumb.png)\
*Repository Overview*](screenshots/repository-overview.png "Repository Overview")
[![User Overview](screenshots/user-overview.thumb.png)\
*User Overview*](screenshots/user-overview.png "User Overview")
[![Plugin Overview](screenshots/plugin-overview.thumb.png)\
*Plugin Overview*](screenshots/plugin-overview.png "Plugin Overview")
[![Mercurial Configuration Wizard](screenshots/mercurial-wizard.thumb.png)\
*Mercurial Configuration Wizard*](screenshots/mercurial-wizard.thumb.png "Mercurial Configuration Wizard")
[![Changesetviewer (with Gravatar Plugin)](screenshots/changesetviewer-gravatar-plugin.thumb.png)\
*Changesetviewer (with Gravatar Plugin)*](screenshots/changesetviewer-gravatar-plugin.png "Changesetviewer (with Gravatar Plugin)")

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

View File

@@ -1,5 +1,117 @@
Authentication
--------------
# Snippet: Authentication
[Complete
source](https://bitbucket.org/sdorra/scm-code-snippets/src/tip/004-authentication "wikilink")
```java
package sonia.scm.snippets;
//~--- non-JDK imports --------------------------------------------------------
import sonia.scm.SCMContextProvider;
import sonia.scm.plugin.ext.Extension;
import sonia.scm.user.User;
import sonia.scm.web.security.AuthenticationHandler;
import sonia.scm.web.security.AuthenticationResult;
import sonia.scm.web.security.AuthenticationState;
//~--- JDK imports ------------------------------------------------------------
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Simple {@link AuthenticationHandler} example.
*
* @author Sebastian Sdorra
*/
@Extension
public class SnippetAuthentication implements AuthenticationHandler
{
/** Type of the {@link AuthenticationHandler} */
public static final String TYPE = "snippet";
//~--- methods --------------------------------------------------------------
/**
* Authenticate the user by username and password.
*
*
* @param request current http request
* @param response current http response
* @param username username of the user
* @param password password of the password
*
* @return
*/
@Override
public AuthenticationResult authenticate(HttpServletRequest request,
HttpServletResponse response, String username, String password)
{
AuthenticationResult result = AuthenticationResult.NOT_FOUND;
if ("scm".equals(username))
{
// user found
if ("scmpwd".equals(password))
{
// authentication success
// create a user object
User user = new User(username);
// create the authentication result
result = new AuthenticationResult(user, AuthenticationState.SUCCESS);
}
else
{
// user found but authentication failed
result = AuthenticationResult.FAILED;
}
}
return result;
}
/**
* Close database connections or something else.
*
*
* @throws IOException
*/
@Override
public void close() throws IOException
{
// do nothing
}
/**
* Init database connections or something else.
*
*
* @param context the context of the current SCM-Manager instance.
*/
@Override
public void init(SCMContextProvider context)
{
// do nothing
}
//~--- get methods ----------------------------------------------------------
/**
* Returns the type of the {@link AuthenticationHandler}
*
*
* @return type of the {@link AuthenticationHandler}
*/
@Override
public String getType()
{
return TYPE;
}
}
```
[Complete source](https://bitbucket.org/sdorra/scm-code-snippets/src/tip/004-authentication)

View File

@@ -1,5 +1,46 @@
Extend global configuration
---------------------------
# Snippet: Extend global configuration
[Complete
source](https://bitbucket.org/sdorra/scm-code-snippets/src/tip/003-extend-global-config "wikilink")
```javascript
// register the new configuration form
registerGeneralConfigPanel({
// the xtype of the form should be configForm
xtype : 'configForm',
// title of the form
title : 'My Configuration',
// array of formular fields
items : [{
/**
* xtype of the formular field. For a
* list of the xtype's have a look at
* http://docs.sencha.com/ext-js/3-4/#!/api/Ext.Component
**/
xtype : 'textfield',
// label of the field
fieldLabel : 'Config name',
// name of the field
name : 'fomular-field-name',
// help for this field
helpText: 'Help for this field.',
// allow blank values
allowBlank : true
}],
/**
* this method is called when the form is submitted.
* values - the values of the formular
**/
onSubmit: function(values){
// do something
},
/**
* this method is called when the form is load
* el - the element of the formular
**/
onLoad: function(el){
// do something
}
});
```
[Complete source](https://bitbucket.org/sdorra/scm-code-snippets/src/tip/003-extend-global-config)

View File

@@ -1,4 +1,27 @@
### Extend Navigation
### Snippet: Extend Navigation
[Complete
source](https://bitbucket.org/sdorra/scm-code-snippets/src/tip/001-extend-navigation "wikilink")
```javascript
// add login callback
loginCallbacks.push(function(){
// get the main navigation
var navPanel = Ext.getCmp('navigationPanel');
// insert the new navigation section at the
// second position
navPanel.insertSection(1, {
title: 'My Links',
links: [{
label: 'Link 1',
fn: function(){
alert('Link 1');
}
},{
label: 'Link 2',
fn: function(){
alert('Link 2');
}
}]
});
});
```
[Complete source](https://bitbucket.org/sdorra/scm-code-snippets/src/tip/001-extend-navigation)

View File

@@ -1,5 +1,53 @@
Add tab to repository configuration
-----------------------------------
# Snippet: Add tab to repository configuration
[Complete
source](https://bitbucket.org/sdorra/scm-code-snippets/src/tip/002-repository-tab "wikilink")
```javascript
/**
* Register extjs namespace for the plugin.
* http://docs.sencha.com/ext-js/3-4/#!/api/Ext-method-ns
*/
Ext.ns('Sonia.snippets');
Sonia.snippets.MyPanel = Ext.extend(Ext.Panel, {
initComponent: function(){
var config = {
// Title of the panel
title: 'My Panel'
}
/**
* The apply method merges the initialConfig object with the config object.
* The initialConfig object is the config object from the parent panel
* (in this case Ext.Panel).
* http://docs.sencha.com/ext-js/3-4/#!/api/Ext-method-apply
*/
Ext.apply(this, Ext.apply(this.initialConfig, config));
Sonia.snippets.MyPanel.superclass.initComponent.apply(this, arguments);
}
});
/**
* Register xtype of the panel for later use and lazy initialization.
* http://docs.sencha.com/ext-js/3-4/#!/api/Ext-method-reg
*/
Ext.reg("myPanel", Sonia.snippets.MyPanel);
/**
* Register a listener which is called, after repository is selected in the
* web interface. The listener passes the selected repository and an array
* of panels as argument.
*/
Sonia.repository.openListeners.push(function(repository, panels){
/**
* Append the new panel to the panels array
*/
panels.push({
// registerd xtype for the panel
xtype: 'myPanel'
});
});
```
[Complete source](https://bitbucket.org/sdorra/scm-code-snippets/src/tip/002-repository-tab)

View File

@@ -1,7 +1,6 @@
Mercurial Subrepositories
-------------------------
# Mercurial Subrepositories
In the following examples i will use the [scm-cli-client](command-line-client.md "wikilink")
In the following examples i will use the [scm-cli-client](command-line-client.md)
to create the repositories, but you can also use the web interface to
create the repositories.
@@ -10,21 +9,34 @@ Create a main repository and for each subrepository a mercurial
repository in scm-manager. Than add the subrepositories with the
complete url to the .hgsub file.
```bash
java -jar scm-cli-client.jar create-repository -t hg -n main
java -jar scm-cli-client.jar create-repository -t hg -n module-1
java -jar scm-cli-client.jar create-repository -t hg -n module-2
hg clone http://localhost:8081/scm/hg/main
cd main
echo 'module-1 = http://localhost:8081/scm/hg/module-1' > .hgsub
echo 'module-2 = http://localhost:8081/scm/hg/module-2' >> .hgsub
hg add .hgsub
hg commit -m 'added module-1 and module-2 as subrepositories'
hg push
```
### Mercurial nested repositories
If you already have nested repositories, you have to redirect the nested
repository to a real scm-manager repository. This work is done by the
[scm-hgnested-plugin](https://bitbucket.org/sdorra/scm-hgnested-plugin "wikilink").
[scm-hgnested-plugin](https://bitbucket.org/sdorra/scm-hgnested-plugin).
Install the
[scm-hgnested-plugin](https://bitbucket.org/sdorra/scm-hgnested-plugin "wikilink")
[scm-hgnested-plugin](https://bitbucket.org/sdorra/scm-hgnested-plugin)
from the plugin-center (requires scm-manager version 1.10 or higher).
Create a repository for the main repository and for each nested
repository. Configure the
[scm-hgnested-plugin](https://bitbucket.org/sdorra/scm-hgnested-plugin "wikilink")
like [this](screenshots/scm-hgnested-plugin.png "wikilink").
[scm-hgnested-plugin](https://bitbucket.org/sdorra/scm-hgnested-plugin)
like [this](screenshots/scm-hgnested-plugin.png).
### Further reading
- <https://bitbucket.org/sdorra/scm-manager/issue/67/add-support-for-mercurial-subrepos>
- <https://www.mercurial-scm.org/wiki/Subrepository>
- <https://www.mercurial-scm.org/pipermail/mercurial-devel/2011-October/034728.html>
- <https://bitbucket.org/sdorra/scm-manager/issue/67/add-support-for-mercurial-subrepos>
- <https://www.mercurial-scm.org/wiki/Subrepository>
- <https://www.mercurial-scm.org/pipermail/mercurial-devel/2011-October/034728.html>

View File

@@ -1,4 +1,4 @@
# Trac Plugin #
# Trac Plugin
The plugin enables the following features to integrate SCM-Manager to [Trac](http://trac.edgewall.org/):

View File

@@ -1,32 +1,28 @@
Upgrade to a new Version
========================
# Upgrade to a new Version
If you would like to update SCM-Manager, you have to do the following
steps.
- Update all plugins: Goto the plugins panel and click every update
link
- Update all plugins: Goto the plugins panel and click every update link
The next steps depends on the version you use.
Upgrade the Standalone version
------------------------------
## Upgrade the Standalone version
- Stop the old instance
- Rename your old version
- Download the latest version of the scm-server bundle
- Extract the new version
- If you have changed bin/scm-server or one of the files from the conf
directory, you have to make the same changes for the new version
- If you use a windows service you have to reinstall the service
(uninstallService and installService)
- Stop the old instance
- Rename your old version
- Download the latest version of the scm-server bundle
- Extract the new version
- If you have changed bin/scm-server or one of the files from the conf
directory, you have to make the same changes for the new version
- If you use a windows service you have to reinstall the service
(uninstallService and installService)
Upgrade the WebArchive (war) version
------------------------------------
## Upgrade the WebArchive (war) version
- Download the latest version of the war bundle
- Deploy the new version
- If you have changed the WEB-INF/scm.properties or the
WEB-INF/classes/logback.xml, you have to make the same changes for
the new version. After you have done the changes you have to restart
your applicationserver.
- Download the latest version of the war bundle
- Deploy the new version
- If you have changed the WEB-INF/scm.properties or the
WEB-INF/classes/logback.xml, you have to make the same changes for
the new version. After you have done the changes you have to restart
your applicationserver.

View File

@@ -1,3 +1,3 @@
# API and concepts changes from SCM-Manger v1 to v2
TODO document api and concept changes while we're migrating plugins
*TODO:* document api and concept changes while we're migrating plugins

View File

@@ -8,59 +8,50 @@ A react component is updated without any changes in the props or states.
### Fix
Use the [why-did-you-update](Link https://github.com/maicki/why-did-you-update) library to analyze the causes of the updates.
Use the [why-did-you-update](https://github.com/maicki/why-did-you-update) library to analyze the causes of the updates.
A common cause is the definition of[ new functions in render()](Link https://github.com/maicki/why-did-you-update#changes-are-in-functions-only).
A common cause is the definition of [new functions in render()](https://github.com/maicki/why-did-you-update#changes-are-in-functions-only).
### Example
```
#!javascript
```javascript
class Main extends React.Component<Props> {
render() {
const { authenticated, links } = this.props;
const redirectUrlFactory = binder.getExtension("main.redirect", this.props);
....
...
const ActivityRoute = ({ authenticated, links }: RouteProps) => {
return (
<ProtectedRoute
path="/activity"
component={() => <Activity activityUrl={links.activity.href} />}
authenticated={authenticated && links.activity.href}
/>
);
};
const ActivityRoute = ({ authenticated, links }: RouteProps) => {
return (
<ProtectedRoute
path="/activity"
component={() => <Activity activityUrl={links.activity.href} />}
authenticated={authenticated && links.activity.href}
/>
);
};
}
}
binder.bind("main.route", ActivityRoute);
```
the definition of the Component like this:
```javascript
component={() => <Activity activityUrl={links.activity.href} />}
```
#!javascript
component={() => <Activity activityUrl=links.activity.href} />}
```
triggers a re-render because:
```
#!javascript
() => <Activity activityUrl=links.activity.href} /> !== () => <Activity activityUrl=links.activity.href} />
```javascript
() => <Activity activityUrl={links.activity.href} /> !== () => <Activity activityUrl={links.activity.href} />
```
You can avoid it by binding this function in advance and then reusing it on all renders
```
#!javascript
```javascript
class ActivityRoute extends React.Component<Props> {
constructor(props: Props) {
super(props);

View File

@@ -1,6 +1,6 @@
[TOC]
# Descision Table
# Lombok #
### Lombok
[Project Lombok](https://projectlombok.org/) provides an easy way to generate java beans with
@@ -26,11 +26,11 @@ The following lombok annotations will be used for DTOs:
will be present. Because this one is necessary for deserialization, this one has to be created
explicitly when the all-args constructor is declared)
# /repo/ & /repos/ as URI prefixes #
### /repo/ & /repos/ as URI prefixes
The URI-format for accessing a repository, be it with a browser, or cloning/pulling via git/hg/svn, is defined to be `/repo/:namespace/:name`. The decision was made to allow users to choose namespaces as they please. If there would not be a prefix, some namespaces (e.g. `user`, `users`) would have to be reserved, since the names are already in use by SCM Manager itself. The `/repos` URI linked to a list of repositories, as well as operations such as creating a repositoriy (`/repos/create`).
# Error handling
### Error handling
In v1 error handling was somewhat diverse. Some checks were made explicitly in the web resource classes leading
to direct responses, some were made using exceptions and matching exception mappers.
@@ -53,7 +53,7 @@ in runtime exceptions like `RepositoryException` and will lead to internal serve
For simple objects like users and groups we don't think that we will need more exceptions.
# Logging
### Logging
Logging can be cucial when it comes to identify bugs in test or production environments. At implementation time one cannot foresee all possible error cases and therefore cannot determine with full certanty what informations will be needed and what can be neglected. Logging only crucial errors leaves the developer with no idea what events might have lead to the error. On the other hand logging too much will overburden the log, making it harder to handle and maybe hiding interesting steps.
@@ -67,7 +67,7 @@ Therefore it is best practice to be able to select the detail level of informati
As a default the log level for SCM-Manager is INFO, so that by default all logs with the levels ERROR, WARN and INFO are stored. Finer levels can be enabled manually.
## Log levels to use
### Log levels to use
We have agreed to apply to the following guidelines regarding log levels:

View File

@@ -74,11 +74,7 @@ The following extension points are provided for the frontend:
**example:**
```
#!javascript
```javascript
let MarkdownFactory = (renderContext) => {
let Heading= (props) => {
@@ -89,20 +85,13 @@ let MarkdownFactory = (renderContext) => {
return {heading : Heading};
};
binder.bind("markdown-renderer-factory", MarkdownFactory);
```
```
#!javascript
```javascript
<MarkdownView
renderContext={{pullRequest, repository}}
className="content"
content={pullRequest.description}
/>
```

View File

@@ -1,3 +1,5 @@
# Known Issues
## Asnychronous PreReceiveRepositoryHooks do not work with subversion
The following example will fail to log the changesets.
@@ -26,7 +28,6 @@ public class DemoHook {
}
}
```
This is because of the transaction management of subversion. The scm-manager subversion provider becomes a transaction id for the changes of the current push, but the transaction has finished before scm-manager can resolve the incoming commit. To solve the issue, we could use a synchronous subscription instead e.g.:
@@ -55,5 +56,4 @@ public class DemoHook {
}
}
```

View File

@@ -1,6 +1,6 @@
# Migrate an v1 plugin
Before starting, make sure to read the [[v2/Plugin Development|Plugin Development]]
Before starting, make sure to read the [Plugin Development](Plugin%20Development.md)
**NOTE**: until there is no release the current version of scm-manager has to be cloned and build on the machine
of the plugin developer.
@@ -25,7 +25,6 @@ To migrate an existing SCM-Manager 1.x Plugin, you have to do the following step
* remove the sonia.scm.maven:scm-maven-plugin from the pom
* remove servlet-api from the list of dependencies (not always the case)
```diff
diff -r a988f4cfb7ab pom.xml
--- a/pom.xml Thu Dec 10 20:32:26 2015 +0100
@@ -124,7 +123,7 @@ diff -r a988f4cfb7ab src/main/resources/META-INF/scm/plugin.xml
### Java sources (src/main/java)
* try to compile the sources: `mvn compile`
* fix problems (See [[v2/API changes|API changes]])
* fix problems (See [API changes](API%20changes.md))
* Remove XML accept headers from REST Resource classes -> SCMMv2 supports JSON only
* Migrate REST Resources (e.g. `v2`, add to Index Resource, Update Links) - See core plugins Git, Hg, Svn, e.g. [`GitConfigResource`](https://bitbucket.org/sdorra/scm-manager/src/3d5a24c177f33c14a7c08f19e124be03b1a877ba/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/api/v2/resources/GitConfigResource.java)
@@ -132,6 +131,7 @@ diff -r a988f4cfb7ab src/main/resources/META-INF/scm/plugin.xml
* remove all SCM-Manager 1.x ui code from resource directory (src/main/resources)
* create package.json with the following content (replace name-of-plugin with the name of your plugin):
```json
{
"name": "@scm-manager/name-of-plugin",
@@ -151,6 +151,7 @@ diff -r a988f4cfb7ab src/main/resources/META-INF/scm/plugin.xml
}
}
```
* run `mvn process-resources` to install the required JavaScript libraries
* run `yarn run ui-bundler init` to create frontend configuration files (TODO add maven goal/phase)
* create new ui at `src/main/js` (for JavaScript code) and `src/main/webapp` (for static files) (TODO more help)
@@ -161,12 +162,12 @@ Some more hints:
* For Configuration UIs use [`ConfigurationBinder`](https://bitbucket.org/sdorra/scm-manager/src/c888128358712ab1f5f34ff593e1cf6854b06c08/scm-ui-components/packages/ui-components/src/config/ConfigurationBinder.js) - See core plugins Git, Hg, Svn, e.g. [scm-git-plugin/index.js](https://bitbucket.org/sdorra/scm-manager/src/6d64a380a37db63c95eccbfbf18e4500c9224d32/scm-plugins/scm-git-plugin/src/main/js/index.js).
Note that `readOnly` property checks if update link is returned by REST resource
* Don't forget [i18n](https://bitbucket.org/sdorra/scm-manager/wiki/v2/i18n%20for%20Plugins)
* If you need to add extension points to core SCMM, you can link your local development instance into smp-maven-plugin, see [scm-review-plugin/pom.xml](https://bitbucket.org/scm-manager/scm-review-plugin/src/0ea74634830ef4865afacf714de009302e26353d/pom.xml#lines-72)
* Don't forget [i18n for Plugins](i18n%20for%20Plugins.md)
* If you need to add extension points to core SCMM, you can link your local development instance into smp-maven-plugin, see [scm-review-plugin/pom.xml](https://github.com/scm-manager/scm-review-plugin/commit/0ea74634830ef4865afacf714de009302e26353d#diff-600376dffeb79835ede4a0b285078036R72)
# Further reading
* [scm-manager/ui-extensions README](https://bitbucket.org/scm-manager/ui-extensions/src/master/README.md) - Extension Points within SCM-Manager
* [scm-manager/ui-components](https://bitbucket.org/sdorra/scm-manager/src/6d64a380a37db63c95eccbfbf18e4500c9224d32/scm-ui-components/) - Reusable UI components within SCM-Manager
* [smp-maven-plugin](https://bitbucket.org/scm-manager/smp-maven-plugin/src/default/) - Plugin that facilitates efficient plugin development for SCMM
* [scm-manager/ui-extensions README](../../scm-ui/ui-extensions/README.md) - Extension Points within SCM-Manager
* [scm-manager/ui-components](https://bitbucket.org/sdorra/scm-manager/src/6d64a380a37db63c95eccbfbf18e4500c9224d32/scm-ui-components/) - Reusable UI components within SCM-Manager
* [smp-maven-plugin](https://bitbucket.org/scm-manager/smp-maven-plugin/src/default/) - Plugin that facilitates efficient plugin development for SCMM
* [ui-bundler](https://bitbucket.org/scm-manager/ui-bundler/src/master/) - Bundles the UI Resources for plugins

View File

@@ -1,8 +1,8 @@
# Permission Concept
This documents describes a concept for a fine-grained permission managing via the SCMMv2 UI.
[TOC]
# Requirements
## Requirements
* Provide at least the features of SCMMv1 including the scm-groupmanager and scm-userrepo plugins.
* In addition, the permissions on repositories should be more fine-grained, for example a user that does not have the
@@ -10,11 +10,11 @@ This documents describes a concept for a fine-grained permission managing via th
* An ideal solution would be generic. That is, not implementing explicit features such as the groupmanager or userrepo.
SCMMv2 already evaluates fine-grained permissions, so why not allow our users to assign them?
# Technical Foundations
## Technical Foundations
## Status Quo SCMv1
### Status Quo SCMv1
[SCMMv1 's permissions](../Permissions) are only related to Repositories:
[SCMMv1 's permissions](../Permissions.md) are only related to Repositories:
* Users can either have the Permission READ, WRITER or OWNER
* globally (for all repositories) or
@@ -28,7 +28,7 @@ Some more permission-related features are added by plugins:
* [scm-groupmanager-plugin](https://bitbucket.org/triologygmbh/scm-groupmanager-plugin/): Allows users to administer groups
* [scm-userrepo-plugin](https://bitbucket.org/sdorra/scm-userrepo-plugin/): Allows users to create repositories
## SCMMv2 Permission fundamentals
### SCMMv2 Permission fundamentals
SCMMv2 introduces much more fine-grained permission checks under the hood.
In the code permissions for all kinds of operations are designed as follows:
@@ -44,7 +44,7 @@ In addition, there are permissions that do not relate to an item, which are call
The challenge solved by this document is to provide a concept that allows SCMMv2 users to manage these permissions.
That is, to assign those permissions to users and groups via the UI or REST API.
## SCMMv2 implementation details
### SCMMv2 implementation details
This is not a core part of the concept but might be interesting when implementing it.
@@ -82,7 +82,7 @@ When a user logs in, all different kinds of permissions (`*` if admin, permissio
from groups, some additional technical permissions such as `autocomplete`, etc.) are collected and added to the Shiro
subject in the `DefaultAuthorizationCollector` class.
## SCMMv2 Core permissions
### SCMMv2 Core permissions
Here are some more examples of permissions existing in SCMMv2 core, at the time of writing.
Look for `@StaticPermissions` and note that there the annotation also declares defaults for `permissions` and `globalPermissions`.
@@ -105,25 +105,25 @@ Look for `@StaticPermissions` and note that there the annotation also declares d
* Permissions: read, modify, delete, healthCheck, pull, push, permissionRead, permissionWrite
* Items are the technical ID of dynamically added repositories
# Repository and global permissions
## Repository and global permissions
In order to fulfill the requirements, this concept describes
* how to extend the existing repository permissions to be more fine-grained
* a new dialog to assign global permissions on user or group level
# UI / UX
## UI / UX
## Global permissions
### Global permissions
The global permission component can be reached from **either user and groups** components navigations. The following mockup
shows this in the user component:
![Permissions-mockup-user](Permissions-mockup-user.jpg).
![Permissions-mockup-user](Permissions-mockup-user.jpg)
The layout of the permission component UI could look like this:
![Permissions-mockup-global-permissions](Permissions-mockup-global-permissions.jpg).
![Permissions-mockup-global-permissions](Permissions-mockup-global-permissions.jpg)
The UI
* queries all available global permissions from the REST API (shiro strings),
@@ -131,7 +131,7 @@ The UI
* displays descriptions as tooltips,
* and queries all user/group permissions to populate the check boxes.
## Repository permissions
### Repository permissions
The repository permission are already implemented and can be reached via Repositories | Permissions. Right now, it
allows for assigning the roles READ, WRITE, OWNER as in SCMMv1 (see above). Internally they are mapped to shiro
@@ -139,9 +139,9 @@ permissions (see `PermissionType`).
The UI is extended like so:
![Permissions-mockup-repository-permissions](Permissions-mockup-repository-permissions.jpg).
![Permissions-mockup-repository-permissions](Permissions-mockup-repository-permissions.jpg)
### Existing repository dialog
#### Existing repository dialog
* queries all available repository permissions (shiro strings) and roles from the REST API,
* queries all user/group permissions of the repository (shiro strings) and aggregates them to roles to populate the
@@ -149,25 +149,25 @@ The UI is extended like so:
* Note that the permissions are always stored as shiro strings not roles.
* A new `Advanced` button per user or group entry opens a modal dialog
### New modal dialog
#### New modal dialog
* The modal dialog shows all available repository permissions (shiro strings)
* via the shiro string the display name and descriptions are found (see i18n),
* displays descriptions as tooltips,
* the individual user/group permission of the repo are used to populate the check boxes
# REST API
## REST API
Note that the examples here are not specified in HAL/HATEOAS for brevity.
## Global permissions
### Global permissions
Assigning global permissions must be implemented for **either user and groups**!
Both use the same available permissions.
The following shows user as an example.
### Available global permissions
#### Available global permissions
* URL: `/globalPermissions`
* HTTP Method: GET
@@ -189,7 +189,7 @@ The following shows user as an example.
}
```
### Assigned global permissions
#### Assigned global permissions
* URL: `/users/{id}/permissions/`
* HTTP Method: GET/PUT
@@ -211,9 +211,9 @@ The following shows user as an example.
}
```
## Repository permissions
### Repository permissions
### Available repository permissions
#### Available repository permissions
* URL: `/repositoryPermissions` (similar to `/repositoryTypes`)
* HTTP Method: GET
@@ -235,7 +235,7 @@ The following shows user as an example.
}
```
### Assigned repository permissions
#### Assigned repository permissions
Already implemented in `PermissionRootResource`. Needs to be adpated from roles (`WRITE`) to shiro permissions
(`repository:read:42`).
@@ -272,7 +272,7 @@ Note that
* On PUT, the REST API needs to **validate** that each entry in `permissions` does not contain `:`!
Otherwise we might allow for "permission injection", allowing to set permissions on other or all repositories.
# Java API
## Java API
The biggest technical challenges for this concept are the questions:
@@ -287,13 +287,13 @@ Where each questions needs to be answered for
permissions.
## Global permissions
### Global permissions
In order to implement this for global permissions an existing mechanism of SCM-Manager can be used:
The `SecuritySystem`, implemented by the `DefaultSecuritySystem`.
### List available permissions
#### List available permissions
The `DefaultSecuritySystem` reads all `permissions.xml` files from classpath, which also works for plugins (see
[Proof Of Concept](https://bitbucket.org/sdorra/scm-manager/commits/4ed74bf266106c48db77d21558452b0c968884cb?at=feature/global_permissions#chg-scm-plugins/scm-git-plugin/src/main/resources/META-INF/scm/permissions.xml)).
@@ -308,7 +308,7 @@ For SCMMv2 we could extend this mechanism by
The annotations should be extended to support a list of permissions that are not written to `permissions.xml`
(e.g. `user:autocomplete`)
### Assign permissions
#### Assign permissions
The `SecuritySystem` also provides means to assign, store and load permissions to users or groups using Shiro string
permissions like so:
@@ -323,23 +323,23 @@ log.info("All permissions: {}", securitySystem.getAllPermissions()); // Contains
See also the [Proof Of Concept](https://bitbucket.org/sdorra/scm-manager/src/4a88315d8f3ce0ad9a7c428da1081fb7e4967fe3/scm-webapp/src/main/java/sonia/scm/api/v2/resources/GlobalPermissionPocResource.java?at=feature/global_permissions).
### Evaluating permissions
#### Evaluating permissions
The evaluation of permissions assigned via the `SecuritySystem` is already implemented in the
`DefaultAuthorizationCollector`.
### Dynamically add new items to available permissions
#### Dynamically add new items to available permissions
Adding items (e.g. new users) dynamically during runtime is not implemented by the `SecuritySystem` and in order to
keep this simple we do not plan to support it, yet. See considered alternatives.
## Repository Permissions
### Repository Permissions
For repository permissions we need to implement a new mechanism for discovering available permissions .
Assigning is already implemented (on role level, e.g. `WRITE`), which needs to be adapted to shiro permission level
(e.g. `repository:read:42`).
### List available permissions
#### List available permissions
We need to implement a new mechanism for discovering available permssions. Let's call it `RepositoryPermissionResolver`.
It can work similar to the `DefaultSecuritySystem` (see global permissions). It reads all `repository-permissions.xml`
@@ -362,22 +362,22 @@ This obsoletes the `PermissionType` enum.
</permissions>
```
### Assign permissions
#### Assign permissions
This is already implemented in `RepositoryManager`s. Needs to be adapted from roles (`WRITE`) to shiro permissions
(`repository:read:42`).
### Evaluating permissions
#### Evaluating permissions
Same here: Already implemented in `DefaultAuthorizationCollector`. Needs to be adapted from roles to shiro permissions.
## The Admin flag/role
### The Admin flag/role
In addition to the fine-grained permission management described in this concept, we could just keep the admin flag
(or role) that add the permission `*` to a user.
It's already implemented and a well-known concept from SCMMv1.
## Permission for managing permissions
### Permission for managing permissions
Once permissions can be managed, an additional permission is necessary that answers the question: Who is allowed to
manage permissions?
@@ -391,11 +391,11 @@ and write. That is,
* `permission:read`
* `permission:write`
# i18n
## i18n
Internationalization can be handled using the following conventions:
* All permission i18n are described in `plugins.json` (also for core), see [i18n for Plugins](i18n for Plugins)
* All permission i18n are described in `plugins.json` (also for core), see [i18n for Plugins](i18n%20for%20Plugins.md)
* That way the UI for users and groups can find all the translation in the same file
* Convention for i18n keys: `permissions.<shiro-String>`, containing `displayName` and `description` each.
@@ -412,7 +412,7 @@ Example:
}
```
# Group Manager Plugin
## Group Manager Plugin
One shortcoming of limiting the global permission concept to verbs (not items) is that the functionality of the
`scm-groupmanager-plugin` is not included.
@@ -432,7 +432,7 @@ The following needs to be implemented:
* For storing the permission, make use of the `SecuritySystem` to set the `group:*:<id>` permissions.
# Considered alternatives
## Considered alternatives
This chapter documents some other approaches that were considered but rejected and the reasons for rejecting them.
@@ -450,7 +450,7 @@ This chapter documents some other approaches that were considered but rejected a
of userrepo or groupmanager plugins. Those could still be implemented separately. Still, as SCMMv2 provides a
mechanism for evaluate permissions on the fine-grained `subject:verb:item` level, why not allow our users to make use of it?
# Implemented Permissions
## Implemented Permissions
This chapter documents the permissions implemented in SCM-Manager core and a lot of plugins that can be assigned to users and groups
using the GUI/API.
@@ -458,10 +458,10 @@ Be aware, that this is only a snapshot and may not track each change in a plugin
for a concrete version of the core or a plugin, take a look at the corresponding `permissions.xml`, `repository-permissions.xml` and
`plugins.json` files.
## Global Permissions
### Global Permissions
| plugin | permission | description |
|-|-|-|
|--------|------------|-------------|
| core | `repository:read,pull:*` | read all repositories |
| core | `repository:read,pull,push:*` | write all repositories |
| core | `repository:*` | own all repositories |
@@ -501,10 +501,10 @@ for a concrete version of the core or a plugin, take a look at the corresponding
| ssh | `user:readAuthorizedKeys:*` | read authorization keys for all users |
| ssh | `user:readAuthorizedKeys,writeAuthorizedKeys:*` | configure authorization keys for all users |
## Repository Permissions
### Repository Permissions
| plugin | verb | description |
|-|-|-|
|--------|------|-------------|
| core | `read` | read metadata of repository |
| core | `modify` | modify metadata of repository |
| core | `delete` | delete repository |
@@ -530,13 +530,13 @@ for a concrete version of the core or a plugin, take a look at the corresponding
| branchwp | `branchwp` | administer write protected paths for repository |
| webhook | `webhook` | administer web hools for repository |
## Repository Roles
### Repository Roles
The verbs for roles are merged internally, so that a resulting role will have all verbs specified by any plugin.
Mind that a `OWNER` has overall permissions, including all possible permissions for all plugins.
| plugin | role | verbs |
|-|-|-|
|--------|------|-------|
| core | `READ` | `read`, `pull` |
| core | `WRITE` | `read`, `pull`, `push` |
| core | `OWNER` | `*` |

View File

@@ -69,8 +69,8 @@ In order to extend the ui the plugin requires a `package.json` in the project ro
```
The `main` field of the `package.json` describes the main entry point of the plugin.
The file specified at `main` should use the `binder` from the [@scm-manager/ui-extensions](https://bitbucket.org/scm-manager/ui-extensions) in oder to bind its extensions.
For more information of extensions, binder and extension points, please have a look at the [readme](https://bitbucket.org/scm-manager/ui-extensions/src/master/README.md) of [@scm-manager/ui-extensions](https://bitbucket.org/scm-manager/ui-extensions).
The file specified at `main` should use the `binder` from the [@scm-manager/ui-extensions](../../scm-ui/ui-extensions) in oder to bind its extensions.
For more information of extensions, binder and extension points, please have a look at the [README.md](../../scm-ui/ui-extensions/README.md) of @scm-manager/ui-extensions.
If the plugins gets build (`mvn package` or `mvn install`), the [buildfrontend-maven-plugin](https://github.com/sdorra/buildfrontend-maven-plugin), will call the `build` script of `package.json`.
The build script triggers the `plugin` command of the [@scm-manager/ui-bundler](https://bitbucket.org/scm-manager/ui-bundler).

View File

@@ -1,13 +1,13 @@
# SCM-Manager v2 Test Cases
Describes the expected behaviour for SCMM v2 REST Resources using manual tests.
[TOC]
# Test Cases
The following states general test cases per HTTP Method and en expected return code as well as exemplary curl calls.
Resource-specifics are stated
## GET
## Test Cases
### GET
- Collection Resource (e.g. `/users`)
- Without parameters -> 200
@@ -23,13 +23,13 @@ Resource-specifics are stated
- Unknown field (e.g. `?fields=nam`) returns empty object
- without permission (individual and collection (TODO)) -> 401
## POST
### POST
- not existing -> 204
- existing -> 409
- without permission -> 401
## PUT
### PUT
- existing -> 204
- lastModified is updated
@@ -43,44 +43,37 @@ Resource-specifics are stated
- creationDate, lastModified --> 200 is liberally ignored
- Additional unmodifiable fields per resource, see examples
## DELETE
### DELETE
- existing -> 204
- not existing -> 204
- without permission -> 401
# Exemplary calls & Resource specific test cases
## Exemplary calls & Resource specific test cases
In order to extend those tests to other Resources, have a look at the rest docs. Note that the Content Type is specific to each resource as well.
After calling `mvn -pl scm-webapp compile -P doc` the docs are available at `scm-webapp/target/restdocs/index.html`.
### Users
## Users
#### GET
### GET
#### Collections
```
#!bash
##### Collections
```bash
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/users?sortBy=admin&desc=true"
```
#### Individual
```
#!bash
##### Individual
```bash
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/users/scmadmin?fields=name,_links"
```
### POST
```
#!bash
#### POST
```bash
curl -vu scmadmin:scmadmin --data '{
"properties": null,
"active": true,
@@ -96,14 +89,12 @@ curl -vu scmadmin:scmadmin --data '{
--header "Content-Type: application/vnd.scmm-user+json;v=2" http://localhost:8081/scm/api/v2/users/
```
### PUT
#### PUT
- Change unmodifiable fields
- type? -> can be overwritten right now
```
#!bash
```bash
curl -X PUT -vu scmadmin:scmadmin --data '{
"properties": null,
"active": true,
@@ -119,40 +110,31 @@ curl -X PUT -vu scmadmin:scmadmin --data '{
--header "Content-Type: application/vnd.scmm-user+json;v=2" http://localhost:8081/scm/api/v2/users/xyz
```
### DELETE
```
#!bash
#### DELETE
```bash
curl -X DELETE -vu scmadmin:scmadmin http://localhost:8081/scm/api/v2/users/xyz
```
### Groups
#### GET
## Groups
### GET
#### Collections
```
#!bash
##### Collections
```bash
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/groups/?sortBy=name&desc=true"
```
#### Individual
##### Individual
```
#!bash
```bash
curl -vu scmadmin:scmadmin http://localhost:8081/scm/api/v2/groups/firstGroup
```
### POST
#### POST
```
#!bash
```bash
curl -vu scmadmin:scmadmin --data '{
"creationDate": "2018-06-28T07:42:45.281Z",
"lastModified": "2018-06-28T07:42:45.281Z",
@@ -169,14 +151,11 @@ curl -vu scmadmin:scmadmin --data '{
}
}' \
--header "Content-Type: application/vnd.scmm-group+json" http://localhost:8081/scm/api/v2/groups/
```
### PUT
```
#!bash
#### PUT
```bash
curl -X PUT -vu scmadmin:scmadmin --data '{
"creationDate": "2018-06-28T07:42:45.281Z",
"lastModified": "2018-06-28T07:42:45.281Z",
@@ -195,40 +174,31 @@ curl -X PUT -vu scmadmin:scmadmin --data '{
--header "Content-Type: application/vnd.scmm-group+json" http://localhost:8081/scm/api/v2/groups/firstGroup
```
### DELETE
```
#!bash
#### DELETE
```bash
curl -X DELETE -vu scmadmin:scmadmin http://localhost:8081/scm/api/v2/groups/firstGroup
```
### Repositories
## Repositories
#### GET
### GET
#### Collections
```
#!bash
##### Collections
```bash
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/repositories/?sortBy=name&pageSize=1&desc=true"
```
#### Individual
##### Individual
```
#!bash
```bash
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/repositories/42/arepo"
```
### POST
```
#!bash
#### POST
```bash
curl -vu scmadmin:scmadmin --data '{
"contact": "a@con.tact",
"creationDate": "2018-07-11T08:54:44.569Z",
@@ -236,17 +206,14 @@ curl -vu scmadmin:scmadmin --data '{
"name": "arepo",
"type": "git"
}' --header "Content-Type: application/vnd.scmm-repository+json" http://localhost:8081/scm/api/v2/repositories
```
### PUT
#### PUT
- Change unmodifiable fields
- type? -> Leads to 500 right now
```
#!bash
```bash
curl -X PUT -vu scmadmin:scmadmin --data '{
"contact": "anoter@con.tact",
"creationDate": "2017-04-11T08:54:45.569Z",
@@ -258,20 +225,17 @@ curl -X PUT -vu scmadmin:scmadmin --data '{
}' --header "Content-Type: application/vnd.scmm-repository+json" http://localhost:8081/scm/api/v2/repositories/42/arepo
```
### DELETE
```
#!bash
#### DELETE
```bash
curl -X DELETE -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/repositories/42/anSVNRepo"
```
## Repository Permissions
### Repository Permissions
In this test we do not only test the REST endpoints themselves, but also the effect of the different permissions.
### Prerequisites
#### Prerequisites
For these tests we assume that you have created
@@ -280,21 +244,17 @@ For these tests we assume that you have created
If your entities have other ids, change them according to your data.
### GET
#### GET
This request should return an empty list of permissions:
```
#!bash
```bash
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/repositories/scmadmin/git/permissions/"
```
### POST / READ permission
```
#!bash
#### POST / READ permission
```bash
curl -X POST -vu scmadmin:scmadmin --data '{
"name": "user", "type":"READ"
}' --header "Content-Type: application/vnd.scmm-permission+json"
@@ -303,17 +263,13 @@ curl -X POST -vu scmadmin:scmadmin --data '{
After this, you should be able to `GET` the repository with the user `user`:
```
#!bash
```bash
curl -vu user:user "http://localhost:8081/scm/api/v2/repositories/scmadmin/git/permissions/"
```
Trying to change the repository using `PUT` with the user `user` should result in `403`:
```
#!bash
```bash
curl -vu user:user -X PUT --data '{
"contact": "zaphod.beeblebrox@hitchhiker.com",
"namespace":"scmadmin",
@@ -326,25 +282,19 @@ curl -vu user:user -X PUT --data '{
Reading the permissions of the repository with the user `user` should result in `403`:
```
#!bash
```bash
curl -vu user:user "http://localhost:8081/scm/api/v2/repositories/scmadmin/git/permissions/"
```
The user should be able to `clone` the repository:
```
#!bash
```bash
git clone http://owner@localhost:8081/scm/git/scmadmin/git
```
The user should *not* be able to `push` to the repository:
```
#!bash
```bash
cd git
touch a
git add a
@@ -352,13 +302,11 @@ git commit -m a
git push
```
### PUT / WRITE permission
#### PUT / WRITE permission
It should be possible to change the permission for a specific user:
```
#!bash
```bash
curl -X PUT -vu scmadmin:scmadmin --data '{
"name": "user",
"type":"WRITE"
@@ -367,18 +315,14 @@ curl -X PUT -vu scmadmin:scmadmin --data '{
After this the user `user` should now be able to `push` the repository created and modified beforehand.
```
#!bash
```bash
cd git
git push
```
### OWNER permission
```
#!bash
#### OWNER permission
```bash
curl -X PUT -vu scmadmin:scmadmin --data '{
"name": "user",
"type":"OWNER"
@@ -387,68 +331,57 @@ curl -X PUT -vu scmadmin:scmadmin --data '{
After this, the user should be able to `GET` the permissions:
```
#!bash
```bash
curl -vu user:user "http://localhost:8081/scm/api/v2/repositories/scmadmin/git/permissions/"
```
Additionally, the user should be able to change permissions:
```
#!bash
```bash
curl -X PUT -vu scmadmin:scmadmin --data '{
"name": "user",
"type":"OWNER"
}' --header "Content-Type: application/vnd.scmm-permission+json" "http://localhost:8081/scm/api/v2/repositories/scmadmin/git/permissions/user"
```
### DELETE
#### DELETE
Finally, a user with the role `OWNER` should be able to delete permissions:
```
#!bash
```bash
curl -X DELETE -vu user:user "http://localhost:8081/scm/api/v2/repositories/scmadmin/git/permissions/user"
```
## Branches
### Branches
* In advance: POST repo.
* Clone Repo, add Branches
### GET
#### GET
#### Collections
##### Collections
```
#!bash
```bash
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/repositories/scmadmin/arepo/branches"
```
#### Individual
##### Individual
```
#!bash
```bash
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/repositories/scmadmin/arepo/branches/master"
```
## Configuration
### Configuration
### GET
#### GET
```
#!bash
```bash
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/config"
```
### PUT
```
#!bash
#### PUT
```bash
curl -X PUT -vu scmadmin:scmadmin --data '{
"proxyPassword": "pw",
"proxyPort": 8082,
@@ -473,19 +406,17 @@ curl -X PUT -vu scmadmin:scmadmin --data '{
}' --header "Content-Type: application/vnd.scmm-config+json" http://localhost:8081/scm/api/v2/config
```
## Git Plugin Configuration
### Git Plugin Configuration
### GET
#### GET
```
#!bash
```bash
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/config/git"
```
### PUT
#### PUT
```
#!bash
```bash
curl -X PUT -vu scmadmin:scmadmin --data '{
"gcExpression": "0 0 14-6 ? * FRI-MON",
"repositoryDirectory": "new",
@@ -493,19 +424,17 @@ curl -X PUT -vu scmadmin:scmadmin --data '{
}' --header "Content-Type: application/vnd.scmm-gitConfig+json" http://localhost:8081/scm/api/v2/config/git
```
## Hg Plugin Configuration
### Hg Plugin Configuration
### GET
#### GET
```
#!bash
```bash
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/config/hg"
```
### PUT
#### PUT
```
#!bash
```bash
curl -X PUT -vu scmadmin:scmadmin --data '{
"repositoryDirectory": "new",
"disabled": true,
@@ -516,22 +445,19 @@ curl -X PUT -vu scmadmin:scmadmin --data '{
"useOptimizedBytecode": true,
"showRevisionInId": true
}' --header "Content-Type: application/vnd.scmm-hgConfig+json" http://localhost:8081/scm/api/v2/config/hg
```
### Auto Config
#### Auto Config
#### Default
##### Default
```
#!bash
```bash
curl -v -X PUT -u scmadmin:scmadmin "http://localhost:8081/scm/api/v2/config/hg/auto-configuration"
```
#### Specific config
##### Specific config
```
#!bash
```bash
curl -v -X PUT -u scmadmin:scmadmin --data '{
"repositoryDirectory": "new",
"disabled": true,
@@ -544,113 +470,96 @@ curl -v -X PUT -u scmadmin:scmadmin --data '{
}' --header "Content-Type: application/vnd.scmm-hgConfig+json" "http://localhost:8081/scm/api/v2/config/hg/auto-configuration"
```
### Installations
#### Installations
#### Hg
##### Hg
```
#!bash
```bash
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/config/hg/installations/hg"
```
#### Python
##### Python
```
#!bash
```bash
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/config/hg/installations/python"
```
### Packages
#### Packages
##### GET
```bash
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/config/hg/packages"
```
##### PUT
See [here](https://download.scm-manager.org/pkg/mercurial/packages.xml) for available packages. Will only work on Windows!
```bash
curl -X PUT -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/config/hg/packages/4338c4_x64"
```
### Svn Plugin Configuration
#### GET
```
#!bash
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/config/hg/packages"
```bash
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/config/svn"
```
#### PUT
See [here](https://download.scm-manager.org/pkg/mercurial/packages.xml) for available packages. Will only work on Windows!
```
#!bash
curl -X PUT -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/config/hg/packages/4338c4_x64"
```
## Svn Plugin Configuration
### GET
```
#!bash
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/config/svn"
```
### PUT
```
#!bash
```bash
curl -X PUT -vu scmadmin:scmadmin --data '{
"repositoryDirectory": "new",
"disabled": true,
"enabledGZip": true,
"compatibility": "PRE15"
}' --header "Content-Type: application/vnd.scmm-svnConfig+json" http://localhost:8081/scm/api/v2/config/svn
```
## Repository Types
### Repository Types
### GET
#### GET
#### Collections
```
#!bash
##### Collections
```bash
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/repository-types"
```
#### Individual
```
#!bash
##### Individual
```bash
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/repository-types/hg"
```
## Tags
### Tags
### GET
#### GET
Pre-conditions: the git repository "HeartOfGold-git" exists and contains tags example v1.0 and v1.1
#### Collections
```
#!bash
##### Collections
```bash
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/repositories/scmadmin/HeartOfGold-git/tags/"
```
#### Individual
##### Individual
```
#!bash
```bash
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/repositories/scmadmin/HeartOfGold-git/tags/v1.1"
```
## Content
### Content
### git
#### git
#### Prepare
##### Prepare
```
#!bash
```bash
curl -vu scmadmin:scmadmin --data '{
"contact": "a@con.tact",
"creationDate": "2018-07-11T08:54:44.569Z",
@@ -669,10 +578,10 @@ git add .
git commit -m 'Msg'
git push
```
#### Query and assert
```
#!bash
##### Query and assert
```bash
# Assert Content type text plain
curl -X HEAD -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/repositories/scmadmin/arepo/content/$(git rev-parse HEAD)/b.txt" 2>&1 | grep Content-Type
# Assert file content "bbb"
@@ -689,12 +598,11 @@ curl -X HEAD -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/repositorie
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/repositories/scmadmin/arepo/content/$(git rev-parse HEAD)/RestActionResult.java"
```
### hg
#### hg
#### Prepare
##### Prepare
```
#!bash
```bash
curl -vu scmadmin:scmadmin --data '{
"contact": "a@con.tact",
"creationDate": "2018-07-11T08:54:44.569Z",
@@ -713,11 +621,9 @@ hg commit -m 'msg'
hg push
```
#### Query and assert
```
#!bash
##### Query and assert
```bash
# Assert Content type text plain
curl -X HEAD -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/repositories/scmadmin/hgrepo/content/$(hg identify --id)/b.txt" 2>&1 | grep Content-Type
# Assert file content "bbb"
@@ -734,12 +640,11 @@ curl -X HEAD -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/repositorie
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/repositories/scmadmin/hgrepo/content/$(hg identify --id)/RestActionResult.java"
```
### svn
#### svn
#### Prepare
##### Prepare
```
#!bash
```bash
curl -vu scmadmin:scmadmin --data '{
"contact": "a@con.tact",
"creationDate": "2018-07-11T08:54:44.569Z",
@@ -757,10 +662,9 @@ svn add ./*
svn commit --non-interactive --no-auth-cache --username scmadmin --password scmadmin -m 'msg'
```
#### Query and assert
##### Query and assert
```
#!bash
```bash
REVISION=$(svn --non-interactive --no-auth-cache --username scmadmin --password scmadmin info -r 'HEAD' --show-item revision | xargs echo -n)
# Assert Content type text plain
curl -X HEAD -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/repositories/scmadmin/svnrepo/content/${REVISION}/b.txt" 2>&1 | grep Content-Type
@@ -778,14 +682,13 @@ curl -X HEAD -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/repositorie
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/repositories/scmadmin/svnrepo/content/${REVISION}/RestActionResult.java"
```
## Access Token
### Access Token
### Admin
#### Admin
#### Output all links of index resource
##### Output all links of index resource
```
#!bash
```bash
TOKEN=$(curl -s 'http://localhost:8081/scm/api/v2/auth/access_token' -H 'content-type: application/json' --data '{
"cookie": false,
"grant_type": "password",
@@ -795,12 +698,11 @@ TOKEN=$(curl -s 'http://localhost:8081/scm/api/v2/auth/access_token' -H 'content
curl -s http://localhost:8081/scm/api/v2/ -H "Authorization: Bearer ${TOKEN}" | jq
```
#### Output only "config" and default logged in links
##### Output only "config" and default logged in links
default logged in links = self, uiPlugins, me, logout
```
#!bash
```bash
TOKEN=$(curl -s 'http://localhost:8081/scm/api/v2/auth/access_token' -H 'content-type: application/json' --data '{
"cookie": false,
"grant_type": "password",
@@ -813,13 +715,11 @@ TOKEN=$(curl -s 'http://localhost:8081/scm/api/v2/auth/access_token' -H 'content
curl -s http://localhost:8081/scm/api/v2/ -H "Authorization: Bearer ${TOKEN}" | jq
```
### non-Admin
#### non-Admin
Create non-admin user
```
#!bash
```bash
curl -vu scmadmin:scmadmin --data '{
"active": true,
"admin": false,
@@ -832,12 +732,11 @@ curl -vu scmadmin:scmadmin --data '{
--header "Content-Type: application/vnd.scmm-user+json;v=2" http://localhost:8081/scm/api/v2/users/
```
#### Standard permissions of a logged in user without additional permissions
##### Standard permissions of a logged in user without additional permissions
Standard links of a logged in user = self, uiPlugins, me, logout, autocomplete, repositories
```
#!bash
```bash
TOKEN=$(curl -s 'http://localhost:8081/scm/api/v2/auth/access_token' -H 'content-type: application/json' --data '{
"cookie": false,
"grant_type": "password",
@@ -847,14 +746,12 @@ TOKEN=$(curl -s 'http://localhost:8081/scm/api/v2/auth/access_token' -H 'content
curl -s http://localhost:8081/scm/api/v2/ -H "Authorization: Bearer ${TOKEN}" | jq
```
#### Scope requests permission the user doesn't have
##### Scope requests permission the user doesn't have
This should not retrun `configuration` links, even though this scope was requested, because the user does not have the configuration permission. Otherwise this would be a major security flaw!
Compare to admin tests above.
```
#!bash
```bash
TOKEN=$(curl -s 'http://localhost:8081/scm/api/v2/auth/access_token' -H 'content-type: application/json' --data '{
"cookie": false,
"grant_type": "password",

View File

@@ -2,12 +2,12 @@
Use this as a kind of a checklist whenever you develop something in the UI of SCM-Manager 2.x., regardless whether you are developing core features or plugins.
| | Don't forget to |
|-|-|
| | Don't forget to |
|---|-----------------|
| ☐ | use imports with `@scm-manager`, eg. `@scm-manager/ui-components` |
| ☐ | let buttons have whitespace |
| ☐ | update german translation |
| ☐ | add help icons to input components |
| ☐ | not use colors directly, but refer to `is-primary` or `is-warning` |
| ☐ | make sure your view works on mobile devices |
| ☐ | document extension points here: https://bitbucket.org/sdorra/scm-manager/wiki/v2/Extension-Points |
| ☐ | document [extension points in wiki](Extension-Points.md) |

View File

@@ -46,7 +46,7 @@ Here are some example error cases:
In SCM-Manager we make heavy use of Java `Exception`s, not only for technical exceptions in the program flow like reading corrupt file systems, but also for "user errors" like illegal values or requests for missing data.
These exceptions are handled by JEE [`ExceptionMapper`](https://docs.oracle.com/javaee/7/api/javax/ws/rs/ext/ExceptionMapper.html)s. Doing so, it is possible to concentrate on implementing the "happy path" without the need to explicitly handle error cases everywhere (for example you do not have to check whether got `null` as a result). Nonetheless we still had to decide whether to use checked or unchecked exceptions. We have chosen to use unchecked exceptions due to the following reasons:
These exceptions are handled by JEE [`ExceptionMapper`](https://docs.oracle.com/javaee/7/api/javax/ws/rs/ext/ExceptionMapper.html) s. Doing so, it is possible to concentrate on implementing the "happy path" without the need to explicitly handle error cases everywhere (for example you do not have to check whether got `null` as a result). Nonetheless we still had to decide whether to use checked or unchecked exceptions. We have chosen to use unchecked exceptions due to the following reasons:
- Checked exceptions would have had to be declared everywhere.
- A checked exception can somehow trigger a "I have to handle this though I don't know how" feeling that would be wrong, because we do have mappers for these exceptions.
@@ -117,7 +117,7 @@ To be able to retrace errors a proper logging is indispensible. So we decided to
SCM-Manager uses [http status codes](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes) to identify types of errors (and successes, that is) and doing so provides a first hint, what may have gone wrong:
| Status code | Principal error cause |
|-|-|
|-------------|-----------------------|
| 200 | No error, everything is fine |
| 201 | The item has been created without an error |
| 204 | The request has been processed without an error |
@@ -133,7 +133,7 @@ SCM-Manager uses [http status codes](https://en.wikipedia.org/wiki/List_of_HTTP_
Whenever possible, an error response contains useful details about the error in a simple json format. These information are _not_ translated, so this is the responsibility of the frontend.
| key | content | availability |
|-|-|-|
|-----|---------|--------------|
| transactionId | A unique id to link your request to log messages | always |
| errorCode | A code that can be used for translated error messages. To prevent the usage of the same codes in different exceptions we decided to use generated ids. | always |
| context | (repo/key, branch/key, ...) | optional |
@@ -184,5 +184,5 @@ Basically we have to differentiate between errors the user can handle ("user err
While creating this concepts we tried to adhere to best practices considering APIs of Twitter, Facebook, Bing, Spotify and others, as summarized in the following articles:
* https://apigee.com/about/blog/technology/restful-api-design-what-about-errors
* https://nordicapis.com/best-practices-api-error-handling/
* [RESTful API Design: What About Errors? (Apigee)](https://apigee.com/about/blog/technology/restful-api-design-what-about-errors)
* [Best Practices for API Error Handling (Nordic APIS)](https://nordicapis.com/best-practices-api-error-handling/)

View File

@@ -1,22 +1,31 @@
# i18n for Plugins
How to internationalize your own plugin
---------------------------------------
### Create the plugins.json file
The translation file for plugins should be stored in the resources path
locales/{lang}/plugins.json
locales/*{lang}*/plugins.json
All translation keys are parts of a \*\*unique root key\*\*. It is
recommended to \*\*use the maven artifactId of the plugin as root
key\*\* to avoid conflicts with other plugin. All translation files
All translation keys are parts of a **unique root key**. It is
recommended to **use the maven artifactId of the plugin as root
key** to avoid conflicts with other plugin. All translation files
would be collected and merged to a single file containing all
translations. Therefore it is \*\*necessary to use a unique root key\*\*
translations. Therefore it is **necessary to use a unique root key**
for the translations.
//\*\*example:\*\*//
***Example:***
the translation file of the svn plugin is stored in
locales/en/plugins.json
```json
{
"scm-svn-plugin": {
"information": {
"checkout" : "Checkout repository"
}
}
}
```
### Usage in the own React components
@@ -26,10 +35,25 @@ The following steps are needed to use react-i18next in the own
components
- import react-i18next
```javascript
import { translate } from "react-i18next";
```
- declare the translation method as property
- declare the translation method `t: string => string` as property
```javascript
type Props = {
t: string => string
}
```
- wrap the react component with the translate method and give the json
translation file name \"plugins\"
```javascript
export default translate("plugins")(MyPluginComponent);
```
- use the translation keys like this:
```javascript
const { t } = this.props;
<h3>{t("scm-svn-plugin.information.checkout")}</h3>
```

View File

@@ -33,39 +33,43 @@
* Languages & Frameworks / Javascript
* JavaScript language version: Flow
* Flow package or executable: .../scm-ui/node_modules/flow-bin
* Flow package or executable: .../node_modules/flow-bin
* Languages & Frameworks / Javascript / Code Quality Tools / ESLint
* Enable
* ESLint package: .../scm-ui/node_modules/eslint
* ESLint package: .../node_modules/eslint
* -OR- Automatic ESLint configuration
* Languages & Frameworks / Javascript / Prettier
* Prettier package: .../scm-ui/node_modules/prettier
* Prettier package: .../node_modules/prettier
* Tools / File Watchers
* Add Prettier
* Deselect: Track only root files
* Scope: Current File
* Program: $ProjectFileDir$/scm-ui/node_modules/.bin/prettier
* Working Directory: $ProjectFileDir$/scm-ui
* Program: $ProjectFileDir$/node_modules/.bin/prettier
* Working Directory: $ProjectFileDir$
* Run Configurations / Edit Configuration
* Templates / Jest
* Jest package: .../scm-ui/node_modules/jest
* Jest package: .../node_modules/jest
* Jest options: --config node_modules/@scm-manager/ui-bundler/src/jest.ide.config.js
* Run Configurations / Edit Configuration
* Add npm
* Name: run-frontend
* package-json: .../scm-ui/package.json
* package-json: .../package.json
* Command: run
* Scripts: start
* Scripts: serve
## Both
### Plugins
* EditorConfig
### Settings
* Editor / Copyright / Copyright Profiles
* Add Profile
* Name: SCM-MIT

View File

@@ -8,7 +8,7 @@ Also it is a good guide line to adapt Postel's law: *Be conservative in what you
## Java
Please mind the [EditorConfig](https://editorconfig.org/) file `.editorconf` in the root of the SCM-Manager and the [configuration guide](intellij-idea-configuration) for IntelliJ IDEA. There are plugins for a lot of IDEs and text editors.
Please mind the [EditorConfig](https://editorconfig.org/) file `.editorconf` in the root of the SCM-Manager and the [configuration guide](intellij-idea-configuration.md) for IntelliJ IDEA. There are plugins for a lot of IDEs and text editors.
- Indentation with 2 spaces and no tabs (we have kept this rule from 1.x)
- Order of members:
@@ -24,4 +24,5 @@ Please mind the [EditorConfig](https://editorconfig.org/) file `.editorconf` in
- Though we will not define a maximum line length, you should break lines when they go beyond 120 characters or so.
## JavaScript
Take a look at our styleguide using `yarn serve` in ui-styles directory.
Take a look at our styleguide using `yarn serve` in [ui-styles](scm-ui/ui-styles) directory.

View File

@@ -1,12 +1,11 @@
WebHook Plugin
--------------
# WebHook Plugin
### Installation
- Login in as administrator
- Open Plugins
- Install scm-webhook-plugin
- Restart your applicationserver
- Login in as administrator
- Open Plugins
- Install scm-webhook-plugin
- Restart your applicationserver
### Usage
@@ -15,27 +14,24 @@ You could now insert a new webhook for a repository. The url pattern is
the url of the remote webserver. It is possible to use placeholders in
the url:
- \${repository.id} - the id of the current repository
- \${repository.name} - the name of the current repository
- \${first.id} - the if of the first changeset in the push
- \${last.author.name} - the name of the author of the last changeset
in the commit
- `${repository.id}` - the id of the current repository
- `${repository.name}` - the name of the current repository
- `${first.id}` - the if of the first changeset in the push
- `${last.author.name}` - the name of the author of the last changeset in the commit
If you enable the \"Execute on every commit\" checkbox the last and
first patterns are not available, but you could use the commit pattern
e.g:
- \${changeset.id} - The id of the current changeset
- \${changeset.author.name} - The name of the author of the current
changeset
- `${changeset.id}` - The id of the current changeset
- `${changeset.author.name}` - The name of the author of the current changeset
If you need more informations about the available patterns have a look
at the javadoc. Ever method which starts with a get could be used in a
pattern (Repository.getName() would be \${repository.name}):
- [repository](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/Repository.html "wikilink")
- [changeset, first and
last](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/Changeset.html "wikilink")
- [repository](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/Repository.html)
- [changeset, first and last](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/Changeset.html)
Since version 1.4 of the webhook-plugin there is also a global
configuration at \"Config-\>General\". Global WebHooks are executed for