Merge remote-tracking branch 'origin/develop' into feature/add_events_for_landingpage
@@ -7,6 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
## Unreleased
|
## Unreleased
|
||||||
### Added
|
### Added
|
||||||
- Fire various plugin events ([#1088](https://github.com/scm-manager/scm-manager/pull/1088))
|
- Fire various plugin events ([#1088](https://github.com/scm-manager/scm-manager/pull/1088))
|
||||||
|
- Display version for plugins ([#1089](https://github.com/scm-manager/scm-manager/pull/1089)
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- Simplified collapse state management of the secondary navigation ([#1086](https://github.com/scm-manager/scm-manager/pull/1086)
|
- Simplified collapse state management of the secondary navigation ([#1086](https://github.com/scm-manager/scm-manager/pull/1086)
|
||||||
@@ -14,7 +15,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
### Fixed
|
### Fixed
|
||||||
- Authentication for write requests for repositories with anonymous read access ([#108](https://github.com/scm-manager/scm-manager/pull/1081))
|
- Authentication for write requests for repositories with anonymous read access ([#108](https://github.com/scm-manager/scm-manager/pull/1081))
|
||||||
|
|
||||||
|
|
||||||
## 2.0.0-rc6 - 2020-03-26
|
## 2.0.0-rc6 - 2020-03-26
|
||||||
### Added
|
### Added
|
||||||
- Extension point to add links to the repository cards from plug ins ([#1041](https://github.com/scm-manager/scm-manager/pull/1041))
|
- Extension point to add links to the repository cards from plug ins ([#1041](https://github.com/scm-manager/scm-manager/pull/1041))
|
||||||
|
|||||||
20
README.md
@@ -23,22 +23,22 @@ This branch (default) is for the development of SCM-Manager 2.x. If you are inte
|
|||||||
|
|
||||||
## News
|
## News
|
||||||
|
|
||||||
- \*\*2018-09-25\*\* - [SCM-Manager 2 gets a boost by Cloudogu
|
- **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")
|
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
|
- **2018-05-04** - SCM-Manager 1.60 released
|
||||||
([download](http://www.scm-manager.org/download/ "wikilink") \|
|
([download](http://www.scm-manager.org/download/) \|
|
||||||
[release notes](release-notes.md "wikilink"))
|
[release notes](release-notes.md))
|
||||||
- \*\*2018-04-11\*\* - SCM-Manager 1.59 released
|
- **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
|
## Mailing List
|
||||||
|
|
||||||
- <scmmanager@googlegroups.com> -
|
- <scmmanager@googlegroups.com> -
|
||||||
[archive](http://groups.google.com/group/scmmanager "wikilink") \|
|
[archive](http://groups.google.com/group/scmmanager) \|
|
||||||
[subscribe](mailto:scmmanager+subscribe@googlegroups.com "wikilink")
|
[subscribe](mailto:scmmanager+subscribe@googlegroups.com)
|
||||||
\|
|
\|
|
||||||
[unsubscribe](mailto:scmmanager+unsubscribe@googlegroups.com "wikilink")
|
[unsubscribe](mailto:scmmanager+unsubscribe@googlegroups.com)
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
You can find the complete documentation in the [docs/](docs/Home.md) directory.
|
You can find the complete documentation in the [docs/](docs/Home.md) directory.
|
||||||
|
|||||||
@@ -1,21 +1,18 @@
|
|||||||
ExtensionPoints
|
# Extension Points
|
||||||
---------------
|
|
||||||
|
|
||||||
- [AuthenticationHandler](http://docs.scm-manager.org/apidocs/latest/sonia/scm/web/security/AuthenticationHandler.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 "wikilink")
|
- [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 "wikilink")
|
- [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 "wikilink")
|
- [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)
|
||||||
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)
|
||||||
- [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)
|
||||||
- [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)
|
||||||
- [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)
|
||||||
- [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)
|
||||||
- [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)
|
||||||
- [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)
|
||||||
- [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)
|
||||||
- [
|
- [ResourceHandler](http://docs.scm-manager.org/apidocs/latest/sonia/scm/resources/ResourceHandler.html)
|
||||||
RepositoryRequestListener](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/RepositoryRequestListener.html "wikilink")
|
- [ServletModule](http://google-guice.googlecode.com/svn/tags/3.0/javadoc/com/google/inject/servlet/ServletModule.html)
|
||||||
- [ResourceHandler](http://docs.scm-manager.org/apidocs/latest/sonia/scm/resources/ResourceHandler.html "wikilink")
|
- [UserListener](http://docs.scm-manager.org/apidocs/latest/sonia/scm/user/UserListener.html)
|
||||||
- [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")
|
|
||||||
|
|||||||
151
docs/Home.md
@@ -16,104 +16,89 @@ repositories over http.
|
|||||||
|
|
||||||
### News
|
### News
|
||||||
|
|
||||||
- \*\*2018-09-25\*\* - [SCM-Manager 2 gets a boost by Cloudogu
|
- **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/)
|
||||||
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/) \|
|
||||||
- \*\*2018-05-04\*\* - SCM-Manager 1.60 released
|
[release notes](release-notes.md))
|
||||||
([download](http://www.scm-manager.org/download/ "wikilink") \|
|
- **2018-04-11** - SCM-Manager 1.59 released
|
||||||
[release notes](release-notes.md "wikilink"))
|
|
||||||
- \*\*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
|
### Mailing List
|
||||||
|
|
||||||
- <scmmanager@googlegroups.com> -
|
- <scmmanager@googlegroups.com> -
|
||||||
[archive](http://groups.google.com/group/scmmanager "wikilink") \|
|
[archive](http://groups.google.com/group/scmmanager) \|
|
||||||
[subscribe](mailto:scmmanager+subscribe@googlegroups.com "wikilink")
|
[subscribe](mailto:scmmanager+subscribe@googlegroups.com)
|
||||||
\|
|
\|
|
||||||
[unsubscribe](mailto:scmmanager+unsubscribe@googlegroups.com "wikilink")
|
[unsubscribe](mailto:scmmanager+unsubscribe@googlegroups.com)
|
||||||
|
|
||||||
### Use SCM-Manager
|
### Use SCM-Manager
|
||||||
|
|
||||||
- [Getting started](getting-started.md "wikilink")
|
- [Getting started](getting-started.md)
|
||||||
- [Download latest
|
- [Download latest version](http://www.scm-manager.org/download/)
|
||||||
version](http://www.scm-manager.org/download/ "wikilink")
|
- [Frequently Asked Questions](faq.md)
|
||||||
- [FAQ](faq.md "wikilink")
|
- [Upgrade SCM-Manager to a newer version](upgrade.md)
|
||||||
- [Upgrade SCM-Manager to a newer version](upgrade.md "wikilink")
|
- [Download latest snapshot release](download-snapshot-release.md)
|
||||||
- [Download latest snapshot
|
- [Download Archive](download-archive.md)
|
||||||
release](download-snapshot-release.md "wikilink")
|
- [Command line client](command-line-client.md)
|
||||||
- [Download Archive](download-archive.md "wikilink")
|
- [SCM-Server SSL](scm-server-ssl.md)
|
||||||
- [Command line client](command-line-client.md "wikilink")
|
- [ApplicationServer (Tomcat/Glassfish/Jetty)](applicationserver.md)
|
||||||
- [SCM-Server SSL](scm-server-ssl.md "wikilink")
|
- [Using SCM-Manager with Apache mod\_proxy](apache/apache-mod_proxy.md)
|
||||||
- [ApplicationServer
|
- [Using SCM-Manager with Nginx](nginx.md)
|
||||||
(Tomcat/Glassfish/Jetty)](applicationserver.md "wikilink")
|
- [Using SCM-Manager with IIS (Helicon)](iis-helicon.md)
|
||||||
- [Using SCM-Manager with Apache
|
- [Permissions](Permissions.md)
|
||||||
mod\_proxy](apache/apache-mod_proxy.md "wikilink")
|
- [Plugins](http://plugins.scm-manager.org/scm-plugin-backend/page/index.html)
|
||||||
- [Using SCM-Manager with Nginx](nginx.md "wikilink")
|
- [Revision Control Plugin Comparison](rv-plugin-comparison.md)
|
||||||
- [Using SCM-Manager with ISS
|
- [Screenshots](http://www.scm-manager.org/screenshots/)
|
||||||
(Helicon)](SCM-Manager%20on%20ISS%20Helicon.md "wikilink")
|
- [Mercurial Subrepositories](subrepositories.md)
|
||||||
- [Permissions](Permissions.md "wikilink")
|
- [Unix Daemons and Windows Services](daemons.md)
|
||||||
- [Plugins](http://plugins.scm-manager.org/scm-plugin-backend/page/index.html "wikilink")
|
- [RPM and DEB packages](RPM%20and%20DEB%20packages.md)
|
||||||
- [Revision Control Plugin
|
- [Build windows mercurial packages for SCM-Manager](https://bitbucket.org/sdorra/build-win-hg-packages)
|
||||||
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")
|
|
||||||
|
|
||||||
### Plugin documentation
|
### Plugin documentation
|
||||||
|
|
||||||
- [Active Directory Plugin](active-directory-plugin.md "wikilink")
|
- [Active Directory Plugin](active-directory-plugin.md)
|
||||||
- [Branch Write Protect Plugin](branchwp-plugin.md "wikilink")
|
- [Branch Write Protect Plugin](branchwp-plugin.md)
|
||||||
- [Jenkins Plugin](jenkins-plugin.md "wikilink")
|
- [Jenkins Plugin](jenkins-plugin.md)
|
||||||
- [Jira Plugin](jira-plugin.md "wikilink")
|
- [Jira Plugin](jira-plugin.md)
|
||||||
- [Mail Plugin](mail-plugin.md "wikilink")
|
- [Mail Plugin](mail-plugin.md)
|
||||||
- [Path Write Protect Plugin](pathwp-plugin.md "wikilink")
|
- [Path Write Protect Plugin](pathwp-plugin.md)
|
||||||
- [Redmine Plugin](redmine-plugin.md "wikilink")
|
- [Redmine Plugin](redmine-plugin.md)
|
||||||
- [Scheduler Plugin](scheduler-plugin.md "wikilink")
|
- [Scheduler Plugin](scheduler-plugin.md)
|
||||||
- [Trac Plugin](trac-plugin.md "wikilink")
|
- [Trac Plugin](trac-plugin.md)
|
||||||
- [WebHook Plugin](webhook-plugin.md "wikilink")
|
- [WebHook Plugin](webhook-plugin.md)
|
||||||
|
|
||||||
### Development
|
### Development
|
||||||
|
|
||||||
- [Building SCM-Manager from source](build-from-source.md "wikilink")
|
- [Building SCM-Manager from source](build-from-source.md)
|
||||||
- [Java Client API](java-client-api.md "wikilink")
|
- [Java Client API](java-client-api.md)
|
||||||
- [Code
|
- [Code Snippets](code-snippets.md)
|
||||||
Snippets](https://bitbucket.org/sdorra/scm-manager/wiki/code-snippets "wikilink")
|
- [Configuring Eclipse projects for SCM-Manager](configure-eclipse.md)
|
||||||
- [Configuring Eclipse projects for
|
- [Plugin Descriptor](plugin-descriptor.md)
|
||||||
SCM-Manager](configure-eclipse.md "wikilink")
|
- [ExtensionPoints](ExtensionPoints.md)
|
||||||
- [Plugin Descriptor](plugin-descriptor.md "wikilink")
|
- [How to create your own plugin](howto-create-a-plugin.md)
|
||||||
- [ExtensionPoints](ExtensionPoints.md "wikilink")
|
- [Injection Objects](injectionObjects.md)
|
||||||
- [How to create your own plugin](howto-create-a-plugin.md "wikilink")
|
- [API documentation](http://docs.scm-manager.org/apidocs/latest/)
|
||||||
- [Injection Objects](injectionObjects.md "wikilink")
|
- [WebService documentation](http://docs.scm-manager.org/restdocs/current/)
|
||||||
- [API
|
|
||||||
documentation](http://docs.scm-manager.org/apidocs/latest/ "wikilink")
|
|
||||||
- [WebService
|
|
||||||
documentation](http://docs.scm-manager.org/restdocs/current/ "wikilink")
|
|
||||||
|
|
||||||
### SCM Manager 2
|
### SCM Manager 2
|
||||||
|
|
||||||
- [Configuration for Intellij
|
- [Getting started](v2/getting-started.md)
|
||||||
IDEA](v2/intellij-idea-configuration.md "wikilink")
|
- [Configuration for Intellij IDEA](v2/intellij-idea-configuration.md)
|
||||||
- [State of SCM-Manager 2
|
- [SCM v2 Test Cases](v2/test-cases.md)
|
||||||
development](v2/State%20of%20SCM-Manager%202%20development.md "wikilink")
|
- [Table of decisions made during development](v2/decision-table.md)
|
||||||
- [SCM v2 Test Cases](v2/SCMM-v2-Test-Cases.md "wikilink")
|
- [Definition of done](definition-of-done.md)
|
||||||
- [Table of decisions made during
|
- [Style Guide](v2/style-guide.md)
|
||||||
development](v2/Decision-Table.md "wikilink")
|
- [Error Handling in REST, Java, UI](v2/error-handling.md)
|
||||||
- [Definition of done](Definition%20of%20done.md "wikilink")
|
- [Create a new Plugin](v2/create-plugin.md)
|
||||||
- [Style Guide](v2/style-guide.md "wikilink")
|
- [Migration Wizard](v2/migration-wizard.md)
|
||||||
- [Error Handling in REST, Java, UI](v2/error-handling.md "wikilink")
|
- [Plugin Development](v2/plugin-development.md)
|
||||||
- [Create a new Plugin](v2/Create%20a%20new%20Plugin.md "wikilink")
|
- [i18n for Plugins](v2/i18n-for-plugins.md)
|
||||||
- [Migrate Plugin from v1](v2/Migrate%20Plugin%20from%20v1.md "wikilink")
|
- [Extension Points](v2/extension-points.md)
|
||||||
- [Plugin Development](v2/Plugin%20Development.md "wikilink")
|
- [Migrate Plugin from v1](v2/migrate-plugin-from-v1.md)
|
||||||
- [i18n for Plugins](v2/i18n%20for%20Plugins.md "wikilink")
|
- [API changes](v2/api-changes.md)
|
||||||
- [Extension Points](v2/Extension-Points.md "wikilink")
|
- [Changes to ui-components/ui-types](v2/changes-to-ui-components-or-ui-types.md)
|
||||||
- [API changes](v2/API%20changes.md "wikilink")
|
- [Permission concept](v2/permission-concept.md)
|
||||||
- [ui-components/ui-types](v2/UI%20Additions%20or%20Changes%20to%20ui-components%20or%20ui-types.md "wikilink")
|
- [Vulnerabilities](v2/vulnerabilities.md)
|
||||||
- [Vulnerabilities](v2/vulnerabilities.md "wikilink")
|
- [Common pitfall](v2/common-pitfall.md)
|
||||||
- [Common pitfall](v2/Common%20pitfall.md "wikilink")
|
- [Release process](v2/release-process.md)
|
||||||
- [Release process](v2/Release%20process.md "wikilink")
|
- [Known Issues](v2/known-issues.md)
|
||||||
- [Migration Wizard](v2/Migration-Wizard.md "wikilink")
|
|
||||||
- [Known Issues](v2/Known%20Issues.md "wikilink")
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
Moved to [State of SCM-Manager 2 development](https://bitbucket.org/sdorra/scm-manager/wiki/State%20of%20SCM-Manager%202%20development)
|
Moved to [State of SCM-Manager 2 development](State of SCM-Manager 2 development.md)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
## Permissions ##
|
## Permissions
|
||||||
|
|
||||||
SCM-Manager knows three different types of repository permissions:
|
SCM-Manager knows three different types of repository permissions:
|
||||||
|
|
||||||
@@ -11,19 +11,19 @@ OWNER | The user is able to read, write and to manager permissions
|
|||||||
Repository permissions can be assigned to users and groups. The permissions can be assigned
|
Repository permissions can be assigned to users and groups. The permissions can be assigned
|
||||||
to only one repository or to each repository. Administrators have owner permissions on every repository.
|
to only one repository or to each repository. Administrators have owner permissions on every repository.
|
||||||
|
|
||||||
### Repository permissions ###
|
### Repository permissions
|
||||||
|
|
||||||
Repository permissions can be managed by administrators and by repository owners.
|
Repository permissions can be managed by administrators and by repository owners.
|
||||||
The permissions can be managed on the permission tab of each repository.
|
The permissions can be managed on the permission tab of each repository.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
### Global permissions ###
|
### Global permissions
|
||||||
|
|
||||||
Global permissions are only manageable by administrators. They can be managed at *Security -> Users* or *Security -> Groups*.
|
Global permissions are only manageable by administrators. They can be managed at *Security -> Users* or *Security -> Groups*.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
### Administrators ###
|
### Administrators
|
||||||
|
|
||||||
Administrators can mark other users as administrators at *Security -> Users*.
|
Administrators can mark other users as administrators at *Security -> Users*.
|
||||||
@@ -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:
|
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
|
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:
|
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]
|
[scm-releases]
|
||||||
name=SCM-Manager Releases
|
name=SCM-Manager Releases
|
||||||
baseurl=http://maven.scm-manager.org/nexus/content/repositories/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:
|
After file creation execute the following command to install scm-server:
|
||||||
|
|
||||||
|
|
||||||
```
|
```bash
|
||||||
#!bash
|
|
||||||
|
|
||||||
# install the scm-server package
|
# install the scm-server package
|
||||||
sudo yum install scm-server
|
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:
|
The DEB package is tested with Debian and Ubuntu. Execute the following commands to install scm-server:
|
||||||
|
|
||||||
```
|
```bash
|
||||||
#!bash
|
|
||||||
|
|
||||||
# add the scm-manager repository
|
# add the scm-manager repository
|
||||||
echo "echo 'deb http://maven.scm-manager.org/nexus/content/repositories/releases ./' >> /etc/apt/sources.list" | sudo sh
|
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
|
# install scm-server
|
||||||
sudo apt-get install scm-server
|
sudo apt-get install scm-server
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Migration from ApplicationServer or Standalone version
|
## Migration from ApplicationServer or Standalone version
|
||||||
|
|||||||
@@ -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).
|
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 deprecated and unused stuff
|
||||||
* remove old style listeners
|
* remove old style listeners
|
||||||
* replace [guava eventbus](https://code.google.com/p/guava-libraries/wiki/EventBusExplained) with [legman](https://github.com/sdorra/legman)
|
* 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
|
* 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
|
* 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
|
* use [apache shiro](http://shiro.apache.org/) everywhere
|
||||||
* improve authentication
|
* improve authentication
|
||||||
* improve user and group management
|
* improve user and group management
|
||||||
* use permission instead of roles
|
* 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
|
* completely new designed rest api
|
||||||
|
|
||||||
## Milestone 4 ##
|
## Milestone 4
|
||||||
|
|
||||||
### Main goals ###
|
### Main goals
|
||||||
* completely new user interface
|
* completely new user interface
|
||||||
|
|
||||||
## Milestone 5 ##
|
## Milestone 5
|
||||||
|
|
||||||
### Main goals ###
|
### Main goals
|
||||||
* improve repository api
|
* improve repository api
|
||||||
@@ -4,8 +4,6 @@
|
|||||||
- Log in as a user of that directory
|
- Log in as a user of that directory
|
||||||
- Run the scm-server batch file
|
- Run the scm-server batch file
|
||||||
- Install the active-directory plugin
|
- Install the active-directory plugin
|
||||||
- restart the scm-server
|
- 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.
|
|
||||||
|
|||||||
@@ -1,10 +1,34 @@
|
|||||||
SCM-Server and Apache mod\_jk
|
# SCM-Server and Apache mod\_jk
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
### Apache Configuration
|
### 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)
|
### 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
|
### SCM-Server conf/server-config.xml
|
||||||
|
|
||||||
Uncomment the following lines:
|
Uncomment the following lines:
|
||||||
|
```xml
|
||||||
|
<Call name="addConnector">
|
||||||
|
<Arg>
|
||||||
|
<New class="org.eclipse.jetty.ajp.Ajp13SocketConnector">
|
||||||
|
<Set name="port">8009</Set>
|
||||||
|
</New>
|
||||||
|
</Arg>
|
||||||
|
</Call>
|
||||||
|
```
|
||||||
|
|||||||
@@ -1,27 +1,51 @@
|
|||||||
SCM-Server and Apache mod\_proxy
|
# SCM-Server and Apache mod\_proxy
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
### Apache configuration
|
### Apache configuration
|
||||||
|
|
||||||
- - Warning\*\*: Setting ProxyPassReverseCookiePath would most
|
```apache
|
||||||
likely cause problems with session handling!
|
ProxyPass /scm http://localhost:8080/scm
|
||||||
|
ProxyPassReverse /scm http://localhost:8080/scm
|
||||||
<!-- -->
|
ProxyPassReverse /scm http://servername:8080/scm
|
||||||
|
<Location /scm>
|
||||||
- - Note\*\*: If you encounter timeout problems, please have a look
|
Order allow,deny
|
||||||
[here](http://httpd.apache.org/docs/current/mod/mod_proxy.html#workers "wikilink").
|
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
|
### SCM-Server conf/server-config.xml
|
||||||
|
|
||||||
NOTE: This file is found in the installation directory, not the user\'s
|
NOTE: This file is found in the installation directory, not the user\'s
|
||||||
home directory.
|
home directory.
|
||||||
|
|
||||||
Uncomment following line: Example: === SCM-Manager Configuration version
|
Uncomment following line:
|
||||||
1.5 and above ==
|
```xml
|
||||||
|
<Set name="forwarded">true</Set>
|
||||||
|
```
|
||||||
|
|
||||||
|
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\"
|
1. Login as an admin user and select \"General\"
|
||||||
2. Set the \"Base Url\" to the URL of the Apache (\*\*warning:\*\*
|
2. Set the \"Base Url\" to the URL of the Apache (**warning:** don\'t check \"Force Base Url\")
|
||||||
don\'t check \"Force Base Url\")
|
|
||||||
3. Save the new new settings
|
3. Save the new new settings
|
||||||
|
|
||||||
### SCM-Manager Configuration before version 1.5
|
### SCM-Manager Configuration before version 1.5
|
||||||
|
|||||||
@@ -1,47 +1,75 @@
|
|||||||
Tomcat
|
# Applicationserver
|
||||||
------
|
|
||||||
|
## Tomcat
|
||||||
|
|
||||||
Mercurial uses very large http headers for branch and head informations.
|
Mercurial uses very large http headers for branch and head informations.
|
||||||
You have to increase the maxHttpHeaderSize parameter on the connector
|
You have to increase the maxHttpHeaderSize parameter on the connector
|
||||||
configuration. Open the conf/server.xml and add the parameter to your
|
configuration. Open the conf/server.xml and add the parameter to your
|
||||||
connector e.g.:
|
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.
|
After changing the configuration you have to restart the tomcat.
|
||||||
|
|
||||||
Source: <http://tomcat.apache.org/tomcat-7.0-doc/config/http.html>
|
Source: <http://tomcat.apache.org/tomcat-7.0-doc/config/http.html>
|
||||||
|
|
||||||
- - Note\*\*: If you have problems with big mercurial pushes on
|
**Note**: If you have problems with big mercurial pushes on instances which are newer than tomcat 7.0.55,
|
||||||
instances which are newer than tomcat 7.0.55, you have to
|
you have to increase/disable the maxSwallowSize (see issue [#691](https://github.com/scm-manager/scm-manager/issues/691)).
|
||||||
increase/disable the maxSwallowSize (see issue \#691).
|
|
||||||
|
|
||||||
#### Access Log
|
#### Access Log
|
||||||
|
|
||||||
If you wan\'t like to print the current user in tomcats access log you
|
If you wan\'t like to print the current user in tomcats access log you
|
||||||
could use a valve like the following:
|
could use a valve like the following:
|
||||||
|
|
||||||
The pattern \*\*%{principal}r\*\* is responsible for logging the
|
```xml
|
||||||
username to the access log (see issue \#877).
|
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
|
||||||
|
prefix="localhost_access_log" suffix=".txt"
|
||||||
|
pattern="%h %l %u %{principal}r %t "%r" %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
|
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
|
JVM-Option to the GlassFish configuration to override the jax-rs
|
||||||
packages. Please execute the following commands.
|
packages. Please execute the following commands.
|
||||||
|
|
||||||
- - Note\*\* Glassfish 3.1.2 and above seems not to work with
|
```bash
|
||||||
SCM-Manager. Please have a look at
|
# override jax-rs packages
|
||||||
[QeO-QVX6wmsJ](https://groups.google.com/forum/#!searchin/scmmanager/glassfish/scmmanager/SEbuEU8H-qo/QeO-QVX6wmsJ "wikilink").
|
$ 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.
|
Restart the GlassFish-Server.
|
||||||
|
|
||||||
Source:
|
Source: <http://jersey.java.net/nonav/documentation/latest/glassfish.html>
|
||||||
<http://jersey.java.net/nonav/documentation/latest/glassfish.html>
|
|
||||||
|
|
||||||
Jetty
|
## Jetty
|
||||||
-----
|
|
||||||
|
|
||||||
If Jetty returns a HTTP \"413 FULL head\" status, you may want to
|
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
|
further increase the maximum header size. You can configure the limit by
|
||||||
setting the headerBufferSize for the connector you\'re using in the
|
setting the headerBufferSize for the connector you\'re using in the
|
||||||
jetty.xml file:
|
jetty.xml file:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Call name="addConnector">
|
||||||
|
<Arg>
|
||||||
|
<New class="org.mortbay.jetty.nio.SelectChannelConnector">
|
||||||
|
[...]
|
||||||
|
<Set name='headerBufferSize'>32768</Set>
|
||||||
|
</New>
|
||||||
|
</Arg>
|
||||||
|
</Call>
|
||||||
|
```
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
Branch Write Protect Plugin
|
# Branch Write Protect Plugin
|
||||||
---------------------------
|
|
||||||
|
|
||||||
### Installation
|
### Installation
|
||||||
|
|
||||||
@@ -26,7 +25,7 @@ plugin:
|
|||||||
|
|
||||||
The branchwp plugin works only for Git and Mercurial, for Subversion
|
The branchwp plugin works only for Git and Mercurial, for Subversion
|
||||||
have a look at the
|
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
|
Since version 1.2 of the plugin it is possible to define deny
|
||||||
permissions and placeholders for branch names. Deny permissions are
|
permissions and placeholders for branch names. Deny permissions are
|
||||||
@@ -38,5 +37,4 @@ following placeholders are available:
|
|||||||
user
|
user
|
||||||
|
|
||||||
### Known issues
|
### Known issues
|
||||||
|
- [#235](https://github.com/scm-manager/scm-manager/issues/235 "branchwp plugin can not use on git")
|
||||||
- <https://bitbucket.org/sdorra/scm-manager/issue/235/branchwp-plugin-can-not-use-on-git>
|
|
||||||
|
|||||||
@@ -1,35 +1,40 @@
|
|||||||
Building SCM-Manager from source
|
# Building SCM-Manager from source
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
### Software Requirements
|
### Software Requirements
|
||||||
|
|
||||||
- JDK 1.7 or higher
|
- JDK 1.7 or higher
|
||||||
([download](http://www.oracle.com/technetwork/java/index.html "wikilink"))
|
([download](http://www.oracle.com/technetwork/java/index.html))
|
||||||
- Maven 3 or higher ([download](http://maven.apache.org/ "wikilink"))
|
- Maven 3 or higher ([download](http://maven.apache.org/))
|
||||||
- Mercurial ([download](https://www.mercurial-scm.org/ "wikilink"))
|
- Mercurial ([download](https://www.mercurial-scm.org/))
|
||||||
|
|
||||||
### Build SCM-Manager 1.x from source
|
### Build SCM-Manager 1.x from source
|
||||||
|
|
||||||
- - Note:\*\* if you use the \"package\" phase rather than the
|
```bash
|
||||||
\"install\" phase, the standalone version may include an old
|
hg clone https://bitbucket.org/sdorra/scm-manager
|
||||||
version of the WAR file in the distribution bundle, rather than
|
cd scm-manager
|
||||||
the version you just built.
|
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
|
After mvn finished, the war bundle is located at
|
||||||
\*\*scm-webapp/target/scm-webapp.war\*\* and the standalone version is
|
**scm-webapp/target/scm-webapp.war** and the standalone version is
|
||||||
located at \*\*scm-server/target/scm-server-app\*\*.
|
located at **scm-server/target/scm-server-app**.
|
||||||
|
|
||||||
You can also start a dev server using \`mvn jetty:run-war -f
|
You can also start a dev server using `mvn jetty:run-war -f
|
||||||
scm-webapp\`. SCMM is served at <http://localhost:8081/scm>.
|
scm-webapp`. SCM-Manager is served at <http://localhost:8081/scm>.
|
||||||
|
|
||||||
### REST
|
### REST
|
||||||
|
|
||||||
Docs:
|
Docs:
|
||||||
|
|
||||||
- Create the documentation: \`mvn -f scm-webapp compile -P doc\`
|
- Create the documentation: `mvn -f scm-webapp compile -P doc`
|
||||||
- The documentation can be found at scm-webapp/target/restdocs
|
- The documentation can be found at scm-webapp/target/restdocs
|
||||||
|
|
||||||
Note that if using jetty (see above) you have to access
|
Note that if using jetty (see above) you have to access
|
||||||
<http://localhost:8081/scm> once, to trigger creation of the
|
<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>
|
<http://localhost:8081/scm/api/rest>
|
||||||
|
|||||||
@@ -1,15 +1,11 @@
|
|||||||
Code Snippets
|
# Code Snippets
|
||||||
-------------
|
|
||||||
|
|
||||||
### User Interface
|
### User Interface
|
||||||
|
|
||||||
- [extend
|
- [extend navigation](snippet-extend-navigation.md)
|
||||||
navigation](https://bitbucket.org/sdorra/scm-manager/wiki/snippet-extend-navigation "wikilink")
|
- [add tab to repository configuration](snippet-repository-tab.md)
|
||||||
- [add tab to repository
|
- [extend global configuration](snippet-config-group.md)
|
||||||
configuration](https://bitbucket.org/sdorra/scm-manager/wiki/snippet-repository-tab "wikilink")
|
|
||||||
- [extend global
|
|
||||||
configuration](https://bitbucket.org/sdorra/scm-manager/wiki/snippet-config-group "wikilink")
|
|
||||||
|
|
||||||
=== Backend ==
|
### Backend
|
||||||
|
|
||||||
- [Authentication](https://bitbucket.org/sdorra/scm-manager/wiki/snippet-authentication "wikilink")
|
- [Authentication](snippet-authentication.md)
|
||||||
|
|||||||
@@ -1,16 +1,65 @@
|
|||||||
Command line client
|
# Command line client
|
||||||
-------------------
|
|
||||||
|
|
||||||
You can download the command line client from
|
You can download the command line client from
|
||||||
[here](http://www.scm-manager.org/download/ "wikilink") (the
|
[here](http://www.scm-manager.org/download/) (the scm-cli-client).
|
||||||
scm-cli-client).
|
|
||||||
|
|
||||||
### Examples
|
### 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)
|
||||||
|
```
|
||||||
|
|||||||
@@ -1,14 +1,16 @@
|
|||||||
|
# Configure Eclipse
|
||||||
|
|
||||||
There are multiple approaches to using Maven projects within Eclipse. If
|
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.
|
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
|
1. First, [build scm-manager from source](build-from-source.md).
|
||||||
source](build-from-source "wikilink").
|
|
||||||
2. Open a shell to the root of your scm-manager source.
|
2. Open a shell to the root of your scm-manager source.
|
||||||
3. Run the following command:\\\\
|
3. Run the following command:\
|
||||||
4. 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.
|
5. Open Eclipse using the specified workspace.
|
||||||
6. In Eclipse, select the \"File\", \"Import\...\" menu.
|
6. In Eclipse, select the \"File\", \"Import\...\" menu.
|
||||||
7. Select the \"General\", \"Existing Projects into Workspace\" item
|
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
|
You may encounter an error during the \"eclipse:eclipse\" step that
|
||||||
looks like this:
|
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
|
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
|
eclipse plugin. See below for one workaround. Other discussion of this
|
||||||
issue can be found
|
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
|
1. Add the following line within the <settings> element of your /.m2/settings.xml file:\
|
||||||
\~/.m2/settings.xml [file:\\\\](file:\\){{{
|
`<usePluginRegistry>true</usePluginRegistry>`
|
||||||
|
|
||||||
<usePluginRegistry>true</usePluginRegistry> }}}
|
1. Add the file /.m2/plugin-registry.xml with the following contents:
|
||||||
|
```xml
|
||||||
1. Add the file \~/.m2/plugin-registry.xml with the following contents:
|
<?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
|
If you have .project files in any parent directory, the Eclipse import
|
||||||
step will not search beneath that parent for any further projects.
|
step will not search beneath that parent for any further projects.
|
||||||
Delete the .project file in the parent and try the import again.
|
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
|
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
|
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
|
eclipse:configure-workspace, or manually create a classpath variable
|
||||||
named M2\_REPO pointing to the root of your local maven repository
|
named M2\_REPO pointing to the root of your local maven repository
|
||||||
directory.
|
directory.
|
||||||
|
|||||||
@@ -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
|
**Note**: If you are using a 64Bit operating system you should use a 64Bit JavaVirtualMachine as well
|
||||||
use a 64Bit JavaVirtualMachine as well (\#74 or
|
([#74](https://github.com/scm-manager/scm-manager/issues/74) or
|
||||||
[rOL1nJ9DnfI](https://groups.google.com/forum/?fromgroups#!topic/scmmanager/rOL1nJ9DnfI "wikilink")).
|
[rOL1nJ9DnfI](https://groups.google.com/forum/?fromgroups#!topic/scmmanager/rOL1nJ9DnfI "Can't start scm windows service")).
|
||||||
|
|
||||||
### Unix Daemons
|
### Unix Daemons
|
||||||
|
|
||||||
You could run scm-server in background as unix daemon with one simple
|
You could run scm-server in background as unix daemon with one simple command:
|
||||||
command:
|
|
||||||
|
```bash
|
||||||
|
scm-server start
|
||||||
|
```
|
||||||
|
|
||||||
If you would like to stop the running daemon instance just call:
|
If you would like to stop the running daemon instance just call:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
scm-server stop
|
||||||
|
```
|
||||||
|
|
||||||
### Windows Services
|
### Windows Services
|
||||||
|
|
||||||
Register scm-server as Windows service open a console (cmd) as
|
Register scm-server as Windows service open a console (cmd) as Administrator and execute the following command:
|
||||||
Administrator and execute the following command: The service is no
|
|
||||||
available in the service control center. You could uninstall the service
|
```bash
|
||||||
with the command below:
|
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
|
||||||
|
```
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
# Definition of Done
|
||||||
|
|
||||||
* Acceptance criteria are checked manually (from the user's perspective)
|
* 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))
|
* 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/))
|
* The clean code principles are respected ([CleanCode](https://clean-code-developer.com/virtues/))
|
||||||
@@ -1,14 +1,13 @@
|
|||||||
Download latest Snapshot release
|
# Download latest Snapshot release
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
### SCM-Server 1.61 SNAPSHOT (standalone)
|
### 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 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 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/)
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
Download
|
# Download
|
||||||
--------
|
|
||||||
|
|
||||||
The download page has moved to <http://www.scm-manager.org/download/>
|
The download page has moved to <http://www.scm-manager.org/download/>
|
||||||
|
|||||||
42
docs/faq.md
@@ -1,31 +1,29 @@
|
|||||||
FAQ
|
# Frequently Asked Questions
|
||||||
---
|
|
||||||
|
|
||||||
### What are the username and the password in the default installation?
|
### What are the username and the password in the default installation?
|
||||||
|
|
||||||
Username: scmadmin
|
Username: `scmadmin`\
|
||||||
|
Password: `scmadmin`
|
||||||
Password: scmadmin
|
|
||||||
|
|
||||||
### Where does SCM-Manager store its configuration, log files and the repositories?
|
### 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 stores the complete data in a directory called .scm (the
|
||||||
SCM-Manager home directory). This directory is located in the home
|
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
|
directory of the user which is the owner of the process. Except for [rpm
|
||||||
and
|
and deb](RPM%20and%20DEB%20packages.md)
|
||||||
deb](https://bitbucket.org/sdorra/scm-manager/wiki/RPM%20and%20DEB%20packages "wikilink")
|
|
||||||
installations, for those installations the home directory is located at
|
installations, for those installations the home directory is located at
|
||||||
/var/lib/scm.
|
/var/lib/scm.
|
||||||
|
|
||||||
=== How can I change the SCM-Manager home directory? You could change
|
### How can I change the SCM-Manager home directory?
|
||||||
the SCM-Manager home directory in a few ways:
|
|
||||||
|
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
|
- 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
|
- Set an environment variable SCM\_HOME with the path of your
|
||||||
directory
|
directory
|
||||||
- Start your application server with a java property called scm.home
|
- Start your application server with a java property called `scm.home`
|
||||||
f.e. -Dscm.home=/var/scm
|
f.e. `-Dscm.home=/var/scm`
|
||||||
|
|
||||||
### Can I create a directory structure for scm-manager repositories?
|
### Can I create a directory structure for scm-manager repositories?
|
||||||
|
|
||||||
@@ -34,12 +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
|
example the repositories Project/module-1, Project/module-2 and
|
||||||
OtherProject/module-1 will result in the following structure.
|
OtherProject/module-1 will result in the following structure.
|
||||||
|
|
||||||
For more information have a look at
|
```text
|
||||||
<https://bitbucket.org/sdorra/scm-manager/issue/47/support-for-directory-structure>.
|
+ 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?
|
### 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?
|
### Where does SCM-Manager stores it log files?
|
||||||
|
|
||||||
@@ -51,8 +56,15 @@ store its configuration, log files and the repositories?\").
|
|||||||
|
|
||||||
Edit scm-server/conf/logging.xml change the line from:
|
Edit scm-server/conf/logging.xml change the line from:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<logger name="sonia.scm" level="INFO" />
|
||||||
|
```
|
||||||
to:
|
to:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<logger name="sonia.scm" level="TRACE" />
|
||||||
|
```
|
||||||
|
|
||||||
If you are using the war version with an application server such as
|
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.
|
tomcat, you have to edit the logback.xml in WEB-INF/classes.
|
||||||
|
|
||||||
|
|||||||
@@ -1,42 +1,48 @@
|
|||||||
Getting started
|
# Getting started
|
||||||
---------------
|
|
||||||
|
|
||||||
### Install Java
|
### Install Java
|
||||||
|
|
||||||
SCM-Manager needs an installed Java 1.7 or newer. It is recommended to
|
SCM-Manager needs an installed Java 1.7 or newer. It is recommended to use the [oracle jre](http://java.oracle.com/).
|
||||||
use the [oracle jre](http://java.oracle.com/ "wikilink"). How to check
|
How to check which version of Java is installed:
|
||||||
which version of Java is installed:
|
|
||||||
|
|
||||||
### Install the latest version of Java
|
```bash
|
||||||
|
java -version
|
||||||
|
```
|
||||||
|
|
||||||
Download java from [here](http://java.oracle.com/ "wikilink") and follow
|
Download java from [here](http://java.oracle.com/) and follow the install instructions.
|
||||||
the install instructions.
|
|
||||||
|
|
||||||
### Install SCM-Manager
|
### Install SCM-Manager
|
||||||
|
|
||||||
Download the latest version of SCM-Manager from
|
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
|
or .tar.gz package and start SCM-Manager with
|
||||||
|
|
||||||
|
```bash
|
||||||
|
scm-server/bin/scm-server
|
||||||
|
```
|
||||||
|
|
||||||
### First access
|
### First access
|
||||||
|
|
||||||
\|=URL\|<http://localhost:8080>\| \|=Username\|scmadmin\|
|
| | |
|
||||||
\|=Password\|scmadmin\|
|
| ------------ | ----------------------- |
|
||||||
|
| **URL** | <http://localhost:8080> |
|
||||||
|
| **Username** | scmadmin |
|
||||||
|
| **Password** | scmadmin |
|
||||||
|
|
||||||
### Mercurial
|
### Mercurial
|
||||||
|
|
||||||
Subversion and Git will work out of the box, but if you want to use
|
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
|
mercurial with SCM-Manager you have to install mercurial version
|
||||||
\*\*1.9\*\* or newer.
|
**1.9** or newer.
|
||||||
|
|
||||||
#### Mercurial on Windows
|
#### Mercurial on Windows
|
||||||
|
|
||||||
The installation of mercurial for SCM-Manager is very complicated on
|
The installation of mercurial for SCM-Manager is very complicated on
|
||||||
windows, have a look at:
|
windows, have a look at:
|
||||||
|
|
||||||
- <https://bitbucket.org/sdorra/scm-manager/issue/1/no-ability-to-rename-repository>
|
- [#1](https://bitbucket.org/sdorra/scm-manager/issues/1/no-ability-to-rename-repository)
|
||||||
- <https://groups.google.com/d/msg/scmmanager/zOigMIn2RiE/xeFcruG70s8J>
|
- [xeFcruG70s8J](https://groups.google.com/d/msg/scmmanager/zOigMIn2RiE/xeFcruG70s8J "Python/Hg Package Build Process")
|
||||||
- <https://bitbucket.org/sdorra/build-win-hg-packages>
|
- [build-win-hg-packages](https://bitbucket.org/sdorra/build-win-hg-packages)
|
||||||
|
|
||||||
SCM-Manager comes with the option to install packages for windows to
|
SCM-Manager comes with the option to install packages for windows to
|
||||||
simplify this setup. To use such a package just login as Administrator,
|
simplify this setup. To use such a package just login as Administrator,
|
||||||
@@ -45,10 +51,13 @@ Choose \"Download and install\".
|
|||||||
|
|
||||||
If you see an error like the following:
|
If you see an error like the following:
|
||||||
|
|
||||||
Then you have to install [Microsoft Visual C++ 2008 SP1 Redistributable
|
```text
|
||||||
Package
|
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.'
|
||||||
(x86)](http://www.microsoft.com/en-us/download/details.aspx?id=5582 "wikilink").
|
```
|
||||||
|
|
||||||
|
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
|
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
|
use 32bit python in SCM-Manager on Windows. For more informations have a
|
||||||
look at
|
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).
|
||||||
|
|||||||
@@ -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
|
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
|
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
|
admin user, goto Configuration-\>JVM Settings, switch to the JVM Options
|
||||||
tab and add the following JVM-Option:
|
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.
|
Restart the GlassFish-Server.
|
||||||
|
|
||||||
Source:
|
Source:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Incompatible subversion db format #
|
# Incompatible subversion db format
|
||||||
|
|
||||||
SCM-Manager versions prior to 1.36 are creating incompatible subversion repositories, if the subversion option "with 1.7 Compatible" is enabled. This subversion repositories are neither compatible with svn 1.7 nor svn 1.8. These repositories are marked as unhealthy by SCM-Manager version 1.36 and above.
|
SCM-Manager versions prior to 1.36 are creating incompatible subversion repositories, if the subversion option "with 1.7 Compatible" is enabled. This subversion repositories are neither compatible with svn 1.7 nor svn 1.8. These repositories are marked as unhealthy by SCM-Manager version 1.36 and above.
|
||||||
|
|
||||||
@@ -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)
|
* 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.:
|
* 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
|
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:
|
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)
|
* [Subversion release notes](https://subversion.apache.org/docs/release-notes/1.7.html#revprop-packing)
|
||||||
@@ -1,32 +1,37 @@
|
|||||||
How to create your own plugin
|
# How to create your own plugin
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
### Software Requirements
|
### Software Requirements
|
||||||
|
|
||||||
- JDK 1.7 or higher
|
- JDK 1.7 or higher
|
||||||
([download](http://www.oracle.com/technetwork/java/index.html "wikilink"))
|
([download](http://www.oracle.com/technetwork/java/index.html))
|
||||||
- Maven 3 or higher ([download](http://maven.apache.org/ "wikilink"))
|
- Maven 3 or higher ([download](http://maven.apache.org/))
|
||||||
|
|
||||||
### Create plugin
|
### 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
|
### Test the plugin
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mvn scmp:run
|
||||||
|
```
|
||||||
|
|
||||||
### Samples
|
### Samples
|
||||||
|
|
||||||
- [Hello
|
- [Hello World](https://bitbucket.org/sdorra/scm-manager/src/1.x/scm-samples/scm-sample-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/)
|
||||||
- [Authentication
|
|
||||||
Plugin](https://bitbucket.org/sdorra/scm-manager/src/1.x/scm-samples/scm-sample-auth/ "wikilink")
|
|
||||||
|
|
||||||
### Further reading
|
### Further reading
|
||||||
|
|
||||||
- [Injection framework - Google
|
- [Injection framework - Google Guice](http://code.google.com/p/google-guice/)
|
||||||
Guice](http://code.google.com/p/google-guice/ "wikilink")
|
- [Restful WebService - Jersey](http://jersey.java.net/nonav/documentation/latest/user-guide.html)
|
||||||
- [Restful WebService -
|
- [ XML transformation - JAXB](http://jaxb.java.net/guide/)
|
||||||
Jersey](http://jersey.java.net/nonav/documentation/latest/user-guide.html "wikilink")
|
- [User interface - Ext JS](http://www.sencha.com/products/extjs3/)
|
||||||
- [ XML transformation - JAXB](http://jaxb.java.net/guide/ "wikilink")
|
|
||||||
- [User interface - Ext
|
|
||||||
JS](http://www.sencha.com/products/extjs3/ "wikilink")
|
|
||||||
|
|
||||||
### Questions/Help
|
### Questions/Help
|
||||||
|
|
||||||
|
|||||||
@@ -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:
|
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:**
|
**Problem description:**
|
||||||
|
|
||||||
When moving of copying files in SVN, the commit fails with the following message:
|
When moving of copying files in SVN, the commit fails with the following message:
|
||||||
|
|
||||||
```
|
```bash
|
||||||
#!cmd
|
|
||||||
|
|
||||||
MyWorkstation:MyRepo user$ svn mv A.cs B.cs
|
MyWorkstation:MyRepo user$ svn mv A.cs B.cs
|
||||||
A B.cs
|
A B.cs
|
||||||
D A.cs
|
D A.cs
|
||||||
@@ -25,9 +24,7 @@ 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:
|
1. Add the following rewrite rule to the web.config of the SCM application:
|
||||||
|
|
||||||
```
|
```xml
|
||||||
#!xml
|
|
||||||
|
|
||||||
<system.webServer>
|
<system.webServer>
|
||||||
<!-- <heliconZoo /> -->
|
<!-- <heliconZoo /> -->
|
||||||
<!-- <handlers /> -->
|
<!-- <handlers /> -->
|
||||||
@@ -47,11 +44,10 @@ This problem only occurs when accessing the repository via https, not http.
|
|||||||
</rules>
|
</rules>
|
||||||
</rewrite>
|
</rewrite>
|
||||||
</system.webServer>
|
</system.webServer>
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Add HTTP_Destination to the Allowed Server Variables using IIS:
|
2. Add HTTP_Destination to the Allowed Server Variables using IIS:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
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).
|
||||||
@@ -1,25 +1,23 @@
|
|||||||
Injection Objects
|
# Injection Objects
|
||||||
-----------------
|
|
||||||
|
|
||||||
- [AdministrationContext](http://docs.scm-manager.org/apidocs/latest/sonia/scm/web/security/AdministrationContext.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 "wikilink")
|
- [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 "wikilink")
|
- [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 "wikilink")
|
- [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 "wikilink")
|
- [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 "wikilink")
|
- [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 "wikilink")
|
- [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 "wikilink")
|
- [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 "wikilink")
|
- [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 "wikilink")
|
- [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 "wikilink")
|
- [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 "wikilink")
|
- [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 "wikilink")
|
- [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 "wikilink")
|
- [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 "wikilink")
|
- [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 "wikilink")
|
- [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)
|
||||||
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)
|
||||||
- [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)
|
||||||
- [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)
|
||||||
- [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)
|
||||||
- [WebSecurityContext](http://docs.scm-manager.org/apidocs/latest/sonia/scm/web/security/WebSecurityContext.html "wikilink")
|
|
||||||
|
|||||||
@@ -1,29 +1,129 @@
|
|||||||
Java Client API
|
# Java Client API
|
||||||
---------------
|
|
||||||
|
|
||||||
### Maven
|
### Maven
|
||||||
|
|
||||||
To use the SCM-Manager Java Client API you have to configure the
|
To use the SCM-Manager Java Client API you have to configure the
|
||||||
SCM-Manager maven repository in your pom.xml:
|
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:
|
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
|
### Usage
|
||||||
|
|
||||||
First you have to create a session to your SCM-Manager instance:
|
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
|
After you have successfully created a client session you can nearly
|
||||||
execute every action which is available from the web interface. But do
|
execute every action which is available from the web interface. But do
|
||||||
not forget to close the session after you have finished your work:
|
not forget to close the session after you have finished your work:
|
||||||
|
|
||||||
|
```java
|
||||||
|
session.close();
|
||||||
|
```
|
||||||
|
|
||||||
### Examples
|
### Examples
|
||||||
|
|
||||||
Create a new repository:
|
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:
|
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:
|
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:
|
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:
|
Add a user to an existing group:
|
||||||
|
|
||||||
|
```java
|
||||||
|
GroupClientHandler groupHandler = session.getGroupHandler();
|
||||||
|
Group group = groupHandler.get("developers");
|
||||||
|
group.getMembers().add("tuser");
|
||||||
|
groupHandler.modify(group);
|
||||||
|
```
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
scm-jenkins-plugin
|
# scm-jenkins-plugin
|
||||||
------------------
|
|
||||||
|
|
||||||
The jenkins plugin will ping your Jenkins CI server when a new commit is
|
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
|
pushed to SCM-Manager. In SCM-Manager exists two differnt methods to
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
scm-jira-plugin
|
# scm-jira-plugin
|
||||||
---------------
|
|
||||||
|
|
||||||
The plugin enables the following features to integrate Atlassian JIRA to
|
The plugin enables the following features to integrate Atlassian JIRA to
|
||||||
SCM-Manager:
|
SCM-Manager:
|
||||||
@@ -16,11 +15,11 @@ SCM-Manager:
|
|||||||
(https://developer.atlassian.com/display/JIRADEV/JIRA+XML-RPC+Overview)
|
(https://developer.atlassian.com/display/JIRADEV/JIRA+XML-RPC+Overview)
|
||||||
2. Install scm-jira-plugin over the plugin center in scm-manager
|
2. Install scm-jira-plugin over the plugin center in scm-manager
|
||||||
3. Be sure that your jira installation accepts remote calls
|
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
|
4. Configure the plugin, select a repository to enable the
|
||||||
scm-jira-plugin for this repository
|
scm-jira-plugin for this repository
|
||||||
([Screenshot](screenshots/scm-jira-plugin/jira-plugin-02.png "wikilink"))
|
([Screenshot](screenshots/scm-jira-plugin/jira-plugin-02.png))
|
||||||
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 Jira
|
that users have the same names and passwords in SCM-Manager and Jira
|
||||||
|
|
||||||
### Auto Close Words (Since v. 1.17)
|
### Auto Close Words (Since v. 1.17)
|
||||||
@@ -41,8 +40,8 @@ close words with transition that are configured in JIRA.
|
|||||||
|
|
||||||
### Screenshots
|
### 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")
|

|
||||||
|
|||||||
@@ -1,20 +1,83 @@
|
|||||||
scm-mail-plugin
|
# scm-mail-plugin
|
||||||
===============
|
|
||||||
|
|
||||||
The mail plugin provides an central api for sending e-mails. This api
|
The mail plugin provides an central api for sending e-mails. This api
|
||||||
can be used by other plugins.
|
can be used by other plugins.
|
||||||
|
|
||||||
Configuration
|
## Configuration
|
||||||
-------------
|
|
||||||
|
|
||||||
The scm-mail-plugin provides a single place for the mail server
|
The scm-mail-plugin provides a single place for the mail server
|
||||||
configurations at Config-\>General-\>Mail Settings.
|
configurations at Config-\>General-\>Mail Settings.
|
||||||
|
|
||||||
API Usage
|
## API Usage
|
||||||
---------
|
|
||||||
|
|
||||||
First you have to add the dependency to your pom.xml e.g.:
|
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.
|
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.:
|
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");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|||||||
@@ -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:
|
The plugin enables the following features to integrate [MantisBT](https://www.mantisbt.org/) to SCM-Manager:
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
# SCM-Server and Nginx #
|
# SCM-Server and Nginx
|
||||||
|
|
||||||
## Nginx configuration ##
|
## Nginx configuration
|
||||||
|
|
||||||
```
|
|
||||||
#!text
|
|
||||||
|
|
||||||
|
```text
|
||||||
location /scm {
|
location /scm {
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
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:
|
Uncomment following line:
|
||||||
|
|
||||||
```
|
```xml
|
||||||
#!xml
|
|
||||||
<Set name="forwarded">true</Set>
|
<Set name="forwarded">true</Set>
|
||||||
```
|
```
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
```
|
```xml
|
||||||
#!xml
|
|
||||||
<Call name="addConnector">
|
<Call name="addConnector">
|
||||||
<Arg>
|
<Arg>
|
||||||
<New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
|
<New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
|
||||||
@@ -43,7 +39,7 @@ Example:
|
|||||||
</Call>
|
</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"
|
* Login as an admin user and select "General"
|
||||||
* Set the "Base Url" to the URL of Nginx (**warning:** don't check "Force Base Url")
|
* Set the "Base Url" to the URL of Nginx (**warning:** don't check "Force Base Url")
|
||||||
* Save the new new settings
|
* Save the new new settings
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
Path Write Protect Plugin
|
# Path Write Protect Plugin
|
||||||
-------------------------
|
|
||||||
|
|
||||||
### Installation
|
### Installation
|
||||||
|
|
||||||
@@ -20,14 +19,12 @@ plugin:
|
|||||||
group who should write to any file or folder in the repository.
|
group who should write to any file or folder in the repository.
|
||||||
- If the pathwp plugin is enabled, nobody can write to the repository
|
- If the pathwp plugin is enabled, nobody can write to the repository
|
||||||
expect administrators, repository owners and the specified rules.
|
expect administrators, repository owners and the specified rules.
|
||||||
- To protect a complete folder use a star at the end of the path
|
- To protect a complete folder use a star at the end of the path (e.g.: trunk/\*)
|
||||||
(e.g.: trunk/\*)
|
|
||||||
|
|
||||||
Examples
|
### Examples
|
||||||
--------
|
|
||||||
|
|
||||||
\|=Path \|=Name \|=Group Permission \|=Description \| \| \* \| scmadmin
|
| Path | Name | Group Permission | Description |
|
||||||
\| false \| user scmadmin has write access to the whole repository \| \|
|
| ------------- | ----------- | ---------------- | ---------------------- |
|
||||||
trunk/\* \| development \| true \| group development has write access to
|
| * | scmadmin | false | user scmadmin has write access to the whole repository |
|
||||||
the trunk directory \| \| trunk/joe.txt \| joe \| false \| user joe has
|
| trunk/\* | development | true | group development has write access to the trunk directory |
|
||||||
write access to the file trunk/joe.txt \|
|
| trunk/joe.txt | joe | false | user joe has write access to the file trunk/joe.txt |
|
||||||
|
|||||||
@@ -1,34 +1,70 @@
|
|||||||
Plugin Descriptor
|
# Plugin Descriptor
|
||||||
-----------------
|
|
||||||
|
|
||||||
The plugin descriptor contains informations and instructions for the
|
The plugin descriptor contains informations and instructions for the
|
||||||
scm-manager to integrate the plugin. The descriptor is located at
|
scm-manager to integrate the plugin. The descriptor is located at
|
||||||
META-INF/scm/plugin.xml in the package of a plugin.
|
META-INF/scm/plugin.xml in the package of a plugin.
|
||||||
|
|
||||||
\|=Element \|=Description \|=Multiple \| \| plugin \| Root element of
|
| Element | Description | Multiple |
|
||||||
the plugin descriptor \| \| \| plugin/condition \| Plugin condifitions
|
| --- | --- | --- |
|
||||||
\| \| \| plugin/condition/arch \| Processor architecture (x86/amd64) \|
|
| plugin | Root element of the plugin descriptor | |
|
||||||
\| \| plugin/condition/min-version \| Minimum version of SCM-Manager \|
|
| plugin/condition | Plugin condifitions | |
|
||||||
\| \| plugin/condition/os \| Operation System \| \| \|
|
| plugin/condition/arch | Processor architecture (x86/amd64) | |
|
||||||
plugin/condition/os/name \| Name of the Operating System \| X \| \|
|
| plugin/condition/min-version | Minimum version of SCM-Manager | |
|
||||||
plugin/information \| Contains informations of the plugin for the plugin
|
| plugin/condition/os | Operation System | |
|
||||||
backend \| \| \| plugin/information/artifactId \| Maven artifact id \|
|
| plugin/condition/os/name | Name of the Operating System | X |
|
||||||
\| \| plugin/information/author \| The Author of the plugin \| \| \|
|
| plugin/information | Contains informations of the plugin for the plugin backend | |
|
||||||
plugin/information/category \| Category of the plugin \| \| \|
|
| plugin/information/artifactId | Maven artifact id | |
|
||||||
plugin/information/description \| Description of the plugin \| \| \|
|
| plugin/information/author | The Author of the plugin | |
|
||||||
plugin/information/groupId \| Maven group id \| \| \|
|
| plugin/information/category | Category of the plugin | |
|
||||||
plugin/information/name \| Name of the plugin \| \| \|
|
| plugin/information/description | Description of the plugin | |
|
||||||
plugin/information/screenshots \| Contains screenshots of the plugin \|
|
| plugin/information/groupId | Maven group id | |
|
||||||
\| \| plugin/information/screenshots/screenshot \| Single screenshot of
|
| plugin/information/name | Name of the plugin | |
|
||||||
the plugin \| X \| \| plugin/information/url \| The url of the plugin
|
| plugin/information/screenshots | Contains screenshots of the plugin | |
|
||||||
homepage \| \| \| plugin/information/version \| The current version of
|
| plugin/information/screenshots/screenshot | Single screenshot of the plugin | X |
|
||||||
the plugin \| \| \| plugin/information/wiki \| The url of a wiki page \|
|
| plugin/information/url | The url of the plugin homepage | |
|
||||||
\| \| plugin/packages \| Java packages which are being searched for
|
| plugin/information/version | The current version of the plugin | |
|
||||||
extensions \| \| \| plugin/packages/package \| Single Java packages
|
| plugin/information/wiki | The url of a wiki page | |
|
||||||
which is being searched for extensions \| X \| \| plugin/resources \|
|
| plugin/packages | Java packages which are being searched for extensions | |
|
||||||
Contains resources for the web interface (stylesheets and JavaScript
|
| plugin/packages/package | Single Java packages which is being searched for extensions | X |
|
||||||
files) \| \| \| plugin/resources/script \| JavaScript file for the web
|
| plugin/resources | Contains resources for the web interface (stylesheets and JavaScript files) | |
|
||||||
interface \| X \| \| plugin/resources/stylesheet \| Stylesheet for the
|
| plugin/resources/script | JavaScript file for the web interface | X |
|
||||||
web interface \| X \|
|
| plugin/resources/stylesheet | Stylesheet for the web interface | X |
|
||||||
|
|
||||||
Example of the plugin descriptor:
|
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>
|
||||||
|
```
|
||||||
|
|||||||
@@ -1,29 +1,25 @@
|
|||||||
Redmine Plugin
|
# Redmine Plugin
|
||||||
--------------
|
|
||||||
|
|
||||||
Is based on
|
Is based on [scm-jira-plugin](jira-plugin.md).
|
||||||
[scm-jira-plugin](https://bitbucket.org/sdorra/scm-manager/wiki/jira-plugin "wikilink")
|
|
||||||
|
|
||||||
The plugin enables the following features to integrate SCM-Manager to
|
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
|
- Turn issue keys in changeset descriptions to links for redmine
|
||||||
- Updates a redmine issue if the issue key is found in a changeset
|
- Updates a redmine issue if the issue key is found in a changeset description
|
||||||
description
|
- Close a Redmine issue if the issue key and a auto close (close, fix, resolve, \...)
|
||||||
- Close a Redmine issue if the issue key and a auto close (close, fix,
|
word is found in the changeset description
|
||||||
resolve, \...) word is found in the changeset description
|
|
||||||
|
|
||||||
### Installation and configuration
|
### Installation and configuration
|
||||||
|
|
||||||
1. Enable redmine rest authentication
|
1. Enable [Redmine rest authentication](https://www.redmine.org/projects/redmine/wiki/Rest_api#Authentication), basically
|
||||||
(http://www.redmine.org/projects/redmine/wiki/Rest\_api, basically
|
|
||||||
\'you have to check Enable REST API in Administration -\> Settings
|
\'you have to check Enable REST API in Administration -\> Settings
|
||||||
-\> Authentication\' )
|
-\> Authentication\'
|
||||||
2. Install redmine-plugin over the plugin center in scm-manager
|
2. Install redmine-plugin over the plugin center in scm-manager
|
||||||
3. Configure the plugin, select a repository to enable the
|
3. Configure the plugin, select a repository to enable the
|
||||||
redmine-plugin for this repository
|
redmine-plugin for this repository
|
||||||
4. To link issues commit must be match the following: \'(\#issue\_id)
|
4. To link issues commit must be match the following: \'(\#issue\_id)
|
||||||
your commit message\'
|
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
|
that users have the same names and passwords in SCM-Manager and
|
||||||
Redmine
|
Redmine
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
SCM-Manager 1.19
|
# Release Notes 1.19 - 1.0
|
||||||
----------------
|
|
||||||
|
|
||||||
- - improvements\*\*
|
## SCM-Manager 1.19
|
||||||
|
|
||||||
|
**improvements**
|
||||||
|
|
||||||
- implement new template api which uses mustache as default engine
|
- implement new template api which uses mustache as default engine
|
||||||
- display error on startup if home directory is not writable
|
- display error on startup if home directory is not writable
|
||||||
@@ -9,23 +10,18 @@ SCM-Manager 1.19
|
|||||||
- added support for jersey viewables
|
- added support for jersey viewables
|
||||||
- do not show browser basic authentication dialog on session timeout
|
- 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 javahg to version 0.4
|
||||||
- update enunciate to version 1.26
|
- 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
|
views
|
||||||
@@ -36,9 +32,7 @@ SCM-Manager 1.18
|
|||||||
- allow configuration of mercurial repository encoding
|
- allow configuration of mercurial repository encoding
|
||||||
- warn if plugin artifact checksum not match
|
- warn if plugin artifact checksum not match
|
||||||
|
|
||||||
<!-- -->
|
**fixed bugs**
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
|
||||||
- fix wrong cache result in blame command
|
- fix wrong cache result in blame command
|
||||||
- fix wrong escaped subversion commit messages, see \<\<issue 199\>\>
|
- fix wrong escaped subversion commit messages, see \<\<issue 199\>\>
|
||||||
@@ -48,19 +42,16 @@ SCM-Manager 1.18
|
|||||||
- fix wrong unarchive message
|
- fix wrong unarchive message
|
||||||
- added missing dtd to server-config.xml
|
- added missing dtd to server-config.xml
|
||||||
|
|
||||||
<!-- -->
|
**library updates**
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
|
||||||
- update ehcache to version 2.6.0
|
- update ehcache to version 2.6.0
|
||||||
- update jetty to version 7.6.5.v20120716
|
- update jetty to version 7.6.5.v20120716
|
||||||
- update google guava to version 13.0
|
- update google guava to version 13.0
|
||||||
- update jersey to version 1.13
|
- update jersey to version 1.13
|
||||||
|
|
||||||
SCM-Manager 1.17
|
## SCM-Manager 1.17
|
||||||
----------------
|
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- new repository api
|
- new repository api
|
||||||
- log scm-manager version on boot
|
- log scm-manager version on boot
|
||||||
@@ -74,9 +65,7 @@ SCM-Manager 1.17
|
|||||||
- Repository links should use relative paths, see \<\<issue 156\>\>
|
- Repository links should use relative paths, see \<\<issue 156\>\>
|
||||||
- Added locale and timezone to support informations
|
- Added locale and timezone to support informations
|
||||||
|
|
||||||
<!-- -->
|
**fixed bugs**
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
|
||||||
- fix detection of scm-server servlet container
|
- fix detection of scm-server servlet container
|
||||||
- fix svn version informations
|
- fix svn version informations
|
||||||
@@ -88,19 +77,16 @@ SCM-Manager 1.17
|
|||||||
- fix basic authentication for systems with turkish locale, see
|
- fix basic authentication for systems with turkish locale, see
|
||||||
\<\<issue 195\>\>
|
\<\<issue 195\>\>
|
||||||
|
|
||||||
<!-- -->
|
**library updates**
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
|
||||||
- update jgit to version 2.0.0.201206130900-r
|
- update jgit to version 2.0.0.201206130900-r
|
||||||
- update svnkit to version 1.7.5-1
|
- update svnkit to version 1.7.5-1
|
||||||
- update logback to version 1.0.6
|
- update logback to version 1.0.6
|
||||||
- update slf4j to version 1.6.6
|
- update slf4j to version 1.6.6
|
||||||
|
|
||||||
SCM-Manager 1.16
|
## SCM-Manager 1.16
|
||||||
----------------
|
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- improve mercurial hook error handling
|
- improve mercurial hook error handling
|
||||||
- mercurial hook url auto detection
|
- mercurial hook url auto detection
|
||||||
@@ -118,9 +104,7 @@ SCM-Manager 1.16
|
|||||||
- added api for store listeners
|
- added api for store listeners
|
||||||
- added option to encode svn responses with gzip
|
- added option to encode svn responses with gzip
|
||||||
|
|
||||||
<!-- -->
|
**fixed bugs**
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
|
||||||
- do not encode changeset author name, see \<\<issue 160\>\>
|
- do not encode changeset author name, see \<\<issue 160\>\>
|
||||||
- pass shell environment to mercurial cgi process, see \<\<issue
|
- pass shell environment to mercurial cgi process, see \<\<issue
|
||||||
@@ -129,9 +113,7 @@ SCM-Manager 1.16
|
|||||||
- fix changing resource order for plugins
|
- fix changing resource order for plugins
|
||||||
- fix repository name validation, see \<\<issue 148\>\>
|
- fix repository name validation, see \<\<issue 148\>\>
|
||||||
|
|
||||||
<!-- -->
|
**library updates**
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
|
||||||
- update jetty to version 7.6.4.v20120524
|
- update jetty to version 7.6.4.v20120524
|
||||||
- update logback to version 1.0.4
|
- update logback to version 1.0.4
|
||||||
@@ -139,10 +121,9 @@ SCM-Manager 1.16
|
|||||||
- update args4j to version 2.0.21
|
- update args4j to version 2.0.21
|
||||||
- update svnkit to version 1.7.4-1.v1
|
- 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
|
- added information page for service requests
|
||||||
- templates can be loaded from webapp context or classpath
|
- templates can be loaded from webapp context or classpath
|
||||||
@@ -155,9 +136,7 @@ SCM-Manager 1.15
|
|||||||
- added public and archived option to modify-repository sub command of
|
- added public and archived option to modify-repository sub command of
|
||||||
scm-cli-client
|
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
|
daemon
|
||||||
@@ -174,17 +153,14 @@ SCM-Manager 1.15
|
|||||||
\<\<issue 124\>\>
|
\<\<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 google guava to version 12.0
|
||||||
- update logback to version 1.0.3
|
- update logback to version 1.0.3
|
||||||
|
|
||||||
SCM-Manager 1.14
|
## SCM-Manager 1.14
|
||||||
----------------
|
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- archive for repositories, see \<\<issue 42\>\>
|
- archive for repositories, see \<\<issue 42\>\>
|
||||||
- simpler api to create other backend as the default xml version
|
- simpler api to create other backend as the default xml version
|
||||||
@@ -193,9 +169,7 @@ SCM-Manager 1.14
|
|||||||
- improved error dialog in user interface, see \<\<issue 107\>\>
|
- improved error dialog in user interface, see \<\<issue 107\>\>
|
||||||
- improve german locale
|
- improve german locale
|
||||||
|
|
||||||
<!-- -->
|
**fixed bugs**
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
|
||||||
- fix wrong log messages
|
- fix wrong log messages
|
||||||
- fix repository creation failure leaves empty directory, see
|
- fix repository creation failure leaves empty directory, see
|
||||||
@@ -204,26 +178,21 @@ SCM-Manager 1.14
|
|||||||
subrepositories, see \<\<issue 104\>\>
|
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 jetty to version 7.6.3.v20120416
|
||||||
- update logback to version 1.0.1
|
- update logback to version 1.0.1
|
||||||
- update ehcache to version 2.5.2
|
- update ehcache to version 2.5.2
|
||||||
- update commons-daemon to version 1.0.10, see \<\<issue 103\>\>
|
- 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
|
- more robust python modules to access mercurial resources
|
||||||
- added disable option to each core plugin
|
- added disable option to each core plugin
|
||||||
|
|
||||||
<!-- -->
|
**fixed bugs**
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
|
||||||
- fix changing etags for collections
|
- fix changing etags for collections
|
||||||
- fix missing hooks of mercurial repository import, see \<\<issue
|
- fix missing hooks of mercurial repository import, see \<\<issue
|
||||||
@@ -238,19 +207,16 @@ SCM-Manager 1.13
|
|||||||
- fix mercurial encoding problem, see \<\<issue 95\>\>
|
- fix mercurial encoding problem, see \<\<issue 95\>\>
|
||||||
- fix issue-94 can\'t edit users, see \<\<issue 94\>\>
|
- fix issue-94 can\'t edit users, see \<\<issue 94\>\>
|
||||||
|
|
||||||
<!-- -->
|
**library updates**
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
|
||||||
- update freemarker to version 2.3.19
|
- update freemarker to version 2.3.19
|
||||||
- update jetty to version 7.6.1.v20120215
|
- update jetty to version 7.6.1.v20120215
|
||||||
- update jgit to version 1.3.0.201202151440-r
|
- update jgit to version 1.3.0.201202151440-r
|
||||||
- update jersey to version 1.12
|
- update jersey to version 1.12
|
||||||
|
|
||||||
SCM-Manager 1.12
|
## SCM-Manager 1.12
|
||||||
----------------
|
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- new theme
|
- new theme
|
||||||
- support for mercurial 2.1
|
- support for mercurial 2.1
|
||||||
@@ -260,9 +226,7 @@ SCM-Manager 1.12
|
|||||||
- added api for project stages
|
- added api for project stages
|
||||||
- added api to fetch a single changeset
|
- added api to fetch a single changeset
|
||||||
|
|
||||||
<!-- -->
|
**fixed bugs**
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
|
||||||
- allow usernames \< 3 chars, see pull request 2
|
- allow usernames \< 3 chars, see pull request 2
|
||||||
- git: use author ident instead of commit ident
|
- git: use author ident instead of commit ident
|
||||||
@@ -270,27 +234,22 @@ SCM-Manager 1.12
|
|||||||
- mercurial: fix getChangesets of post receive hooks
|
- mercurial: fix getChangesets of post receive hooks
|
||||||
- fix history bug during repository selection
|
- fix history bug during repository selection
|
||||||
|
|
||||||
<!-- -->
|
**library updates**
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
|
||||||
- update jetty to version 7.6.0.v20120127
|
- update jetty to version 7.6.0.v20120127
|
||||||
- update maven for aether to version 3.0.4
|
- update maven for aether to version 3.0.4
|
||||||
- update ehcache to version 2.5.1
|
- update ehcache to version 2.5.1
|
||||||
|
|
||||||
SCM-Manager 1.11
|
##SCM-Manager 1.11
|
||||||
----------------
|
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- allow to fetch repositories by type and name
|
- allow to fetch repositories by type and name
|
||||||
- added icon for tags
|
- added icon for tags
|
||||||
- show parent revision in changeset viewer
|
- show parent revision in changeset viewer
|
||||||
- added repository browser support for external git submodules
|
- added repository browser support for external git submodules
|
||||||
|
|
||||||
<!-- -->
|
**fixed bugs**
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
|
||||||
- fix wrong svn diff
|
- fix wrong svn diff
|
||||||
- fix wrong revision for sub module repository browser
|
- fix wrong revision for sub module repository browser
|
||||||
@@ -304,19 +263,16 @@ SCM-Manager 1.11
|
|||||||
- fix bug in appendParameter method of UrlBuilder
|
- fix bug in appendParameter method of UrlBuilder
|
||||||
- truncate long svn status lines, see \<\<issue 83\>\>
|
- truncate long svn status lines, see \<\<issue 83\>\>
|
||||||
|
|
||||||
SCM-Manager 1.10
|
## SCM-Manager 1.10
|
||||||
----------------
|
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- small performance improvements
|
- small performance improvements
|
||||||
- added basic support for external mercurial subrepositories
|
- added basic support for external mercurial subrepositories
|
||||||
- added repository request listener api
|
- added repository request listener api
|
||||||
- added file object pre processor api
|
- added file object pre processor api
|
||||||
|
|
||||||
<!-- -->
|
**fixed bugs**
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
|
||||||
- fix vertical scrollbar in webkit based browsers
|
- fix vertical scrollbar in webkit based browsers
|
||||||
- fix mercurial push with symbolic links, see \<\<issue 82\>\>
|
- fix mercurial push with symbolic links, see \<\<issue 82\>\>
|
||||||
@@ -325,9 +281,7 @@ SCM-Manager 1.10
|
|||||||
- fix \"Allow anonymous access\" breaks access to private
|
- fix \"Allow anonymous access\" breaks access to private
|
||||||
repositories, see \<\<issue 77\>\>
|
repositories, see \<\<issue 77\>\>
|
||||||
|
|
||||||
<!-- -->
|
**library updates**
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
|
||||||
- update args4j to version 2.0.19
|
- update args4j to version 2.0.19
|
||||||
- update aether to version 1.13.1
|
- update aether to version 1.13.1
|
||||||
@@ -335,10 +289,9 @@ SCM-Manager 1.10
|
|||||||
- update jgit to version 1.2.0.201112221803-r
|
- update jgit to version 1.2.0.201112221803-r
|
||||||
- update svnkit to version 1.3.7.1
|
- 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\>\>
|
- Support for directory structure, see \<\<issue 47\>\>
|
||||||
- Added webservice method to fetch repository by its type and name
|
- Added webservice method to fetch repository by its type and name
|
||||||
@@ -353,9 +306,7 @@ SCM-Manager 1.9
|
|||||||
- Added version and server-version to scm-cli-client
|
- Added version and server-version to scm-cli-client
|
||||||
- Improve performance by better repository caching
|
- Improve performance by better repository caching
|
||||||
|
|
||||||
<!-- -->
|
**fixed bugs**
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
|
||||||
- fix bug in get method of repository resource
|
- fix bug in get method of repository resource
|
||||||
- fix issue \"Administrator flag is disabled after login\", see
|
- fix issue \"Administrator flag is disabled after login\", see
|
||||||
@@ -365,19 +316,16 @@ SCM-Manager 1.9
|
|||||||
- fix mercurial hooks with configured force base url
|
- fix mercurial hooks with configured force base url
|
||||||
- fix mercurial hooks with apache mod\_proxy, see \<\<issue 71\>\>
|
- fix mercurial hooks with apache mod\_proxy, see \<\<issue 71\>\>
|
||||||
|
|
||||||
<!-- -->
|
**library updates**
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
|
||||||
- update jersey to version 1.10
|
- update jersey to version 1.10
|
||||||
- update slf4j to verion 1.6.4
|
- update slf4j to verion 1.6.4
|
||||||
- update logback to version 1.0.0
|
- update logback to version 1.0.0
|
||||||
- update jetty to version 7.5.4.v20111024
|
- 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\>\>
|
- support for pre receive hooks, see \<\<issue 62\>\>
|
||||||
- scm-maven-plugin are now useable for integration tests
|
- scm-maven-plugin are now useable for integration tests
|
||||||
@@ -391,15 +339,11 @@ SCM-Manager 1.8
|
|||||||
- improve javadoc
|
- improve javadoc
|
||||||
- download for single files from repository
|
- download for single files from repository
|
||||||
|
|
||||||
<!-- -->
|
**fixed bugs**
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
|
||||||
- Fixed bug in git repositories without head
|
- Fixed bug in git repositories without head
|
||||||
|
|
||||||
<!-- -->
|
**library updates**
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
|
||||||
- update jetty to version 7.5.1.v20110908
|
- update jetty to version 7.5.1.v20110908
|
||||||
- update aether to version 1.13
|
- update aether to version 1.13
|
||||||
@@ -408,12 +352,9 @@ SCM-Manager 1.8
|
|||||||
- update jgit to version 1.1.0.201109151100-r
|
- update jgit to version 1.1.0.201109151100-r
|
||||||
- update jersey to version 1.9
|
- update jersey to version 1.9
|
||||||
|
|
||||||
SCM-Manager 1.7
|
## SCM-Manager 1.7
|
||||||
---------------
|
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- added repository search and repository type filter to user
|
- added repository search and repository type filter to user
|
||||||
interface, see \<\<issue 48\>\>
|
interface, see \<\<issue 48\>\>
|
||||||
@@ -426,15 +367,11 @@ SCM-Manager 1.7
|
|||||||
- added option to configure the scm home directory with a classpath
|
- added option to configure the scm home directory with a classpath
|
||||||
resource, see \<\<issue 53\>\>
|
resource, see \<\<issue 53\>\>
|
||||||
- support for proxyservers with authentication, see
|
- support for proxyservers with authentication, see
|
||||||
[ko7eGU88rB4](https://groups.google.com/forum/#!topic/scmmanager/ko7eGU88rB4 "wikilink")
|
[ko7eGU88rB4](https://groups.google.com/forum/#!topic/scmmanager/ko7eGU88rB4 "Plugins through http auth proxy?")
|
||||||
- improve changeset pre processor api
|
- improve changeset pre processor api
|
||||||
- improve support for repository, group and user properties
|
- 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\>\>
|
44\>\>
|
||||||
@@ -444,27 +381,20 @@ SCM-Manager 1.7
|
|||||||
- fix a classloading problem in scmp:run maven goal
|
- fix a classloading problem in scmp:run maven goal
|
||||||
- fix bug in property xml serialization
|
- fix bug in property xml serialization
|
||||||
|
|
||||||
<!-- -->
|
**library updates**
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- update ehcache to version 2.4.4
|
- update ehcache to version 2.4.4
|
||||||
- update slf4j to version 1.6.2
|
- update slf4j to version 1.6.2
|
||||||
- update junit to version 4.9
|
- update junit to version 4.9
|
||||||
|
|
||||||
SCM-Manager 1.6
|
## SCM-Manager 1.6
|
||||||
---------------
|
|
||||||
|
|
||||||
- - note\*\*
|
**note**
|
||||||
|
|
||||||
- GlassFish 3.x users have to change their GlassFish configuration,
|
- GlassFish 3.x users have to change their GlassFish configuration,
|
||||||
see [SCM-Manager with GlassFish](glassfish "wikilink")
|
see [SCM-Manager with GlassFish](glassfish.md)
|
||||||
|
|
||||||
<!-- -->
|
**improvements**
|
||||||
|
|
||||||
- - improvements\*\*
|
|
||||||
|
|
||||||
- added an api for repository hooks
|
- added an api for repository hooks
|
||||||
- support for git post-receive hook
|
- support for git post-receive hook
|
||||||
@@ -476,9 +406,7 @@ SCM-Manager 1.6
|
|||||||
- added icons to member and permission grid
|
- added icons to member and permission grid
|
||||||
- added properties to repositories, users and groups
|
- added properties to repositories, users and groups
|
||||||
|
|
||||||
<!-- -->
|
**fixed bugs**
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
|
||||||
- fixed deployment bug on some tomcat configurations, \<\<issue 38\>\>
|
- fixed deployment bug on some tomcat configurations, \<\<issue 38\>\>
|
||||||
- fixed NullPointerException with empty git repositories, \<\<issue
|
- fixed NullPointerException with empty git repositories, \<\<issue
|
||||||
@@ -491,75 +419,59 @@ SCM-Manager 1.6
|
|||||||
- fixed error 500 in mercurial repository browser with configured
|
- fixed error 500 in mercurial repository browser with configured
|
||||||
python path
|
python path
|
||||||
|
|
||||||
<!-- -->
|
**library updates**
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
|
||||||
- upgraded jetty to version 7.4.5.v20110725
|
- upgraded jetty to version 7.4.5.v20110725
|
||||||
- upgraded wagon to version 1.0
|
- upgraded wagon to version 1.0
|
||||||
- upgraded ehcache to version 2.4.3
|
- upgraded ehcache to version 2.4.3
|
||||||
- upgraded aether to version 1.12
|
- 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
|
- mod\_proxy users have to change their configuration, see [mod\_proxy configuration](apache/apache-mod_proxy.md)
|
||||||
configuration](https://bitbucket.org/sdorra/scm-manager/wiki/apache/apache-mod_proxy "wikilink")
|
|
||||||
|
|
||||||
<!-- -->
|
**improvements**
|
||||||
|
|
||||||
- - improvements\*\*
|
|
||||||
|
|
||||||
- added a \"repositorybrowser\"
|
- added a \"repositorybrowser\"
|
||||||
- added missing error messages on session timeout
|
- added missing error messages on session timeout
|
||||||
- support for mod\_proxy forward with ssl, see \<\<issue 32\>\>
|
- support for mod\_proxy forward with ssl, see \<\<issue 32\>\>
|
||||||
- added toolbar icons for add, remove and refresh action
|
- added toolbar icons for add, remove and refresh action
|
||||||
|
|
||||||
<!-- -->
|
**fixed bugs**
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
|
||||||
- fixed javascript error on loginwindow cancelbutton click
|
- fixed javascript error on loginwindow cancelbutton click
|
||||||
- fixed bug with non default git repository directory, see \<\<issue
|
- fixed bug with non default git repository directory, see \<\<issue
|
||||||
29\>\>
|
29\>\>
|
||||||
|
|
||||||
<!-- -->
|
**library updates**
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
|
||||||
- upgraded jersey to version 1.8
|
- upgraded jersey to version 1.8
|
||||||
- upgraded jgit to version 1.0.0.201106090707-r
|
- upgraded jgit to version 1.0.0.201106090707-r
|
||||||
|
|
||||||
SCM-Manager 1.4
|
## SCM-Manager 1.4
|
||||||
---------------
|
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- support for IE 9
|
- support for IE 9
|
||||||
- using tabs for group details
|
- using tabs for group details
|
||||||
|
|
||||||
<!-- -->
|
**fixed bugs**
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
|
||||||
- fixed svn move command, see \<\<issue 25\>\>
|
- fixed svn move command, see \<\<issue 25\>\>
|
||||||
- fixed svn log command, see \<\<issue 25\>\>
|
- fixed svn log command, see \<\<issue 25\>\>
|
||||||
|
|
||||||
<!-- -->
|
**library updates**
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
|
||||||
- upgraded jersey-ahc-client to version 1.0.2
|
- upgraded jersey-ahc-client to version 1.0.2
|
||||||
- upgraded jersey-client to version 1.7
|
- upgraded jersey-client to version 1.7
|
||||||
- upgraded logback to version 0.9.29
|
- upgraded logback to version 0.9.29
|
||||||
- upgraded extjs to version 3.4.0
|
- upgraded extjs to version 3.4.0
|
||||||
|
|
||||||
SCM-Manager 1.3
|
## SCM-Manager 1.3
|
||||||
---------------
|
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- added a client api
|
- added a client api
|
||||||
- added a commandline client
|
- added a commandline client
|
||||||
@@ -568,16 +480,12 @@ SCM-Manager 1.3
|
|||||||
- improved session timeout handling, see \<\<issue 23\>\>
|
- improved session timeout handling, see \<\<issue 23\>\>
|
||||||
- move logging configuration to \"conf\" folder of scm-server
|
- move logging configuration to \"conf\" folder of scm-server
|
||||||
|
|
||||||
<!-- -->
|
**fixed bugs**
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
|
||||||
- svn: fixed wrong content-length in DAVServlet, see \<\<issue 24\>\>
|
- svn: fixed wrong content-length in DAVServlet, see \<\<issue 24\>\>
|
||||||
- svn: fixed wrong encoding, see \<\<issue 22\>\>
|
- svn: fixed wrong encoding, see \<\<issue 22\>\>
|
||||||
|
|
||||||
<!-- -->
|
**library updates**
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
|
||||||
- upgraded jetty to version 7.4.2.v20110526
|
- upgraded jetty to version 7.4.2.v20110526
|
||||||
- upgraded google guice to version 3.0
|
- upgraded google guice to version 3.0
|
||||||
@@ -585,10 +493,9 @@ SCM-Manager 1.3
|
|||||||
- upgraded freemarker to version 2.3.18
|
- upgraded freemarker to version 2.3.18
|
||||||
- upgraded jersey to version 1.7
|
- upgraded jersey to version 1.7
|
||||||
|
|
||||||
SCM-Manager 1.2
|
## SCM-Manager 1.2
|
||||||
---------------
|
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- added a \"changesetviewer\"
|
- added a \"changesetviewer\"
|
||||||
- using tabs for repository configuration
|
- using tabs for repository configuration
|
||||||
@@ -598,26 +505,21 @@ SCM-Manager 1.2
|
|||||||
- new cgi api
|
- new cgi api
|
||||||
- added subversion compatibility switches, see \<\<issue 13\>\>
|
- added subversion compatibility switches, see \<\<issue 13\>\>
|
||||||
|
|
||||||
<!-- -->
|
**fixed bugs**
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
|
||||||
- fixed ssl support in scm-server, see \<\<issue 9\>\>
|
- fixed ssl support in scm-server, see \<\<issue 9\>\>
|
||||||
- fixed ssl support in mercurial cgi servlet, see \<\<issue 9\>\>
|
- fixed ssl support in mercurial cgi servlet, see \<\<issue 9\>\>
|
||||||
- fixed a browser window resize bug, see \<\<issue 10\>\>
|
- fixed a browser window resize bug, see \<\<issue 10\>\>
|
||||||
- fixed bug with spaces in the scm home path, see \<\<issue 11\>\>
|
- fixed bug with spaces in the scm home path, see \<\<issue 11\>\>
|
||||||
|
|
||||||
<!-- -->
|
**library updates**
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
|
||||||
- upgrade freemarker to version 2.3.16
|
- upgrade freemarker to version 2.3.16
|
||||||
- upgrade jersey to version 1.6
|
- upgrade jersey to version 1.6
|
||||||
- upgrade ehcache to version 2.4.1
|
- upgrade ehcache to version 2.4.1
|
||||||
- upgrade jgit to version 0.12.1
|
- upgrade jgit to version 0.12.1
|
||||||
|
|
||||||
SCM-Manager 1.1
|
## SCM-Manager 1.1
|
||||||
---------------
|
|
||||||
|
|
||||||
- Support for Unix-Daemons and Windows-Services
|
- Support for Unix-Daemons and Windows-Services
|
||||||
- Support for localization
|
- Support for localization
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
|
# Release Notes 1.39 - 1.20
|
||||||
|
|
||||||
SCM-Manager 1.39
|
SCM-Manager 1.39
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- created rpm and deb packages for scm-server
|
- created rpm and deb packages for scm-server
|
||||||
- improve error handling of permission system
|
- improve error handling of permission system
|
||||||
@@ -11,9 +13,9 @@ SCM-Manager 1.39
|
|||||||
- implemented marker interface for plugin class loaders to make it
|
- implemented marker interface for plugin class loaders to make it
|
||||||
easier to find class loader leaks
|
easier to find class loader leaks
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
**fixed bugs**
|
||||||
|
|
||||||
- fix mailto links
|
- fix mailto links
|
||||||
- fix automatic start as service on windows server 2012, see \<\<issue
|
- 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
|
- fix marshalling exception on plugin installation with rest api, see
|
||||||
\<\<issue \#578\>\>
|
\<\<issue \#578\>\>
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
**library updates**
|
||||||
|
|
||||||
- update mustache to version 0.8.15
|
- update mustache to version 0.8.15
|
||||||
- update jgit to version 3.4.0.201406110918-r
|
- update jgit to version 3.4.0.201406110918-r
|
||||||
@@ -41,7 +43,7 @@ SCM-Manager 1.39
|
|||||||
SCM-Manager 1.38
|
SCM-Manager 1.38
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
**fixed bugs**
|
||||||
|
|
||||||
- fix NoClassDefFoundError in scm-cli-client, see issue \<\<issue
|
- fix NoClassDefFoundError in scm-cli-client, see issue \<\<issue
|
||||||
\#576\>\>
|
\#576\>\>
|
||||||
@@ -55,7 +57,7 @@ SCM-Manager 1.38
|
|||||||
SCM-Manager 1.37
|
SCM-Manager 1.37
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- improved git error messages for failed authentication and not enough
|
- improved git error messages for failed authentication and not enough
|
||||||
permissions
|
permissions
|
||||||
@@ -65,9 +67,9 @@ SCM-Manager 1.37
|
|||||||
- update last modified date of a repository after each push
|
- update last modified date of a repository after each push
|
||||||
- added hidden last modified column to repository grid
|
- added hidden last modified column to repository grid
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
**fixed bugs**
|
||||||
|
|
||||||
- resolve dependency resolution conflicts, see \<\<issue 541\>\>,
|
- resolve dependency resolution conflicts, see \<\<issue 541\>\>,
|
||||||
\<\<issue 549\>\> and \<\<issue 558\>\>
|
\<\<issue 549\>\> and \<\<issue 558\>\>
|
||||||
@@ -79,9 +81,9 @@ SCM-Manager 1.37
|
|||||||
\<\<issue 548\>\>
|
\<\<issue 548\>\>
|
||||||
- subversion cannot delete properties, see \<\<issue 547\>\>
|
- subversion cannot delete properties, see \<\<issue 547\>\>
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
**library updates**
|
||||||
|
|
||||||
- update jetty to version 7.6.15.v20140411
|
- update jetty to version 7.6.15.v20140411
|
||||||
- update svnkit to version 1.8.5-scm1
|
- update svnkit to version 1.8.5-scm1
|
||||||
@@ -93,18 +95,18 @@ SCM-Manager 1.37
|
|||||||
SCM-Manager 1.36
|
SCM-Manager 1.36
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- added feature to set custom realm description, see [PR
|
- 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
|
- added option to skip failed authenticators
|
||||||
- cli-client: allow retrieving repositories by using type/name instead
|
- cli-client: allow retrieving repositories by using type/name instead
|
||||||
of repository id
|
of repository id
|
||||||
- implemented repository health checks
|
- implemented repository health checks
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
**fixed bugs**
|
||||||
|
|
||||||
- solve classloading issues for plugin classes
|
- solve classloading issues for plugin classes
|
||||||
- fix changing passwords which a shorter than 5 chars, see issue
|
- 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 bug with some special chars in SearchUtil
|
||||||
- fix mercurial out of scope exception on startup
|
- fix mercurial out of scope exception on startup
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
**library updates**
|
||||||
|
|
||||||
- update args4j 2.0.26
|
- update args4j 2.0.26
|
||||||
- update svnkit to version 1.8.4-scm1
|
- update svnkit to version 1.8.4-scm1
|
||||||
@@ -135,35 +137,35 @@ SCM-Manager 1.36
|
|||||||
SCM-Manager 1.35
|
SCM-Manager 1.35
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- Spanish translation, see [PR
|
- 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.
|
thanks to [Ángel L.
|
||||||
García](https://bitbucket.org/algarcia "wikilink")
|
García](https://bitbucket.org/algarcia)
|
||||||
- added auto-login filter system, see [PR
|
- added auto-login filter system, see [PR
|
||||||
4](https://bitbucket.org/sdorra/scm-manager/pull-request/4/modifications-for-auto-login "wikilink")
|
4](https://bitbucket.org/sdorra/scm-manager/pull-request/4/modifications-for-auto-login)
|
||||||
thanks to [Clemens Rabe](https://bitbucket.org/seeraven "wikilink")
|
thanks to [Clemens Rabe](https://bitbucket.org/seeraven)
|
||||||
- added property to disable escaping for blame, browse, log command
|
- added property to disable escaping for blame, browse, log command
|
||||||
and hooks, see \<\<issue 505\>\>
|
and hooks, see \<\<issue 505\>\>
|
||||||
- remove cancel button on login window if anonymous access is
|
- remove cancel button on login window if anonymous access is
|
||||||
disabled, see \<\<issue 396\>\>
|
disabled, see \<\<issue 396\>\>
|
||||||
- syntax highlighting for c, h, hh and cc files, see [PR
|
- 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")
|
11](https://bitbucket.org/sdorra/scm-manager/pull-request/11/c-java-extensions-added-to)
|
||||||
thanks to [pankaj azad](https://bitbucket.org/pankajazad "wikilink")
|
thanks to [pankaj azad](https://bitbucket.org/pankajazad)
|
||||||
- custom subversion collection renderer
|
- custom subversion collection renderer
|
||||||
- use full message instead of short message for git commits, see
|
- use full message instead of short message for git commits, see
|
||||||
\<\<issue 474\>\>
|
\<\<issue 474\>\>
|
||||||
- improved german translation, see [PR
|
- improved german translation, see [PR
|
||||||
5](https://bitbucket.org/sdorra/scm-manager/pull-request/5/german-translation-adjusted/diff "wikilink")
|
5](https://bitbucket.org/sdorra/scm-manager/pull-request/5/german-translation-adjusted/diff)
|
||||||
thanks to [Ahmed Saad](https://bitbucket.org/saadous "wikilink")
|
thanks to [Ahmed Saad](https://bitbucket.org/saadous)
|
||||||
- use same validation rules for user and group names, see \<\<issue
|
- use same validation rules for user and group names, see \<\<issue
|
||||||
470\>\>
|
470\>\>
|
||||||
- added brushes for applescript and sass
|
- added brushes for applescript and sass
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
**fixed bugs**
|
||||||
|
|
||||||
- fixed file leak, see \<\<issue 500\>\>
|
- fixed file leak, see \<\<issue 500\>\>
|
||||||
- fixed double escaping, see \<\<issue 505\>\>
|
- fixed double escaping, see \<\<issue 505\>\>
|
||||||
@@ -178,9 +180,9 @@ SCM-Manager 1.35
|
|||||||
see \<\<issue 464\>\>
|
see \<\<issue 464\>\>
|
||||||
- fix wrong sql brush filename, see \<\<issue 461\>\>
|
- fix wrong sql brush filename, see \<\<issue 461\>\>
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
**library updates**
|
||||||
|
|
||||||
- update jetty to 7.6.14.v20131031
|
- update jetty to 7.6.14.v20131031
|
||||||
- update jersey to 1.18
|
- update jersey to 1.18
|
||||||
@@ -193,7 +195,7 @@ SCM-Manager 1.35
|
|||||||
SCM-Manager 1.34
|
SCM-Manager 1.34
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- allow multi line mercurial messages
|
- allow multi line mercurial messages
|
||||||
- change order of permission column and use a more robust cell editor
|
- change order of permission column and use a more robust cell editor
|
||||||
@@ -203,9 +205,9 @@ SCM-Manager 1.34
|
|||||||
- added configuration changed event
|
- added configuration changed event
|
||||||
- implement login attempt handler to handle failed authentications
|
- implement login attempt handler to handle failed authentications
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
**fixed bugs**
|
||||||
|
|
||||||
- fix bug with user events and decorated user managers
|
- fix bug with user events and decorated user managers
|
||||||
- fix hg push fails with \'URLError\' object has no attribute
|
- 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
|
- fix out of scope exception on access hgcontext, see \<\<issue
|
||||||
451\>\>
|
451\>\>
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
**library updates**
|
||||||
|
|
||||||
- update jetty to 7.6.13.v20130916
|
- update jetty to 7.6.13.v20130916
|
||||||
- update guava to version 15.0
|
- update guava to version 15.0
|
||||||
@@ -232,7 +234,7 @@ SCM-Manager 1.34
|
|||||||
SCM-Manager 1.33
|
SCM-Manager 1.33
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- added api to bypass changeset pre processors during hook
|
- added api to bypass changeset pre processors during hook
|
||||||
- added api to send messages back to scm client 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
|
- introduce Event annotation to mark event classes which are
|
||||||
receiveable over the event system
|
receiveable over the event system
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
**fixed bugs**
|
||||||
|
|
||||||
- fix login window scrollbars on linux with firefox 21, see \<\<issue
|
- fix login window scrollbars on linux with firefox 21, see \<\<issue
|
||||||
411\>\>
|
411\>\>
|
||||||
@@ -259,9 +261,9 @@ SCM-Manager 1.33
|
|||||||
- fix handling of pending changesets during pre receive repository
|
- fix handling of pending changesets during pre receive repository
|
||||||
hooks
|
hooks
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
**library updates**
|
||||||
|
|
||||||
- update jgit to 3.0.0.201306101825-r
|
- update jgit to 3.0.0.201306101825-r
|
||||||
- update args4j to version 2.0.25
|
- update args4j to version 2.0.25
|
||||||
@@ -274,16 +276,16 @@ SCM-Manager 1.33
|
|||||||
SCM-Manager 1.32
|
SCM-Manager 1.32
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- added support for subversion 1.8 and ra\_serf (\<\<issue 222\>\>,
|
- added support for subversion 1.8 and ra\_serf (\<\<issue 222\>\>,
|
||||||
\<\<issue 406\>\>)
|
\<\<issue 406\>\>)
|
||||||
- added detection eclipse jetty (standalone) to
|
- added detection eclipse jetty (standalone) to
|
||||||
ServletContainerDetector (pull request 3)
|
ServletContainerDetector (pull request 3)
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
**fixed bugs**
|
||||||
|
|
||||||
- fix loading of cache configurations from plugins
|
- fix loading of cache configurations from plugins
|
||||||
- resolve conflicts for plugins and plugin dependencies
|
- resolve conflicts for plugins and plugin dependencies
|
||||||
@@ -295,7 +297,7 @@ SCM-Manager 1.32
|
|||||||
SCM-Manager 1.31
|
SCM-Manager 1.31
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- added first access url and credentials to readme
|
- added first access url and credentials to readme
|
||||||
- option to assign global access permissions to users and groups
|
- option to assign global access permissions to users and groups
|
||||||
@@ -311,9 +313,9 @@ SCM-Manager 1.31
|
|||||||
parent
|
parent
|
||||||
- create and deploy package for rest documentation
|
- create and deploy package for rest documentation
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
**fixed bugs**
|
||||||
|
|
||||||
- fix wrong message for deleting repositories (\<\<issue 370\>\>)
|
- fix wrong message for deleting repositories (\<\<issue 370\>\>)
|
||||||
- fix button handling on repository grid with enabled archive mode
|
- fix button handling on repository grid with enabled archive mode
|
||||||
@@ -326,9 +328,9 @@ SCM-Manager 1.31
|
|||||||
395\>\>)
|
395\>\>)
|
||||||
- fix daemon mode on some operating systems (\<\<issue 397\>\>)
|
- fix daemon mode on some operating systems (\<\<issue 397\>\>)
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
**library updates**
|
||||||
|
|
||||||
- update logback to version 1.0.13
|
- update logback to version 1.0.13
|
||||||
- update svnkit to version 1.7.9-scm1
|
- update svnkit to version 1.7.9-scm1
|
||||||
@@ -341,14 +343,14 @@ SCM-Manager 1.31
|
|||||||
SCM-Manager 1.30
|
SCM-Manager 1.30
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
**fixed bugs**
|
||||||
|
|
||||||
- fix missing copy strategy in guava cache configuration
|
- fix missing copy strategy in guava cache configuration
|
||||||
|
|
||||||
SCM-Manager 1.29
|
SCM-Manager 1.29
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- use guava as default cache implementation (\<\<issue 345\>\>)
|
- use guava as default cache implementation (\<\<issue 345\>\>)
|
||||||
- merge cache configuration from default location, config directory
|
- 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
|
- use template engine and repository service for git repository page
|
||||||
(\<\<issue 341\>\>)
|
(\<\<issue 341\>\>)
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
**fixed bugs**
|
||||||
|
|
||||||
- synchronize getCache method of cache manager implementations
|
- synchronize getCache method of cache manager implementations
|
||||||
(\<\<issue 345\>\>)
|
(\<\<issue 345\>\>)
|
||||||
@@ -381,9 +383,9 @@ SCM-Manager 1.29
|
|||||||
- sonia.scm.net.HttpRequest.appendValues() adds parameter values twice
|
- sonia.scm.net.HttpRequest.appendValues() adds parameter values twice
|
||||||
(\<\<issue 342\>\>)
|
(\<\<issue 342\>\>)
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
**library updates**
|
||||||
|
|
||||||
- update ehcache to version 2.6.5
|
- update ehcache to version 2.6.5
|
||||||
- update jersey to version 1.17.1
|
- update jersey to version 1.17.1
|
||||||
@@ -397,7 +399,7 @@ SCM-Manager 1.29
|
|||||||
SCM-Manager 1.28
|
SCM-Manager 1.28
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- added scm.home example for windows, see \<\<issue 328\>\>
|
- added scm.home example for windows, see \<\<issue 328\>\>
|
||||||
- disable directory listings on default scm-server configuration
|
- disable directory listings on default scm-server configuration
|
||||||
@@ -407,9 +409,9 @@ SCM-Manager 1.28
|
|||||||
- use async cache for scm realm
|
- use async cache for scm realm
|
||||||
- improve manager exception handling
|
- improve manager exception handling
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
**fixed bugs**
|
||||||
|
|
||||||
- fix path traversal vulnerability in git changelog api, see \<\<issue
|
- fix path traversal vulnerability in git changelog api, see \<\<issue
|
||||||
319\>\>
|
319\>\>
|
||||||
@@ -423,15 +425,15 @@ SCM-Manager 1.28
|
|||||||
SCM-Manager 1.27
|
SCM-Manager 1.27
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- exclude commons-logging and use jcl-over-slf4j instead
|
- exclude commons-logging and use jcl-over-slf4j instead
|
||||||
- icons of repository browser should be clickable
|
- icons of repository browser should be clickable
|
||||||
- post authentication events to the new event system
|
- post authentication events to the new event system
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
**fixed bugs**
|
||||||
|
|
||||||
- fix binding of extensions with eager singleton scope
|
- fix binding of extensions with eager singleton scope
|
||||||
- fix bug with registration of multiple authentication listeners
|
- fix bug with registration of multiple authentication listeners
|
||||||
@@ -441,7 +443,7 @@ SCM-Manager 1.27
|
|||||||
SCM-Manager 1.26
|
SCM-Manager 1.26
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- use localStorage to store state of the user interface
|
- use localStorage to store state of the user interface
|
||||||
- improve logging of plugin installer
|
- improve logging of plugin installer
|
||||||
@@ -450,9 +452,9 @@ SCM-Manager 1.26
|
|||||||
- added recursive option to browse command
|
- added recursive option to browse command
|
||||||
- added option to disable sub repository detection of 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
|
- normalize urls for BaseUrlFilter to prevent redirect loops, see
|
||||||
\<\<issue 311\>\>
|
\<\<issue 311\>\>
|
||||||
@@ -462,23 +464,23 @@ SCM-Manager 1.26
|
|||||||
- synchronize getChangeset method of hook events and call registered
|
- synchronize getChangeset method of hook events and call registered
|
||||||
pre processors before the changesets are returned to hook
|
pre processors before the changesets are returned to hook
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
**library updates**
|
||||||
|
|
||||||
- update jersey to version 1.17
|
- update jersey to version 1.17
|
||||||
|
|
||||||
SCM-Manager 1.25
|
SCM-Manager 1.25
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- added feature api for specific repository types
|
- added feature api for specific repository types
|
||||||
- improve logging of plugin installer
|
- improve logging of plugin installer
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
**fixed bugs**
|
||||||
|
|
||||||
- fix svn make and put with Polish characters in path, see \<\<issue
|
- fix svn make and put with Polish characters in path, see \<\<issue
|
||||||
298\>\>
|
298\>\>
|
||||||
@@ -489,9 +491,9 @@ SCM-Manager 1.25
|
|||||||
- fix installing plugin package breaks classpath.xml, see \<\<issue
|
- fix installing plugin package breaks classpath.xml, see \<\<issue
|
||||||
306\>\>
|
306\>\>
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
**library updates**
|
||||||
|
|
||||||
- update svnkit to version 1.7.8-scm1
|
- update svnkit to version 1.7.8-scm1
|
||||||
- update ehcache to version 2.6.3
|
- update ehcache to version 2.6.3
|
||||||
@@ -502,14 +504,14 @@ SCM-Manager 1.25
|
|||||||
SCM-Manager 1.24
|
SCM-Manager 1.24
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
**fixed bugs**
|
||||||
|
|
||||||
- fix wrong default date format
|
- fix wrong default date format
|
||||||
|
|
||||||
SCM-Manager 1.23
|
SCM-Manager 1.23
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- new event api based on guavas EventBus
|
- new event api based on guavas EventBus
|
||||||
- added option to exclude hosts from proxy, see \<\<issue 281\>\>
|
- 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
|
- prepare server-config.xml for request logging
|
||||||
- improve javadoc
|
- improve javadoc
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
**fixed bugs**
|
||||||
|
|
||||||
- use system environment when executing \"hg create\"
|
- use system environment when executing \"hg create\"
|
||||||
- fix build from source, see \<\<issue 289\>\>
|
- fix build from source, see \<\<issue 289\>\>
|
||||||
@@ -538,9 +540,9 @@ SCM-Manager 1.23
|
|||||||
- fix mercurial sub repository detection in source browser
|
- fix mercurial sub repository detection in source browser
|
||||||
- fix non closing client response
|
- fix non closing client response
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
**library updates**
|
||||||
|
|
||||||
- update selenium to version 2.28.0
|
- update selenium to version 2.28.0
|
||||||
- update svnkit to version 1.7.6-scm3
|
- update svnkit to version 1.7.6-scm3
|
||||||
@@ -554,7 +556,7 @@ SCM-Manager 1.23
|
|||||||
SCM-Manager 1.22
|
SCM-Manager 1.22
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- store expanded/collapsed state of groupingviews across sessions, see
|
- store expanded/collapsed state of groupingviews across sessions, see
|
||||||
\<\<issue 268\>\>
|
\<\<issue 268\>\>
|
||||||
@@ -562,15 +564,15 @@ SCM-Manager 1.22
|
|||||||
- added method to read templates from a reader
|
- added method to read templates from a reader
|
||||||
- added repository type icons to grid
|
- added repository type icons to grid
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
**fixed bugs**
|
||||||
|
|
||||||
- fix permission autocomplete, see \<\<issue 267\>\>
|
- fix permission autocomplete, see \<\<issue 267\>\>
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
**library updates**
|
||||||
|
|
||||||
- update mustache.java to version 0.8.8
|
- update mustache.java to version 0.8.8
|
||||||
- update mockito to version 1.9.5
|
- update mockito to version 1.9.5
|
||||||
@@ -578,7 +580,7 @@ SCM-Manager 1.22
|
|||||||
SCM-Manager 1.21
|
SCM-Manager 1.21
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- reimplment the complete security model on top of apache shiro
|
- reimplment the complete security model on top of apache shiro
|
||||||
- allow execution of administration tasks without an active http
|
- 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
|
- improve performance and memory consumption of svn log command
|
||||||
- do not log sensitive cgi env variables
|
- do not log sensitive cgi env variables
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
**fixed bugs**
|
||||||
|
|
||||||
- fix freezing configuration form on ie, see \<\<issue 236\>\>
|
- fix freezing configuration form on ie, see \<\<issue 236\>\>
|
||||||
- fix wrong branch informations of git repository hooks, \<\<issue
|
- 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 bug in history of subversion repositories
|
||||||
- fix wrong mercurial changeset ids during hooks
|
- fix wrong mercurial changeset ids during hooks
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
**library updates**
|
||||||
|
|
||||||
- update google guava to version 13.0.1
|
- update google guava to version 13.0.1
|
||||||
- update jetty to version 7.6.7.v20120910
|
- update jetty to version 7.6.7.v20120910
|
||||||
@@ -616,26 +618,25 @@ SCM-Manager 1.21
|
|||||||
SCM-Manager 1.20
|
SCM-Manager 1.20
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- added java.awt.headless system property to server startup scripts
|
- added java.awt.headless system property to server startup scripts
|
||||||
- strip changeset ids to 12 chars
|
- strip changeset ids to 12 chars
|
||||||
- use eternal caches for new repository api
|
- use eternal caches for new repository api
|
||||||
- added placeholder to commit view
|
- added placeholder to commit view
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
**fixed bugs**
|
||||||
|
|
||||||
- fix non closing \"hg serve\" processes
|
- fix non closing \"hg serve\" processes
|
||||||
- fix error on changing branches in commit viewer
|
- fix error on changing branches in commit viewer
|
||||||
- fix wrong file modifications on git changeset overview
|
- fix wrong file modifications on git changeset overview
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
**library updates**
|
||||||
|
|
||||||
- update logback to version 1.0.7
|
- update logback to version 1.0.7
|
||||||
|
|
||||||
[Release 1.19 -
|
[Release 1.19 - 1.0](release%20notes%201.19%20-%201.0.md)
|
||||||
1.0](https://bitbucket.org/sdorra/scm-manager/wiki/release%20notes%201.19%20-%201.0 "wikilink")
|
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
- - note\*\*
|
**note**
|
||||||
|
|
||||||
- Versions prior to 1.36 are creating incompatible subversion
|
- Versions prior to 1.36 are creating incompatible subversion
|
||||||
repositories, if the subversion option \"with 1.7 Compatible\" is
|
repositories, if the subversion option \"with 1.7 Compatible\" is
|
||||||
enabled. [read
|
enabled. [read more](healthchecks/svn-incompatible-dbformat.md)
|
||||||
more](https://bitbucket.org/sdorra/scm-manager/wiki/healthchecks/svn-incompatible-dbformat "wikilink")
|
|
||||||
- since version 1.18 scm-manager requires mercurial 1.9 or newer
|
- since version 1.18 scm-manager requires mercurial 1.9 or newer
|
||||||
- since version 1.49 Java 7 or newer is required
|
- 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
|
- version 1.58 and 1.59 are not working on java 7, but version 1.60
|
||||||
@@ -13,54 +12,54 @@
|
|||||||
SCM-Manager 1.60
|
SCM-Manager 1.60
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
**fixed bugs**
|
||||||
|
|
||||||
- restored java 7 compatibility (broken since 1.58), see \<\<issue
|
- restored java 7 compatibility (broken since 1.58), see \<\<issue
|
||||||
972\>\> and \<\<issue 982\>\>
|
972\>\> and \<\<issue 982\>\>
|
||||||
- fixed build on java 9
|
- fixed build on java 9
|
||||||
- fixed execution on java 9 and 10
|
- fixed execution on java 9 and 10
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - improvements\*\*
|
|
||||||
|
**improvements**
|
||||||
|
|
||||||
- encrypt cli configuration with aes instead of pbe, see \<\<issue
|
- encrypt cli configuration with aes instead of pbe, see \<\<issue
|
||||||
979\>\> and \<\<issue 978\>\>
|
979\>\> and \<\<issue 978\>\>
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
**library updates**
|
||||||
|
|
||||||
- update commons-daemon to version 1.1.0
|
- update commons-daemon to version 1.1.0
|
||||||
|
|
||||||
SCM-Manager 1.59
|
SCM-Manager 1.59
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
**fixed bugs**
|
||||||
|
|
||||||
- mercurial: fix hgweb execution for mercurial versions prior 4.1, see
|
- 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
|
- 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
|
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
|
SCM-Manager 1.58
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- mercurial: support for httppostargs protocol, see \<\<issue 970\>\>
|
- mercurial: support for httppostargs protocol, see \<\<issue 970\>\>
|
||||||
- mercurial: prevent
|
- 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\>\>
|
see \<\<issue 970\>\>
|
||||||
- mercurial: dded option to disable ssl validation for scm hooks, see
|
- mercurial: dded option to disable ssl validation for scm hooks, see
|
||||||
\<\<issue 959\>\>
|
\<\<issue 959\>\>
|
||||||
- removed never released scm-dao-orientdb module
|
- removed never released scm-dao-orientdb module
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
**library updates**
|
||||||
|
|
||||||
- update javahg to 0.13
|
- update javahg to 0.13
|
||||||
- update commons-beanutils to 1.9.3
|
- update commons-beanutils to 1.9.3
|
||||||
@@ -75,27 +74,27 @@ SCM-Manager 1.58
|
|||||||
SCM-Manager 1.57
|
SCM-Manager 1.57
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- treat update of a git tag as delete and create for hooks
|
- 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
|
- fixed handling of resources with spaces in its id, see \<\<issue
|
||||||
965\>\>
|
965\>\>
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
**library updates**
|
||||||
|
|
||||||
- update svnkit to version 1.9.0-scm3
|
- update svnkit to version 1.9.0-scm3
|
||||||
|
|
||||||
SCM-Manager 1.56
|
SCM-Manager 1.56
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
**fixed bugs**
|
||||||
|
|
||||||
- fixed high cpu load after subversion client connection abort, see
|
- fixed high cpu load after subversion client connection abort, see
|
||||||
\<\<issue 939\>\>
|
\<\<issue 939\>\>
|
||||||
@@ -105,13 +104,13 @@ SCM-Manager 1.56
|
|||||||
SCM-Manager 1.55
|
SCM-Manager 1.55
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- added option to disallow non fast-forward git pushes
|
- added option to disallow non fast-forward git pushes
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
**fixed bugs**
|
||||||
|
|
||||||
- fixes usage of named cache configurations, see \<\<issue 943\>\>
|
- fixes usage of named cache configurations, see \<\<issue 943\>\>
|
||||||
- fixed update of git repositories with empty git default branch, see
|
- fixed update of git repositories with empty git default branch, see
|
||||||
@@ -119,11 +118,11 @@ SCM-Manager 1.55
|
|||||||
- remove work directory after package upgrade, see \<\<issue 923\>\>
|
- remove work directory after package upgrade, see \<\<issue 923\>\>
|
||||||
- prevent binary data in mercurial {extras} from interfering with
|
- prevent binary data in mercurial {extras} from interfering with
|
||||||
UTF-8 decoding, see
|
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 jgit to version v4.5.3.201708160445-r-scm1
|
||||||
- update svnkit to version 1.9.0-scm1
|
- update svnkit to version 1.9.0-scm1
|
||||||
@@ -131,23 +130,23 @@ SCM-Manager 1.55
|
|||||||
SCM-Manager 1.54
|
SCM-Manager 1.54
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- added experimetal support for git-lfs,
|
- 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
|
- improve git client detection to include jgit
|
||||||
- git repositories are now accessible with the \".git\" suffix
|
- git repositories are now accessible with the \".git\" suffix
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
**fixed bugs**
|
||||||
|
|
||||||
- fix repository browsing with mercurial 4.x
|
- fix repository browsing with mercurial 4.x
|
||||||
- fixing test execution on german / windows machines
|
- fixing test execution on german / windows machines
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
**library updates**
|
||||||
|
|
||||||
- update jgit to v4.5.2.201704071617-r-scm1
|
- update jgit to v4.5.2.201704071617-r-scm1
|
||||||
- update javahg to 0.8-scm1
|
- update javahg to 0.8-scm1
|
||||||
@@ -157,20 +156,20 @@ SCM-Manager 1.54
|
|||||||
SCM-Manager 1.53
|
SCM-Manager 1.53
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
**fixed bugs**
|
||||||
|
|
||||||
- fix jax-rs classpath conflict, see \<\<issue 916\>\>
|
- fix jax-rs classpath conflict, see \<\<issue 916\>\>
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
**library updates**
|
||||||
|
|
||||||
- update nativepkg-maven-plugin to version 1.1.4
|
- update nativepkg-maven-plugin to version 1.1.4
|
||||||
|
|
||||||
SCM-Manager 1.52
|
SCM-Manager 1.52
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- added support for gtld email domains, see \<\<issue 909\>\>
|
- added support for gtld email domains, see \<\<issue 909\>\>
|
||||||
- improved performance by creating an adapter between scm and shiro
|
- improved performance by creating an adapter between scm and shiro
|
||||||
@@ -178,9 +177,9 @@ SCM-Manager 1.52
|
|||||||
- improved rest api documentation, see
|
- improved rest api documentation, see
|
||||||
<https://docs.scm-manager.org/restdocs/1.52/>
|
<https://docs.scm-manager.org/restdocs/1.52/>
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
**library updates**
|
||||||
|
|
||||||
- update svnkit to version 1.8.15-scm1
|
- update svnkit to version 1.8.15-scm1
|
||||||
- update enunciate to version 2.9.1
|
- update enunciate to version 2.9.1
|
||||||
@@ -188,14 +187,14 @@ SCM-Manager 1.52
|
|||||||
SCM-Manager 1.51
|
SCM-Manager 1.51
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- update svnkit to version 1.8.14-scm1 in order to support subversion
|
- update svnkit to version 1.8.14-scm1 in order to support subversion
|
||||||
1.9 new fsfs repository format, see \<\<issue 858\>\>
|
1.9 new fsfs repository format, see \<\<issue 858\>\>
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
**fixed bugs**
|
||||||
|
|
||||||
- fix wrong subversion urls behind a reverse proxy, see \<\<issue
|
- fix wrong subversion urls behind a reverse proxy, see \<\<issue
|
||||||
889\>\>
|
889\>\>
|
||||||
@@ -204,9 +203,9 @@ SCM-Manager 1.51
|
|||||||
- fix wrong key usage during encoding in DefaultCipherHandler, see
|
- fix wrong key usage during encoding in DefaultCipherHandler, see
|
||||||
\<\<issue 887\>\>
|
\<\<issue 887\>\>
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
**library updates**
|
||||||
|
|
||||||
- update jersey to version 1.19.3
|
- update jersey to version 1.19.3
|
||||||
- update slf4j to version 1.7.22
|
- update slf4j to version 1.7.22
|
||||||
@@ -218,7 +217,7 @@ SCM-Manager 1.51
|
|||||||
SCM-Manager 1.50
|
SCM-Manager 1.50
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- added reusable components for branch and tag combo boxes
|
- added reusable components for branch and tag combo boxes
|
||||||
- option to define default branch for git repositories \<\<issue
|
- option to define default branch for git repositories \<\<issue
|
||||||
@@ -229,9 +228,9 @@ SCM-Manager 1.50
|
|||||||
GET, see issue \<\<issue 859\>\>
|
GET, see issue \<\<issue 859\>\>
|
||||||
- added new hook context api for tags
|
- added new hook context api for tags
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
**fixed bugs**
|
||||||
|
|
||||||
- send http status code 401 unauthorized on failed git authentication,
|
- send http status code 401 unauthorized on failed git authentication,
|
||||||
see issue \<\<issue 870\>\>
|
see issue \<\<issue 870\>\>
|
||||||
@@ -241,14 +240,14 @@ SCM-Manager 1.50
|
|||||||
SCM-Manager 1.49
|
SCM-Manager 1.49
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- reduce event bus logging
|
- reduce event bus logging
|
||||||
- added RepositoryHookITCase to test repository post receive hooks
|
- added RepositoryHookITCase to test repository post receive hooks
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
**fixed bugs**
|
||||||
|
|
||||||
- escape url parameters ub UrlBuilder in order to fix \<\<issue
|
- escape url parameters ub UrlBuilder in order to fix \<\<issue
|
||||||
847\>\>
|
847\>\>
|
||||||
@@ -258,23 +257,23 @@ SCM-Manager 1.49
|
|||||||
\<\<issue 844\>\>
|
\<\<issue 844\>\>
|
||||||
- fix guice javadoc link
|
- fix guice javadoc link
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
**library updates**
|
||||||
|
|
||||||
- update apache shiro to version 1.3.0
|
- update apache shiro to version 1.3.0
|
||||||
- updated jgit 4.4.0.201606070830-r-scm1, see \<\<issue 848\>\>
|
- 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.49 requires at least Java 7
|
||||||
|
|
||||||
SCM-Manager 1.48
|
SCM-Manager 1.48
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- added request uri to mdc logging context
|
- added request uri to mdc logging context
|
||||||
- added request method to mdc filter
|
- added request method to mdc filter
|
||||||
@@ -284,24 +283,24 @@ SCM-Manager 1.48
|
|||||||
- improve modification events to pass the item before it was modified
|
- improve modification events to pass the item before it was modified
|
||||||
to the subscriber
|
to the subscriber
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
**fixed bugs**
|
||||||
|
|
||||||
- fixed bug in equals method of Permission object
|
- fixed bug in equals method of Permission object
|
||||||
- fixed syntax highlight for bash/sh, see issue \<\<issue 843\>\>
|
- fixed syntax highlight for bash/sh, see issue \<\<issue 843\>\>
|
||||||
- added missing name of repository to access denied exceptions
|
- added missing name of repository to access denied exceptions
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
**library updates**
|
||||||
|
|
||||||
- update apache shiro to version 1.2.5
|
- update apache shiro to version 1.2.5
|
||||||
|
|
||||||
SCM-Manager 1.47
|
SCM-Manager 1.47
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- added implmentation for running git gc in an configurable interval,
|
- added implmentation for running git gc in an configurable interval,
|
||||||
see \<\<issue 801\>\>
|
see \<\<issue 801\>\>
|
||||||
@@ -313,11 +312,11 @@ SCM-Manager 1.47
|
|||||||
interface or locahost instead of just all interfaces.
|
interface or locahost instead of just all interfaces.
|
||||||
- added option for plugins to change ssl context
|
- added option for plugins to change ssl context
|
||||||
- case insensitive sorting the of name column, see
|
- 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
|
- removed broken maven repositories
|
||||||
- do not swallow the ScmSecurityException in PermissionFilter
|
- do not swallow the ScmSecurityException in PermissionFilter
|
||||||
@@ -330,9 +329,9 @@ SCM-Manager 1.47
|
|||||||
- update commons-daemon-native to version 1.0.15.1 to fix scm-server
|
- update commons-daemon-native to version 1.0.15.1 to fix scm-server
|
||||||
start on macos
|
start on macos
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
**library updates**
|
||||||
|
|
||||||
- update enunciate to version 1.31
|
- update enunciate to version 1.31
|
||||||
- update jetty to version 7.6.19.v20160209
|
- update jetty to version 7.6.19.v20160209
|
||||||
@@ -344,7 +343,7 @@ SCM-Manager 1.47
|
|||||||
SCM-Manager 1.46
|
SCM-Manager 1.46
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- link modification to files on commit panel, see \<\<issue 356\>\>
|
- link modification to files on commit panel, see \<\<issue 356\>\>
|
||||||
- added to branch switcher to repository browser, see \<\<issue
|
- added to branch switcher to repository browser, see \<\<issue
|
||||||
@@ -353,9 +352,9 @@ SCM-Manager 1.46
|
|||||||
- use cached thread pool to process mercurial process error streams
|
- use cached thread pool to process mercurial process error streams
|
||||||
- new advanced http client, see \<\<issue 709\>\>
|
- new advanced http client, see \<\<issue 709\>\>
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
**fixed bugs**
|
||||||
|
|
||||||
- fix rendering of bottom toolbar in repository browser, if path is
|
- fix rendering of bottom toolbar in repository browser, if path is
|
||||||
null
|
null
|
||||||
@@ -367,9 +366,9 @@ SCM-Manager 1.46
|
|||||||
client api
|
client api
|
||||||
- set content-length header on post requests, see \<\<issue 701\>\>
|
- set content-length header on post requests, see \<\<issue 701\>\>
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
**library updates**
|
||||||
|
|
||||||
- update enunciate to version 1.30.1
|
- update enunciate to version 1.30.1
|
||||||
- update jgit to version 3.7.1.201504261725-r-scm1
|
- update jgit to version 3.7.1.201504261725-r-scm1
|
||||||
@@ -379,7 +378,7 @@ SCM-Manager 1.46
|
|||||||
SCM-Manager 1.45
|
SCM-Manager 1.45
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- improve remove repository confirmation dialog
|
- improve remove repository confirmation dialog
|
||||||
- introducing HookBranchProvider to get informations about changed
|
- introducing HookBranchProvider to get informations about changed
|
||||||
@@ -391,9 +390,9 @@ SCM-Manager 1.45
|
|||||||
branches, see \<\<issue \#663\>\>
|
branches, see \<\<issue \#663\>\>
|
||||||
- usability of init script improved.
|
- usability of init script improved.
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
**fixed bugs**
|
||||||
|
|
||||||
- added missing shebang statement in create user script, see \<\<issue
|
- added missing shebang statement in create user script, see \<\<issue
|
||||||
665\>\>
|
665\>\>
|
||||||
@@ -402,9 +401,9 @@ SCM-Manager 1.45
|
|||||||
- fixed basic authentication with non ascii passwords, see \<\<issue
|
- fixed basic authentication with non ascii passwords, see \<\<issue
|
||||||
627\>\>
|
627\>\>
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
**library updates**
|
||||||
|
|
||||||
- update jersey to version 1.19
|
- update jersey to version 1.19
|
||||||
- update slf4j to version 1.7.10
|
- update slf4j to version 1.7.10
|
||||||
@@ -412,17 +411,17 @@ SCM-Manager 1.45
|
|||||||
SCM-Manager 1.44
|
SCM-Manager 1.44
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - library updates\*\*
|
**library updates**
|
||||||
|
|
||||||
- update jgit to version 3.5.3.201412180710-r in order to fix
|
- 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 jersey to version 1.18.3
|
||||||
- update slf4j to version 1.7.9
|
- update slf4j to version 1.7.9
|
||||||
|
|
||||||
SCM-Manager 1.43
|
SCM-Manager 1.43
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- new repository import wizard
|
- new repository import wizard
|
||||||
- added support for remote urls to push and pull apis (implemented by
|
- added support for remote urls to push and pull apis (implemented by
|
||||||
@@ -432,45 +431,45 @@ SCM-Manager 1.43
|
|||||||
- implemented AdvancedImportHandler which gives more control over the
|
- implemented AdvancedImportHandler which gives more control over the
|
||||||
import result than ImportHandler
|
import result than ImportHandler
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
**fixed bugs**
|
||||||
|
|
||||||
- create default accounts only, if no other user exists in the dao
|
- 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
|
- do not try to convert git changesets from a receive command of type
|
||||||
delete, see \<\<issue 634\>\>
|
delete, see \<\<issue 634\>\>
|
||||||
- added utf-8 response encoding for git quick commit view,
|
- 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
|
- load advanced plugin configuration from plugin directory and from
|
||||||
root of scm home
|
root of scm home
|
||||||
- fix wrong changeset count for git push and pull commands
|
- fix wrong changeset count for git push and pull commands
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
**library updates**
|
||||||
|
|
||||||
- update jersey to version 1.18.2
|
- update jersey to version 1.18.2
|
||||||
|
|
||||||
SCM-Manager 1.42
|
SCM-Manager 1.42
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- added comment about POODLE vulnerability to https configuration
|
- added comment about POODLE vulnerability to https configuration
|
||||||
- added extension point for HttpSessionListener
|
- added extension point for HttpSessionListener
|
||||||
- implement util class for AutoLoginModules to mark request as
|
- implement util class for AutoLoginModules to mark request as
|
||||||
completed or send redirects from an AutoLoginModule
|
completed or send redirects from an AutoLoginModule
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
**fixed bugs**
|
||||||
|
|
||||||
- use base uri from request for git quick repository view, see
|
- use base uri from request for git quick repository view, see
|
||||||
\<\<issue 631\>\>
|
\<\<issue 631\>\>
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
**library updates**
|
||||||
|
|
||||||
- update mustache to version 0.8.17
|
- update mustache to version 0.8.17
|
||||||
- update mockito to version 1.10.8
|
- update mockito to version 1.10.8
|
||||||
@@ -478,7 +477,7 @@ SCM-Manager 1.42
|
|||||||
SCM-Manager 1.41
|
SCM-Manager 1.41
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- improve performance for simple subversion changeset paging, see
|
- improve performance for simple subversion changeset paging, see
|
||||||
\<\<issue 610\>\>
|
\<\<issue 610\>\>
|
||||||
@@ -487,18 +486,18 @@ SCM-Manager 1.41
|
|||||||
- added mdc logging variables username, client\_ip and client\_host
|
- added mdc logging variables username, client\_ip and client\_host
|
||||||
- use default jersey client implementation instead of ahc
|
- use default jersey client implementation instead of ahc
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
**fixed bugs**
|
||||||
|
|
||||||
- subversion fails to commit filenames containing url-encoded
|
- subversion fails to commit filenames containing url-encoded
|
||||||
character \"/\", see \<\<issue 606\>\>
|
character \"/\", see \<\<issue 606\>\>
|
||||||
- fix some missing file extensions for syntax highlighter
|
- fix some missing file extensions for syntax highlighter
|
||||||
- fix scm-server stop method on windows, see \<\<issue 623\>\>
|
- fix scm-server stop method on windows, see \<\<issue 623\>\>
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
**library updates**
|
||||||
|
|
||||||
- update jetty to version 7.6.16.v20140903
|
- update jetty to version 7.6.16.v20140903
|
||||||
- update jgit to version 3.4.1.201406201815-r
|
- update jgit to version 3.4.1.201406201815-r
|
||||||
@@ -508,23 +507,22 @@ SCM-Manager 1.41
|
|||||||
SCM-Manager 1.40
|
SCM-Manager 1.40
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- - improvements\*\*
|
**improvements**
|
||||||
|
|
||||||
- added display name to web.xml
|
- added display name to web.xml
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - fixed bugs\*\*
|
|
||||||
|
**fixed bugs**
|
||||||
|
|
||||||
- remove url parameters before building base url
|
- remove url parameters before building base url
|
||||||
- fixed wrong directory permissions on rpm installations
|
- fixed wrong directory permissions on rpm installations
|
||||||
- fixed missing preinstall scripts in rpm and deb packages
|
- fixed missing preinstall scripts in rpm and deb packages
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
- - library updates\*\*
|
|
||||||
|
**library updates**
|
||||||
|
|
||||||
- update args4j to version 2.0.28
|
- update args4j to version 2.0.28
|
||||||
|
|
||||||
[Release 1.39 -
|
[Release 1.39 - 1.20](release%20notes%201.39%20-%201.20.md)
|
||||||
1.20](https://bitbucket.org/sdorra/scm-manager/wiki/release%20notes%201.39%20-%201.20 "wikilink")
|
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 217 KiB After Width: | Height: | Size: 217 KiB |
|
Before Width: | Height: | Size: 338 KiB After Width: | Height: | Size: 338 KiB |
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 54 KiB |
@@ -1,10 +1,8 @@
|
|||||||
Revision Control Plugin Comparison
|
# Revision Control Plugin Comparison
|
||||||
----------------------------------
|
|
||||||
|
|
||||||
\|=Plugin Name \|=Name \|=Core-Plugin \|=Requirements \|=Url \| \|
|
| 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-svn-plugin | Subversion | X | | <http://subversion.apache.org> |
|
||||||
scm-hg-plugin \| Mercurial \| X \| [Python (v.
|
| scm-git-plugin | Git | X | | <http://git-scm.com> |
|
||||||
2.6)](http://www.python.org/getit/releases/2.6 "wikilink"), Mercurial \|
|
| scm-hg-plugin | Mercurial | X | [Python (v.2.6)](http://www.python.org/getit/releases/2.6), Mercurial | <https://www.mercurial-scm.org/> |
|
||||||
<https://www.mercurial-scm.org/> \| \| scm-bzr-plugin \| Bazaar \| \|
|
| scm-bzr-plugin | Bazaar | | Python, Bazaar | <http://bazaar.canonical.com> |
|
||||||
Python, Bazaar \| <http://bazaar.canonical.com> \|
|
|
||||||
|
|||||||
@@ -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/).
|
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.
|
The plugin needs no further configuration.
|
||||||
|
|
||||||
## API Usage ##
|
## API Usage
|
||||||
|
|
||||||
First you have to add the dependency to your pom.xml e.g.:
|
First you have to add the dependency to your pom.xml e.g.:
|
||||||
|
|
||||||
```
|
```xml
|
||||||
#!xml
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>sonia.scm.plugins</groupId>
|
<groupId>sonia.scm.plugins</groupId>
|
||||||
<artifactId>scm-scheduler-plugin</artifactId>
|
<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:
|
For Example:
|
||||||
|
|
||||||
|
```java
|
||||||
```
|
|
||||||
#!java
|
|
||||||
|
|
||||||
public class ReportHandler {
|
public class ReportHandler {
|
||||||
|
|
||||||
private final SchedulerFactory schedulerFactory;
|
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.
|
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.
|
* 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.
|
* Each job is able to get dependencies via injection.
|
||||||
|
|
||||||
### Further reading ###
|
### Further reading
|
||||||
|
|
||||||
* [Quartz Overview](http://www.quartz-scheduler.org/overview)
|
* [Quartz Overview](http://www.quartz-scheduler.org/overview)
|
||||||
* [Quartz Cron Trigger](http://www.quartz-scheduler.org/documentation/quartz-2.1.x/tutorials/crontrigger)
|
* [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)
|
* [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.
|
In the following example a ReportJob is executed every minute since the start of scm-manager.
|
||||||
|
|
||||||
|
```java
|
||||||
```
|
|
||||||
#!java
|
|
||||||
|
|
||||||
@Extension
|
@Extension
|
||||||
public class ReportContextListener implements ServletContextListener {
|
public class ReportContextListener implements ServletContextListener {
|
||||||
|
|
||||||
|
|||||||
@@ -1,62 +1,47 @@
|
|||||||
Plugins
|
# Plugins
|
||||||
-------
|
|
||||||
|
|
||||||
### Authentication
|
### Authentication
|
||||||
|
|
||||||
\|=Plugin Name \|=Description \|=Core-Plugin \|=Repository \| \|
|
| 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
|
| 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> |
|
||||||
a 32-bit JVM. \| \|
|
| scm-auth-ldap-plugin | Plugin for using LDAP as an authentication handler. | | <https://bitbucket.org/tludewig/scm-auth-ldap-plugin> |
|
||||||
<https://bitbucket.org/davidmc24/scm-activedirectory-auth-plugin> \| \|
|
| scm-pam-plugin | This plugin enables PAM-Authentication for SCM-Manager. | | <https://bitbucket.org/sdorra/scm-pam-plugin> |
|
||||||
scm-auth-ldap-plugin \| Plugin for using LDAP as an authentication
|
| scm-crowd-plugin | Plugin for using Atlassian Crowd as an authentication handler. | | <https://github.com/soudmaijer/scm-crowd-plugin> |
|
||||||
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
|
### Continuous Integration
|
||||||
|
|
||||||
\|=Plugin Name \|=Description \|=Core-Plugin \|=Repository \| \|
|
| Plugin Name | Description | Core-Plugin | Repository |
|
||||||
scm-bamboo-plugin \| Post receive hook for Atlassian Bamboo. \| \|
|
| --- | --- | --- | --- |
|
||||||
<https://github.com/soudmaijer/scm-bamboo-plugin> \| \|
|
| 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
|
| 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> |
|
||||||
a new commit is pushed to SCM-Manager. \| \|
|
|
||||||
<https://bitbucket.org/sdorra/scm-jenkins-plugin> \|
|
|
||||||
|
|
||||||
### Development
|
### Development
|
||||||
|
|
||||||
\|=Plugin Name \|=Description \|=Core-Plugin \|=Repository \| \|
|
| Plugin Name | Description | Core-Plugin | Repository |
|
||||||
scm-graph-plugin \| Creates a Google Guice injection graph. \| \|
|
| --- | --- | --- | --- |
|
||||||
<https://bitbucket.org/sdorra/scm-graph-plugin> \|
|
| scm-graph-plugin | Creates a Google Guice injection graph. | | <https://bitbucket.org/sdorra/scm-graph-plugin> |
|
||||||
|
|
||||||
### Issue-Tracking
|
### Issue-Tracking
|
||||||
|
|
||||||
\|=Plugin Name \|=Description \|=Core-Plugin \|=Repository \| \|
|
| Plugin Name | Description | Core-Plugin | Repository |
|
||||||
scm-jira-plugin \| This plugin integrates Atlassian JIRA to SCM-Manager.
|
| --- | --- | --- | --- |
|
||||||
\| \| <https://bitbucket.org/sdorra/scm-jira-plugin> \|
|
| scm-jira-plugin | This plugin integrates Atlassian JIRA to SCM-Manager. | | <https://bitbucket.org/sdorra/scm-jira-plugin> |
|
||||||
|
|
||||||
### Miscellaneous
|
### Miscellaneous
|
||||||
|
|
||||||
\|=Plugin Name \|=Description \|=Core-Plugin \|=Repository \| \|
|
| Plugin Name | Description | Core-Plugin | Repository |
|
||||||
scm-activity-plugin \| Shows the latest activity from your repositories.
|
| --- | --- | --- | --- |
|
||||||
\|\| <https://bitbucket.org/sdorra/scm-activity-plugin> \| \|
|
| 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. \| \|
|
| scm-gravatar-plugin | Gravatar icons for the changesetviewer. | | <https://bitbucket.org/sdorra/scm-gravatar-plugin> |
|
||||||
<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-pathwp-plugin \| This plugin adds path write protection for
|
| scm-userrepo-plugin | This plugin allows regular users to create repositories. || <https://bitbucket.org/sdorra/scm-userrepo-plugin> |
|
||||||
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
|
### Version Control Systems
|
||||||
|
|
||||||
\|=Plugin Name \|=Description \|=Core-Plugin \|=Repository \| \|
|
| 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 \|
|
| scm-hg-plugin | Support for the version control system Mercurial. | X | <https://bitbucket.org/sdorra/scm-manager> |
|
||||||
Support for the version control system Git. \| X \|
|
| scm-git-plugin | Support for the version control system Git. | X | <https://bitbucket.org/sdorra/scm-manager> |
|
||||||
<https://bitbucket.org/sdorra/scm-manager> \| \| scm-svn-plugin \|
|
| scm-svn-plugin | Support for the version control system Subversion. | X | <https://bitbucket.org/sdorra/scm-manager> |
|
||||||
Support for the version control system Subversion. \| X \|
|
| scm-bzr-plugin | Support for the version control system Bazaar. | | <https://bitbucket.org/sdorra/scm-bzr-plugin> |
|
||||||
<https://bitbucket.org/sdorra/scm-manager> \| \| scm-bzr-plugin \|
|
|
||||||
Support for the version control system Bazaar. \| \|
|
|
||||||
<https://bitbucket.org/sdorra/scm-bzr-plugin> \|
|
|
||||||
|
|||||||
@@ -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
|
self-signed certificate
|
||||||
|
|
||||||
1\. Open a shell and go to the conf directory of the scm-server
|
1\. Open a shell and go to the conf directory of the scm-server
|
||||||
|
|
||||||
2\. Create a certificate request. Replace all variables (\*varname\*)
|
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?)
|
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
|
3\. Edit the server-config.xml, uncomment the SSL-Connector and set your
|
||||||
password. For example:
|
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
|
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,
|
OpenJDK (issues \#84 and \#151). If you have such a problem,
|
||||||
please try to use the Oracle JDK.
|
please try to use the Oracle JDK.
|
||||||
|
|
||||||
@@ -24,17 +78,33 @@ password. For example:
|
|||||||
|
|
||||||
1\. Export the certificate from keystore:
|
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:
|
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
|
### Configure Mercurial
|
||||||
|
|
||||||
1\. Export the certificate from keystore:
|
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
|
2\. Copy the certificate to your client and add it to your .hgrc config
|
||||||
file:
|
file:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
[web]
|
||||||
|
cacerts = /complete/path/to/cert.pem
|
||||||
|
```
|
||||||
|
|
||||||
### Sources
|
### Sources
|
||||||
|
|
||||||
- [Keytool](http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/keytool.html "wikilink")
|
- [Keytool](http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/keytool.html)
|
||||||
- [Jetty
|
- [Jetty SSL-Connectors](http://wiki.eclipse.org/Jetty/Reference/SSL_Connectors)
|
||||||
SSL-Connectors](http://wiki.eclipse.org/Jetty/Reference/SSL_Connectors "wikilink")
|
|
||||||
|
|||||||
@@ -1,43 +1,32 @@
|
|||||||
Screenshots
|
# Screenshots
|
||||||
-----------
|
|
||||||
|
|
||||||
<http://www.scm-manager.org/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
|
*Login*](screenshots/login.png "Login")
|
||||||
Password}} \|
|
|
||||||
{{/sdorra/scm-manager/wiki/screenshots/repository-config.thumb.png\|Repository
|
[\
|
||||||
Config}} \|
|
*Change Password*](screenshots/change-password.png "Change Password")
|
||||||
\|[Login](/sdorra/scm-manager/wiki/screenshots/login.png "wikilink") \|
|
|
||||||
[Change
|
[\
|
||||||
Password](/sdorra/scm-manager/wiki/screenshots/change-password.png "wikilink")
|
*Repository Configuration*](screenshots/repository-config.png "Repository Configuration")
|
||||||
\| [Repository
|
|
||||||
Configuration](/sdorra/scm-manager/wiki/screenshots/repository-config.png "wikilink")
|
[\
|
||||||
\|
|
*Repository Details*](screenshots/repository-details.png "Repository Details")
|
||||||
\|{{/sdorra/scm-manager/wiki/screenshots/repository-details.thumb.png\|Repository
|
|
||||||
details}}\|
|
[\
|
||||||
{{/sdorra/scm-manager/wiki/screenshots/repository-overview.thumb.png\|Repository
|
*Repository Overview*](screenshots/repository-overview.png "Repository Overview")
|
||||||
Overview}} \|
|
|
||||||
{{/sdorra/scm-manager/wiki/screenshots/user-overview.thumb.png\|User
|
[\
|
||||||
Overview}} \| \|[Repository
|
*User Overview*](screenshots/user-overview.png "User Overview")
|
||||||
details](/sdorra/scm-manager/wiki/screenshots/repository-details.png "wikilink")
|
|
||||||
\| [Repository
|
[\
|
||||||
Overview](/sdorra/scm-manager/wiki/screenshots/repository-overview.png "wikilink")
|
*Plugin Overview*](screenshots/plugin-overview.png "Plugin Overview")
|
||||||
\| [User
|
|
||||||
Overview](/sdorra/scm-manager/wiki/screenshots/user-overview.png "wikilink")
|
[\
|
||||||
\|
|
*Mercurial Configuration Wizard*](screenshots/mercurial-wizard.thumb.png "Mercurial Configuration Wizard")
|
||||||
\|{{/sdorra/scm-manager/wiki/screenshots/plugin-overview.thumb.png\|Plugin
|
|
||||||
Overview}}\|
|
[\
|
||||||
{{/sdorra/scm-manager/wiki/screenshots/mercurial-wizard.thumb.png\|Mercurial
|
*Changesetviewer (with Gravatar Plugin)*](screenshots/changesetviewer-gravatar-plugin.png "Changesetviewer (with Gravatar Plugin)")
|
||||||
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")
|
|
||||||
\|
|
|
||||||
|
|||||||
BIN
docs/screenshots/helicon-server-vars.png
Normal file
|
After Width: | Height: | Size: 70 KiB |
BIN
docs/screenshots/migration-wizard.png
Normal file
|
After Width: | Height: | Size: 313 KiB |
@@ -1,5 +1,117 @@
|
|||||||
Authentication
|
# Snippet: Authentication
|
||||||
--------------
|
|
||||||
|
|
||||||
[Complete
|
```java
|
||||||
source](https://bitbucket.org/sdorra/scm-code-snippets/src/tip/004-authentication "wikilink")
|
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)
|
||||||
|
|||||||
@@ -1,5 +1,46 @@
|
|||||||
Extend global configuration
|
# Snippet: Extend global configuration
|
||||||
---------------------------
|
|
||||||
|
|
||||||
[Complete
|
```javascript
|
||||||
source](https://bitbucket.org/sdorra/scm-code-snippets/src/tip/003-extend-global-config "wikilink")
|
// 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)
|
||||||
|
|||||||
@@ -1,4 +1,27 @@
|
|||||||
### Extend Navigation
|
### Snippet: Extend Navigation
|
||||||
|
|
||||||
[Complete
|
```javascript
|
||||||
source](https://bitbucket.org/sdorra/scm-code-snippets/src/tip/001-extend-navigation "wikilink")
|
// 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)
|
||||||
|
|||||||
@@ -1,5 +1,53 @@
|
|||||||
Add tab to repository configuration
|
# Snippet: Add tab to repository configuration
|
||||||
-----------------------------------
|
|
||||||
|
|
||||||
[Complete
|
```javascript
|
||||||
source](https://bitbucket.org/sdorra/scm-code-snippets/src/tip/002-repository-tab "wikilink")
|
/**
|
||||||
|
* 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)
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
Mercurial Subrepositories
|
# Mercurial Subrepositories
|
||||||
-------------------------
|
|
||||||
|
|
||||||
In the following examples i will use the
|
In the following examples i will use the [scm-cli-client](command-line-client.md)
|
||||||
[scm-cli-client](https://bitbucket.org/sdorra/scm-manager/wiki/command-line-client "wikilink")
|
|
||||||
to create the repositories, but you can also use the web interface to
|
to create the repositories, but you can also use the web interface to
|
||||||
create the repositories.
|
create the repositories.
|
||||||
|
|
||||||
@@ -11,19 +9,31 @@ Create a main repository and for each subrepository a mercurial
|
|||||||
repository in scm-manager. Than add the subrepositories with the
|
repository in scm-manager. Than add the subrepositories with the
|
||||||
complete url to the .hgsub file.
|
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
|
### Mercurial nested repositories
|
||||||
|
|
||||||
If you already have nested repositories, you have to redirect the nested
|
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
|
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
|
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).
|
from the plugin-center (requires scm-manager version 1.10 or higher).
|
||||||
Create a repository for the main repository and for each nested
|
Create a repository for the main repository and for each nested
|
||||||
repository. Configure the
|
repository. Configure the
|
||||||
[scm-hgnested-plugin](https://bitbucket.org/sdorra/scm-hgnested-plugin "wikilink")
|
[scm-hgnested-plugin](https://bitbucket.org/sdorra/scm-hgnested-plugin)
|
||||||
like
|
like [this](screenshots/scm-hgnested-plugin.png).
|
||||||
[this](https://bitbucket.org/sdorra/scm-manager/wiki/screenshots/scm-hgnested-plugin.png "wikilink").
|
|
||||||
|
|
||||||
### Further reading
|
### Further reading
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Trac Plugin #
|
# Trac Plugin
|
||||||
|
|
||||||
The plugin enables the following features to integrate SCM-Manager to [Trac](http://trac.edgewall.org/):
|
The plugin enables the following features to integrate SCM-Manager to [Trac](http://trac.edgewall.org/):
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,13 @@
|
|||||||
Upgrade to a new Version
|
# Upgrade to a new Version
|
||||||
========================
|
|
||||||
|
|
||||||
If you would like to update SCM-Manager, you have to do the following
|
If you would like to update SCM-Manager, you have to do the following
|
||||||
steps.
|
steps.
|
||||||
|
|
||||||
- Update all plugins: Goto the plugins panel and click every update
|
- Update all plugins: Goto the plugins panel and click every update link
|
||||||
link
|
|
||||||
|
|
||||||
The next steps depends on the version you use.
|
The next steps depends on the version you use.
|
||||||
|
|
||||||
Upgrade the Standalone version
|
## Upgrade the Standalone version
|
||||||
------------------------------
|
|
||||||
|
|
||||||
- Stop the old instance
|
- Stop the old instance
|
||||||
- Rename your old version
|
- Rename your old version
|
||||||
@@ -21,8 +18,7 @@ Upgrade the Standalone version
|
|||||||
- If you use a windows service you have to reinstall the service
|
- If you use a windows service you have to reinstall the service
|
||||||
(uninstallService and installService)
|
(uninstallService and installService)
|
||||||
|
|
||||||
Upgrade the WebArchive (war) version
|
## Upgrade the WebArchive (war) version
|
||||||
------------------------------------
|
|
||||||
|
|
||||||
- Download the latest version of the war bundle
|
- Download the latest version of the war bundle
|
||||||
- Deploy the new version
|
- Deploy the new version
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
# API and concepts changes from SCM-Manger v1 to v2
|
|
||||||
|
|
||||||
TODO document api and concept changes while we're migrating plugins
|
|
||||||
3
docs/v2/api-changes.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# API and concepts changes from SCM-Manger v1 to v2
|
||||||
|
|
||||||
|
*TODO:* document api and concept changes while we're migrating plugins
|
||||||
@@ -1,10 +1,11 @@
|
|||||||
# Changes to `ui-components`/`ui-types` #
|
# Changes to `ui-components`/`ui-types`
|
||||||
## Dev ##
|
|
||||||
|
## Dev
|
||||||
If you want (or need) to add components to the `ui-components`-Packages (or types to the `ui-types`-Package) and use them in `scm-ui`; you have to link the packages using yarn link (since your changes will not have been pushed to npm.js). To do so, cd to the `scm-ui` directory and type
|
If you want (or need) to add components to the `ui-components`-Packages (or types to the `ui-types`-Package) and use them in `scm-ui`; you have to link the packages using yarn link (since your changes will not have been pushed to npm.js). To do so, cd to the `scm-ui` directory and type
|
||||||
|
|
||||||
```yarn link @scm-manager/ui-components```
|
```yarn link @scm-manager/ui-components```
|
||||||
resp.
|
resp.
|
||||||
```yarn linl @scm-manager/ui-types```.
|
```yarn linl @scm-manager/ui-types```.
|
||||||
|
|
||||||
## Releasing changes to npm.js ##
|
## Releasing changes to npm.js
|
||||||
**TODO**
|
**TODO**
|
||||||
@@ -8,23 +8,19 @@ A react component is updated without any changes in the props or states.
|
|||||||
|
|
||||||
### Fix
|
### 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
|
### Example
|
||||||
|
|
||||||
|
```javascript
|
||||||
```
|
|
||||||
#!javascript
|
|
||||||
|
|
||||||
class Main extends React.Component<Props> {
|
class Main extends React.Component<Props> {
|
||||||
render() {
|
render() {
|
||||||
const { authenticated, links } = this.props;
|
const { authenticated, links } = this.props;
|
||||||
const redirectUrlFactory = binder.getExtension("main.redirect", this.props);
|
const redirectUrlFactory = binder.getExtension("main.redirect", this.props);
|
||||||
|
|
||||||
....
|
...
|
||||||
|
|
||||||
|
|
||||||
const ActivityRoute = ({ authenticated, links }: RouteProps) => {
|
const ActivityRoute = ({ authenticated, links }: RouteProps) => {
|
||||||
return (
|
return (
|
||||||
@@ -35,32 +31,27 @@ const ActivityRoute = ({ authenticated, links }: RouteProps) => {
|
|||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
binder.bind("main.route", ActivityRoute);
|
binder.bind("main.route", ActivityRoute);
|
||||||
```
|
```
|
||||||
|
|
||||||
the definition of the Component like this:
|
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:
|
triggers a re-render because:
|
||||||
|
|
||||||
```
|
```javascript
|
||||||
#!javascript
|
() => <Activity activityUrl={links.activity.href} /> !== () => <Activity activityUrl={links.activity.href} />
|
||||||
|
|
||||||
|
|
||||||
() => <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
|
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> {
|
class ActivityRoute extends React.Component<Props> {
|
||||||
constructor(props: Props) {
|
constructor(props: Props) {
|
||||||
super(props);
|
super(props);
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
[TOC]
|
# Decision Table
|
||||||
|
|
||||||
# Lombok #
|
### Lombok
|
||||||
|
|
||||||
[Project Lombok](https://projectlombok.org/) provides an easy way to generate java beans with
|
[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
|
will be present. Because this one is necessary for deserialization, this one has to be created
|
||||||
explicitly when the all-args constructor is declared)
|
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`).
|
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
|
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.
|
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.
|
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.
|
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.
|
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:
|
We have agreed to apply to the following guidelines regarding log levels:
|
||||||
|
|
||||||
@@ -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:
|
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 |
|
| Status code | Principal error cause |
|
||||||
|-|-|
|
|-------------|-----------------------|
|
||||||
| 200 | No error, everything is fine |
|
| 200 | No error, everything is fine |
|
||||||
| 201 | The item has been created without an error |
|
| 201 | The item has been created without an error |
|
||||||
| 204 | The request has been processed 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.
|
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 |
|
| key | content | availability |
|
||||||
|-|-|-|
|
|-----|---------|--------------|
|
||||||
| transactionId | A unique id to link your request to log messages | always |
|
| 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 |
|
| 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 |
|
| 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:
|
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
|
* [RESTful API Design: What About Errors? (Apigee)](https://apigee.com/about/blog/technology/restful-api-design-what-about-errors)
|
||||||
* https://nordicapis.com/best-practices-api-error-handling/
|
* [Best Practices for API Error Handling (Nordic APIS)](https://nordicapis.com/best-practices-api-error-handling/)
|
||||||
|
|||||||
@@ -74,11 +74,7 @@ The following extension points are provided for the frontend:
|
|||||||
**example:**
|
**example:**
|
||||||
|
|
||||||
|
|
||||||
```
|
```javascript
|
||||||
#!javascript
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
let MarkdownFactory = (renderContext) => {
|
let MarkdownFactory = (renderContext) => {
|
||||||
|
|
||||||
let Heading= (props) => {
|
let Heading= (props) => {
|
||||||
@@ -89,20 +85,13 @@ let MarkdownFactory = (renderContext) => {
|
|||||||
return {heading : Heading};
|
return {heading : Heading};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
binder.bind("markdown-renderer-factory", MarkdownFactory);
|
binder.bind("markdown-renderer-factory", MarkdownFactory);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```javascript
|
||||||
```
|
|
||||||
#!javascript
|
|
||||||
|
|
||||||
|
|
||||||
<MarkdownView
|
<MarkdownView
|
||||||
renderContext={{pullRequest, repository}}
|
renderContext={{pullRequest, repository}}
|
||||||
className="content"
|
className="content"
|
||||||
content={pullRequest.description}
|
content={pullRequest.description}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
```
|
```
|
||||||
47
docs/v2/getting-started.md
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
# Getting started
|
||||||
|
|
||||||
|
### Install Java
|
||||||
|
|
||||||
|
SCM-Manager needs an installed Java 1.8 or newer. It is recommended to use the [oracle jre](http://java.oracle.com/).
|
||||||
|
How to check which version of Java is installed:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
java -version
|
||||||
|
```
|
||||||
|
|
||||||
|
Download java from [here](http://java.oracle.com/) and follow the install instructions.
|
||||||
|
|
||||||
|
### Install SCM-Manager
|
||||||
|
|
||||||
|
#### Standalone Server
|
||||||
|
|
||||||
|
Download the latest version of SCM-Manager from
|
||||||
|
[Nexus](https://maven.scm-manager.org/nexus/#nexus-search;gav~sonia.scm~scm-server~2.*~~),
|
||||||
|
extract the downloaded .zip or .tar.gz archive and start SCM-Manager 2 with
|
||||||
|
|
||||||
|
```bash
|
||||||
|
scm-server/bin/scm-server
|
||||||
|
```
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
|
```bash
|
||||||
|
scm-server\bin\scm-server.bat
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Docker
|
||||||
|
|
||||||
|
To start SCM-Manager with a persistent volume on port 8080 run the following command:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run -p 8080:8080 -v scm-home:/var/lib/scm --name scm scmmanager/scm-manager:2.0.0-rc6
|
||||||
|
```
|
||||||
|
|
||||||
|
### First access
|
||||||
|
|
||||||
|
Your SCM-Manager should be running on port 8080. You can access it locally via <http://localhost:8080>.
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ------------ | ----------------------- |
|
||||||
|
| **Username** | scmadmin |
|
||||||
|
| **Password** | scmadmin |
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
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
|
|
||||||
|
|
||||||
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\*\*
|
|
||||||
for the translations.
|
|
||||||
|
|
||||||
//\*\*example:\*\*//
|
|
||||||
|
|
||||||
the translation file of the svn plugin is stored in
|
|
||||||
locales/en/plugins.json
|
|
||||||
|
|
||||||
### Usage in the own React components
|
|
||||||
|
|
||||||
SCM-Manager use react-i18next to render translations.
|
|
||||||
|
|
||||||
The following steps are needed to use react-i18next in the own
|
|
||||||
components
|
|
||||||
|
|
||||||
- import react-i18next
|
|
||||||
|
|
||||||
- declare the translation method as property
|
|
||||||
|
|
||||||
- wrap the react component with the translate method and give the json
|
|
||||||
translation file name \"plugins\"
|
|
||||||
|
|
||||||
- use the translation keys like this:
|
|
||||||
59
docs/v2/i18n-for-plugins.md
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
# 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
|
||||||
|
|
||||||
|
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**
|
||||||
|
for the translations.
|
||||||
|
|
||||||
|
***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
|
||||||
|
|
||||||
|
SCM-Manager use react-i18next to render translations.
|
||||||
|
|
||||||
|
The following steps are needed to use react-i18next in the own
|
||||||
|
components
|
||||||
|
|
||||||
|
- import react-i18next
|
||||||
|
```javascript
|
||||||
|
import { WithTranslation, withTranslation } from "react-i18next";
|
||||||
|
```
|
||||||
|
|
||||||
|
- declare the translation method `t: string => string` as property
|
||||||
|
```javascript
|
||||||
|
type Props = WithTranslation & {
|
||||||
|
***your props***
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
- wrap the react component with the translate method and give the json
|
||||||
|
translation file name \"plugins\"
|
||||||
|
```javascript
|
||||||
|
export default withTranslation("plugins")(MyPluginComponent);
|
||||||
|
```
|
||||||
|
|
||||||
|
- use the translation keys like this:
|
||||||
|
```javascript
|
||||||
|
const { t } = this.props;
|
||||||
|
<h3>{t("scm-svn-plugin.information.checkout")}</h3>
|
||||||
|
```
|
||||||
@@ -33,39 +33,43 @@
|
|||||||
|
|
||||||
* Languages & Frameworks / Javascript
|
* Languages & Frameworks / Javascript
|
||||||
* JavaScript language version: Flow
|
* 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
|
* Languages & Frameworks / Javascript / Code Quality Tools / ESLint
|
||||||
* Enable
|
* Enable
|
||||||
* ESLint package: .../scm-ui/node_modules/eslint
|
* ESLint package: .../node_modules/eslint
|
||||||
* -OR- Automatic ESLint configuration
|
* -OR- Automatic ESLint configuration
|
||||||
|
|
||||||
* Languages & Frameworks / Javascript / Prettier
|
* Languages & Frameworks / Javascript / Prettier
|
||||||
* Prettier package: .../scm-ui/node_modules/prettier
|
* Prettier package: .../node_modules/prettier
|
||||||
|
|
||||||
* Tools / File Watchers
|
* Tools / File Watchers
|
||||||
* Add Prettier
|
* Add Prettier
|
||||||
* Deselect: Track only root files
|
* Deselect: Track only root files
|
||||||
* Scope: Current File
|
* Scope: Current File
|
||||||
* Program: $ProjectFileDir$/scm-ui/node_modules/.bin/prettier
|
* Program: $ProjectFileDir$/node_modules/.bin/prettier
|
||||||
* Working Directory: $ProjectFileDir$/scm-ui
|
* Working Directory: $ProjectFileDir$
|
||||||
|
|
||||||
* Run Configurations / Edit Configuration
|
* Run Configurations / Edit Configuration
|
||||||
* Templates / Jest
|
* 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
|
* Jest options: --config node_modules/@scm-manager/ui-bundler/src/jest.ide.config.js
|
||||||
|
|
||||||
* Run Configurations / Edit Configuration
|
* Run Configurations / Edit Configuration
|
||||||
* Add npm
|
* Add npm
|
||||||
* Name: run-frontend
|
* Name: run-frontend
|
||||||
* package-json: .../scm-ui/package.json
|
* package-json: .../package.json
|
||||||
* Command: run
|
* Command: run
|
||||||
* Scripts: start
|
* Scripts: serve
|
||||||
|
|
||||||
## Both
|
## Both
|
||||||
|
|
||||||
|
### Plugins
|
||||||
|
|
||||||
* EditorConfig
|
* EditorConfig
|
||||||
|
|
||||||
|
### Settings
|
||||||
|
|
||||||
* Editor / Copyright / Copyright Profiles
|
* Editor / Copyright / Copyright Profiles
|
||||||
* Add Profile
|
* Add Profile
|
||||||
* Name: SCM-MIT
|
* Name: SCM-MIT
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
# Known Issues
|
||||||
|
|
||||||
## Asnychronous PreReceiveRepositoryHooks do not work with subversion
|
## Asnychronous PreReceiveRepositoryHooks do not work with subversion
|
||||||
|
|
||||||
The following example will fail to log the changesets.
|
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.:
|
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 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
```
|
```
|
||||||
@@ -1,20 +1,19 @@
|
|||||||
# Migrate an v1 plugin
|
# 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-development.md)
|
||||||
|
|
||||||
**NOTE**: until there is no release the current version of scm-manager has to be cloned and build on the machine
|
**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.
|
of the plugin developer.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
hg clone https://bitnucket.org/sdorra/scm-manager
|
git clone git@github.com:scm-manager/scm-manager.git
|
||||||
cd scm-manager
|
cd scm-manager
|
||||||
hg update 2.0.0-m3
|
|
||||||
./mvnw clean install
|
./mvnw clean install
|
||||||
```
|
```
|
||||||
|
|
||||||
To migrate an existing SCM-Manager 1.x Plugin, you have to do the following steps:
|
To migrate an existing SCM-Manager 1.x Plugin, you have to do the following steps:
|
||||||
|
|
||||||
### Maven (pom.xml):
|
### Maven (pom.xml)
|
||||||
|
|
||||||
* create a separate branch for the new version
|
* create a separate branch for the new version
|
||||||
* It might be helpful to start and review the old version of the plugin via `mvn scmp:run` for later reference.
|
* It might be helpful to start and review the old version of the plugin via `mvn scmp:run` for later reference.
|
||||||
@@ -25,7 +24,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 the sonia.scm.maven:scm-maven-plugin from the pom
|
||||||
* remove servlet-api from the list of dependencies (not always the case)
|
* remove servlet-api from the list of dependencies (not always the case)
|
||||||
|
|
||||||
|
|
||||||
```diff
|
```diff
|
||||||
diff -r a988f4cfb7ab pom.xml
|
diff -r a988f4cfb7ab pom.xml
|
||||||
--- a/pom.xml Thu Dec 10 20:32:26 2015 +0100
|
--- a/pom.xml Thu Dec 10 20:32:26 2015 +0100
|
||||||
@@ -81,7 +79,7 @@ diff -r a988f4cfb7ab pom.xml
|
|||||||
<repository>
|
<repository>
|
||||||
```
|
```
|
||||||
|
|
||||||
### Plugin Descriptor (src/main/resources/META-INF/scm/plugin.xml):
|
### Plugin Descriptor (src/main/resources/META-INF/scm/plugin.xml)
|
||||||
|
|
||||||
* add the following dtd to the top of the plugin.xml: `<!DOCTYPE plugin SYSTEM "https://download.scm-manager.org/dtd/plugin/2.0.0-01.dtd">`
|
* add the following dtd to the top of the plugin.xml: `<!DOCTYPE plugin SYSTEM "https://download.scm-manager.org/dtd/plugin/2.0.0-01.dtd">`
|
||||||
* add an scm-version element with the value 2 to the plugin.xml
|
* add an scm-version element with the value 2 to the plugin.xml
|
||||||
@@ -124,7 +122,7 @@ diff -r a988f4cfb7ab src/main/resources/META-INF/scm/plugin.xml
|
|||||||
### Java sources (src/main/java)
|
### Java sources (src/main/java)
|
||||||
|
|
||||||
* try to compile the sources: `mvn compile`
|
* try to compile the sources: `mvn compile`
|
||||||
* fix problems (See [[v2/API changes|API changes]])
|
* fix problems (See [API changes](api-changes.md))
|
||||||
* Remove XML accept headers from REST Resource classes -> SCMMv2 supports JSON only
|
* 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)
|
* 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 +130,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)
|
* 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):
|
* create package.json with the following content (replace name-of-plugin with the name of your plugin):
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"name": "@scm-manager/name-of-plugin",
|
"name": "@scm-manager/name-of-plugin",
|
||||||
@@ -151,6 +150,7 @@ diff -r a988f4cfb7ab src/main/resources/META-INF/scm/plugin.xml
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
* run `mvn process-resources` to install the required JavaScript libraries
|
* 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)
|
* 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)
|
* create new ui at `src/main/js` (for JavaScript code) and `src/main/webapp` (for static files) (TODO more help)
|
||||||
@@ -161,12 +161,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).
|
* 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
|
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)
|
* Don't forget [i18n for Plugins](i18n-for-plugins.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://bitbucket.org/scm-manager/scm-review-plugin/src/0ea74634830ef4865afacf714de009302e26353d/pom.xml#lines-72)
|
* 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
|
# 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-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
|
* [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
|
* [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
|
* [ui-bundler](https://bitbucket.org/scm-manager/ui-bundler/src/master/) - Bundles the UI Resources for plugins
|
||||||
@@ -18,7 +18,11 @@ To specify the new names (and namespaces), the SCM-Manager version 2 starts a mi
|
|||||||
2019-12-05 14:01:35.110 [main] [ ] INFO sonia.scm.update.MigrationWizardModule - ==========================================================
|
2019-12-05 14:01:35.110 [main] [ ] INFO sonia.scm.update.MigrationWizardModule - ==========================================================
|
||||||
```
|
```
|
||||||
|
|
||||||
You can open this wizard in an internet browser using the URL of your installation (eg. http://localhost:8080/scm/). In the figure you can see an example of the page. We tried to guess meaningful names, but for sure you want to make some changes here. Beside choosing new namespaces and names you have to select a migration strategy for each repository. The strategies are described on the page as follows:
|
You can open this wizard in an internet browser using the URL of your installation (eg. http://localhost:8080/scm/).
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
In the figure you can see an example of the page. We tried to guess meaningful names, but for sure you want to make some changes here. Beside choosing new namespaces and names you have to select a migration strategy for each repository. The strategies are described on the page as follows:
|
||||||
|
|
||||||
|Strategy|Action|
|
|Strategy|Action|
|
||||||
|---|---|
|
|---|---|
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
|
# Permission Concept
|
||||||
|
|
||||||
This documents describes a concept for a fine-grained permission managing via the SCMMv2 UI.
|
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.
|
* 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
|
* 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.
|
* 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?
|
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
|
* Users can either have the Permission READ, WRITER or OWNER
|
||||||
* globally (for all repositories) or
|
* 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-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
|
* [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.
|
SCMMv2 introduces much more fine-grained permission checks under the hood.
|
||||||
In the code permissions for all kinds of operations are designed as follows:
|
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.
|
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.
|
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.
|
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
|
from groups, some additional technical permissions such as `autocomplete`, etc.) are collected and added to the Shiro
|
||||||
subject in the `DefaultAuthorizationCollector` class.
|
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.
|
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`.
|
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
|
* Permissions: read, modify, delete, healthCheck, pull, push, permissionRead, permissionWrite
|
||||||
* Items are the technical ID of dynamically added repositories
|
* 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
|
In order to fulfill the requirements, this concept describes
|
||||||
|
|
||||||
* how to extend the existing repository permissions to be more fine-grained
|
* how to extend the existing repository permissions to be more fine-grained
|
||||||
* a new dialog to assign global permissions on user or group level
|
* 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
|
The global permission component can be reached from **either user and groups** components navigations. The following mockup
|
||||||
shows this in the user component:
|
shows this in the user component:
|
||||||
|
|
||||||
.
|

|
||||||
|
|
||||||
The layout of the permission component UI could look like this:
|
The layout of the permission component UI could look like this:
|
||||||
|
|
||||||
.
|

|
||||||
|
|
||||||
The UI
|
The UI
|
||||||
* queries all available global permissions from the REST API (shiro strings),
|
* queries all available global permissions from the REST API (shiro strings),
|
||||||
@@ -131,7 +131,7 @@ The UI
|
|||||||
* displays descriptions as tooltips,
|
* displays descriptions as tooltips,
|
||||||
* and queries all user/group permissions to populate the check boxes.
|
* 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
|
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
|
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:
|
The UI is extended like so:
|
||||||
|
|
||||||
.
|

|
||||||
|
|
||||||
### Existing repository dialog
|
#### Existing repository dialog
|
||||||
|
|
||||||
* queries all available repository permissions (shiro strings) and roles from the REST API,
|
* 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
|
* 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.
|
* 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
|
* 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)
|
* The modal dialog shows all available repository permissions (shiro strings)
|
||||||
* via the shiro string the display name and descriptions are found (see i18n),
|
* via the shiro string the display name and descriptions are found (see i18n),
|
||||||
* displays descriptions as tooltips,
|
* displays descriptions as tooltips,
|
||||||
* the individual user/group permission of the repo are used to populate the check boxes
|
* 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.
|
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**!
|
Assigning global permissions must be implemented for **either user and groups**!
|
||||||
Both use the same available permissions.
|
Both use the same available permissions.
|
||||||
|
|
||||||
The following shows user as an example.
|
The following shows user as an example.
|
||||||
|
|
||||||
### Available global permissions
|
#### Available global permissions
|
||||||
|
|
||||||
* URL: `/globalPermissions`
|
* URL: `/globalPermissions`
|
||||||
* HTTP Method: GET
|
* HTTP Method: GET
|
||||||
@@ -189,7 +189,7 @@ The following shows user as an example.
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### Assigned global permissions
|
#### Assigned global permissions
|
||||||
|
|
||||||
* URL: `/users/{id}/permissions/`
|
* URL: `/users/{id}/permissions/`
|
||||||
* HTTP Method: GET/PUT
|
* 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`)
|
* URL: `/repositoryPermissions` (similar to `/repositoryTypes`)
|
||||||
* HTTP Method: GET
|
* 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
|
Already implemented in `PermissionRootResource`. Needs to be adpated from roles (`WRITE`) to shiro permissions
|
||||||
(`repository:read:42`).
|
(`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 `:`!
|
* 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.
|
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:
|
The biggest technical challenges for this concept are the questions:
|
||||||
|
|
||||||
@@ -287,13 +287,13 @@ Where each questions needs to be answered for
|
|||||||
|
|
||||||
permissions.
|
permissions.
|
||||||
|
|
||||||
## Global permissions
|
### Global permissions
|
||||||
|
|
||||||
|
|
||||||
In order to implement this for global permissions an existing mechanism of SCM-Manager can be used:
|
In order to implement this for global permissions an existing mechanism of SCM-Manager can be used:
|
||||||
The `SecuritySystem`, implemented by the `DefaultSecuritySystem`.
|
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
|
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)).
|
[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`
|
The annotations should be extended to support a list of permissions that are not written to `permissions.xml`
|
||||||
(e.g. `user:autocomplete`)
|
(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
|
The `SecuritySystem` also provides means to assign, store and load permissions to users or groups using Shiro string
|
||||||
permissions like so:
|
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).
|
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
|
The evaluation of permissions assigned via the `SecuritySystem` is already implemented in the
|
||||||
`DefaultAuthorizationCollector`.
|
`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
|
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.
|
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 .
|
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
|
Assigning is already implemented (on role level, e.g. `WRITE`), which needs to be adapted to shiro permission level
|
||||||
(e.g. `repository:read:42`).
|
(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`.
|
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`
|
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>
|
</permissions>
|
||||||
```
|
```
|
||||||
|
|
||||||
### Assign permissions
|
#### Assign permissions
|
||||||
|
|
||||||
This is already implemented in `RepositoryManager`s. Needs to be adapted from roles (`WRITE`) to shiro permissions
|
This is already implemented in `RepositoryManager`s. Needs to be adapted from roles (`WRITE`) to shiro permissions
|
||||||
(`repository:read:42`).
|
(`repository:read:42`).
|
||||||
|
|
||||||
### Evaluating permissions
|
#### Evaluating permissions
|
||||||
|
|
||||||
Same here: Already implemented in `DefaultAuthorizationCollector`. Needs to be adapted from roles to shiro 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
|
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.
|
(or role) that add the permission `*` to a user.
|
||||||
It's already implemented and a well-known concept from SCMMv1.
|
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
|
Once permissions can be managed, an additional permission is necessary that answers the question: Who is allowed to
|
||||||
manage permissions?
|
manage permissions?
|
||||||
@@ -391,11 +391,11 @@ and write. That is,
|
|||||||
* `permission:read`
|
* `permission:read`
|
||||||
* `permission:write`
|
* `permission:write`
|
||||||
|
|
||||||
# i18n
|
## i18n
|
||||||
|
|
||||||
Internationalization can be handled using the following conventions:
|
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-for-plugins.md)
|
||||||
* That way the UI for users and groups can find all the translation in the same file
|
* 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.
|
* 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
|
One shortcoming of limiting the global permission concept to verbs (not items) is that the functionality of the
|
||||||
`scm-groupmanager-plugin` is not included.
|
`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.
|
* 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.
|
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
|
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?
|
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
|
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.
|
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
|
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.
|
`plugins.json` files.
|
||||||
|
|
||||||
## Global Permissions
|
### Global Permissions
|
||||||
|
|
||||||
| plugin | permission | description |
|
| plugin | permission | description |
|
||||||
|-|-|-|
|
|--------|------------|-------------|
|
||||||
| core | `repository:read,pull:*` | read all repositories |
|
| core | `repository:read,pull:*` | read all repositories |
|
||||||
| core | `repository:read,pull,push:*` | write all repositories |
|
| core | `repository:read,pull,push:*` | write all repositories |
|
||||||
| core | `repository:*` | own 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:*` | read authorization keys for all users |
|
||||||
| ssh | `user:readAuthorizedKeys,writeAuthorizedKeys:*` | configure authorization keys for all users |
|
| ssh | `user:readAuthorizedKeys,writeAuthorizedKeys:*` | configure authorization keys for all users |
|
||||||
|
|
||||||
## Repository Permissions
|
### Repository Permissions
|
||||||
|
|
||||||
| plugin | verb | description |
|
| plugin | verb | description |
|
||||||
|-|-|-|
|
|--------|------|-------------|
|
||||||
| core | `read` | read metadata of repository |
|
| core | `read` | read metadata of repository |
|
||||||
| core | `modify` | modify metadata of repository |
|
| core | `modify` | modify metadata of repository |
|
||||||
| core | `delete` | delete 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 |
|
| branchwp | `branchwp` | administer write protected paths for repository |
|
||||||
| webhook | `webhook` | administer web hools 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.
|
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.
|
Mind that a `OWNER` has overall permissions, including all possible permissions for all plugins.
|
||||||
|
|
||||||
| plugin | role | verbs |
|
| plugin | role | verbs |
|
||||||
|-|-|-|
|
|--------|------|-------|
|
||||||
| core | `READ` | `read`, `pull` |
|
| core | `READ` | `read`, `pull` |
|
||||||
| core | `WRITE` | `read`, `pull`, `push` |
|
| core | `WRITE` | `read`, `pull`, `push` |
|
||||||
| core | `OWNER` | `*` |
|
| core | `OWNER` | `*` |
|
||||||
@@ -4,12 +4,12 @@
|
|||||||
|
|
||||||
The plugin can be compiled and packaged with the normal maven lifecycle:
|
The plugin can be compiled and packaged with the normal maven lifecycle:
|
||||||
|
|
||||||
|
* clean - `mvn clean` - removes the target directory, can be combined with other phases
|
||||||
* compile - `mvn compile` - compiles Java code and creates the ui bundle
|
* compile - `mvn compile` - compiles Java code and creates the ui bundle
|
||||||
* test - `mvn test` - executes test for Java and JavaScript
|
* test - `mvn test` - executes test for Java and JavaScript
|
||||||
* package - `mvn package` - creates the final plugin bundle (smp package) in the target folder
|
|
||||||
* install - `mvn install` - installs the plugin (smp and jar) in the local maven repository
|
* install - `mvn install` - installs the plugin (smp and jar) in the local maven repository
|
||||||
|
* package - `mvn package` - creates the final plugin bundle (smp package) in the target folder
|
||||||
* deploy - `mvn deploy` - deploys the plugin (smp and jar) to the configured remote repository
|
* deploy - `mvn deploy` - deploys the plugin (smp and jar) to the configured remote repository
|
||||||
* clean - `mvn clean` - removes the target directory
|
|
||||||
|
|
||||||
For the development and testing the `serve` lifecycle of the plugin can be used:
|
For the development and testing the `serve` lifecycle of the plugin can be used:
|
||||||
|
|
||||||
@@ -19,32 +19,63 @@ If the plugin was started with `mvn run`, the default browser of the os should b
|
|||||||
If the browser does not start automatically, start it manually and go to [http://localhost:8081/scm](http://localhost:8081/scm).
|
If the browser does not start automatically, start it manually and go to [http://localhost:8081/scm](http://localhost:8081/scm).
|
||||||
|
|
||||||
In this mode each change to web files (src/main/js or src/main/webapp), should trigger a reload of the browser with the made changes.
|
In this mode each change to web files (src/main/js or src/main/webapp), should trigger a reload of the browser with the made changes.
|
||||||
If you compile a class (e.g.: with your íde from src/main/java to target/classes),
|
If you compile a class (e.g.: with your IDE from src/main/java to target/classes),
|
||||||
the SCM-Manager context will restart automatically. So you can see your changes without restarting the server.
|
the SCM-Manager context will restart automatically. So you can see your changes without restarting the server.
|
||||||
|
|
||||||
## Directory/File structure
|
## Directory & File structure
|
||||||
|
|
||||||
### Directories
|
A quick look at the files and directories you'll see in a SCM-Manager project.
|
||||||
|
|
||||||
* src/main/java (contains the Java code)
|
.
|
||||||
* src/main/resources (contains the the classpath resources)
|
├── node_modules/
|
||||||
* src/main/webapp (contains static files, which are accessible by the web ui)
|
├── src/
|
||||||
* src/main/js (contains the JavaScript code for the web ui, inclusive unit tests: suffixed with `.test.js`)
|
| ├── main/
|
||||||
* src/test/java (contains the Java unit tests)
|
| | ├── java/
|
||||||
* src/test/resources (containers classpath resources for unit tests)
|
| | ├── js/
|
||||||
* target (build directory)
|
| | └── resources/
|
||||||
|
| ├── test/
|
||||||
|
| | ├── java/
|
||||||
|
| | └── resources/
|
||||||
|
| └── target/
|
||||||
|
├── .editorconfig
|
||||||
|
├── .gitignore
|
||||||
|
├── CHANGELOG.md
|
||||||
|
├── LICENSE
|
||||||
|
├── package.json
|
||||||
|
├── pom.xml
|
||||||
|
├── README.md
|
||||||
|
├── tsconfig.json
|
||||||
|
└── yarn.lock
|
||||||
|
|
||||||
### Files
|
1. **`node_modules/`**: This directory contains all of the modules of code that your project depends on (npm packages) are automatically installed.
|
||||||
|
|
||||||
* pom.xml (Maven configuration)
|
2. **`src/`**: This directory will contain all of the code related to what you see or not. `src` is a convention for “source code”.
|
||||||
* package.json (ui dependency/build configuration)
|
1. **`main/`**
|
||||||
* yarn.lock (ui dependency configuration)
|
1. **`java/`**: This directory contain the Java code.
|
||||||
* .eslintrc (ui linter configuration)
|
2. **`js/`**: This directory contains the JavaScript code for the web ui, inclusive unit tests: suffixed with `.test.ts`
|
||||||
* .flowconfig (ui typecheck configuration)
|
3. **`resources/`**: This directory contains the the classpath resources.
|
||||||
* .babelrc (ui javascript language level configuration)
|
2. **`test/`**
|
||||||
* src/main/resource/locale/(de|en)/plugins.json (i18n configuration, see [i18n for plugins](https://bitbucket.org/sdorra/scm-manager/wiki/i18n%20for%20Plugins))
|
1. **`java/`**: This directory contains the Java unit tests.
|
||||||
* META-INF/scm/plugin.xml (plugin descriptor)
|
3. **`resources/`**: This directory contains classpath resources for unit tests.
|
||||||
|
3. **`target/`**: This is the build directory.
|
||||||
|
|
||||||
|
3. **`.editorconfig`**: This is a configuration file for your editor using [EditorConfig](https://editorconfig.org/). The file specifies a style that IDEs use for code.
|
||||||
|
|
||||||
|
4. **`.gitignore`**: This file tells git which files it should not track / not maintain a version history for.
|
||||||
|
|
||||||
|
5. **`CHANGELOG.md`**: All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
|
6. **`LICENSE`**: This project is licensed under the MIT license.
|
||||||
|
|
||||||
|
7. **`package.json`**: Here you can find the dependency/build configuration and dependencies for the frontend.
|
||||||
|
|
||||||
|
8. **`pom.xml`**: Maven configuration, which also includes things like metadata.
|
||||||
|
|
||||||
|
9. **`README.md`**: This file, containing useful reference information about the project.
|
||||||
|
|
||||||
|
10. **`tsconfig.json`** This is the typescript configuration file.
|
||||||
|
|
||||||
|
11. **`yarn.lock`**: This is the ui dependency configuration.
|
||||||
|
|
||||||
## UI Extensions
|
## UI Extensions
|
||||||
|
|
||||||
@@ -69,8 +100,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 `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.
|
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](https://bitbucket.org/scm-manager/ui-extensions/src/master/README.md) of [@scm-manager/ui-extensions](https://bitbucket.org/scm-manager/ui-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`.
|
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).
|
The build script triggers the `plugin` command of the [@scm-manager/ui-bundler](https://bitbucket.org/scm-manager/ui-bundler).
|
||||||
@@ -1,8 +1,10 @@
|
|||||||
|
# State of SCM-Manager 2 development
|
||||||
|
|
||||||
The development of SCM-Manager 2.0.0 is organised in [Trello Boards](https://trello.com/scmmanager).
|
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 deprecated and unused stuff
|
||||||
* remove old style listeners
|
* remove old style listeners
|
||||||
* replace [guava eventbus](https://code.google.com/p/guava-libraries/wiki/EventBusExplained) with [legman](https://github.com/sdorra/legman)
|
* replace [guava eventbus](https://code.google.com/p/guava-libraries/wiki/EventBusExplained) with [legman](https://github.com/sdorra/legman)
|
||||||
@@ -12,25 +14,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
|
* 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
|
* 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
|
* use [apache shiro](http://shiro.apache.org/) everywhere
|
||||||
* improve authentication
|
* improve authentication
|
||||||
* improve user and group management
|
* improve user and group management
|
||||||
* use permission instead of roles
|
* 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
|
* completely new designed rest api
|
||||||
|
|
||||||
## Milestone 4 ##
|
## Milestone 4
|
||||||
|
|
||||||
### Main goals ###
|
### Main goals
|
||||||
* completely new user interface
|
* completely new user interface
|
||||||
|
|
||||||
## Milestone 5 ##
|
## Milestone 5
|
||||||
|
|
||||||
### Main goals ###
|
### Main goals
|
||||||
* improve repository api
|
* improve repository api
|
||||||
@@ -8,7 +8,7 @@ Also it is a good guide line to adapt Postel's law: *Be conservative in what you
|
|||||||
|
|
||||||
## Java
|
## 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)
|
- Indentation with 2 spaces and no tabs (we have kept this rule from 1.x)
|
||||||
- Order of members:
|
- 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.
|
- Though we will not define a maximum line length, you should break lines when they go beyond 120 characters or so.
|
||||||
|
|
||||||
## JavaScript
|
## 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.
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
|
# SCM-Manager v2 Test Cases
|
||||||
|
|
||||||
Describes the expected behaviour for SCMM v2 REST Resources using manual tests.
|
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.
|
The following states general test cases per HTTP Method and en expected return code as well as exemplary curl calls.
|
||||||
Resource-specifics are stated
|
Resource-specifics are stated
|
||||||
|
|
||||||
## GET
|
## Test Cases
|
||||||
|
|
||||||
|
### GET
|
||||||
|
|
||||||
- Collection Resource (e.g. `/users`)
|
- Collection Resource (e.g. `/users`)
|
||||||
- Without parameters -> 200
|
- Without parameters -> 200
|
||||||
@@ -23,13 +23,13 @@ Resource-specifics are stated
|
|||||||
- Unknown field (e.g. `?fields=nam`) returns empty object
|
- Unknown field (e.g. `?fields=nam`) returns empty object
|
||||||
- without permission (individual and collection (TODO)) -> 401
|
- without permission (individual and collection (TODO)) -> 401
|
||||||
|
|
||||||
## POST
|
### POST
|
||||||
|
|
||||||
- not existing -> 204
|
- not existing -> 204
|
||||||
- existing -> 409
|
- existing -> 409
|
||||||
- without permission -> 401
|
- without permission -> 401
|
||||||
|
|
||||||
## PUT
|
### PUT
|
||||||
|
|
||||||
- existing -> 204
|
- existing -> 204
|
||||||
- lastModified is updated
|
- lastModified is updated
|
||||||
@@ -43,44 +43,37 @@ Resource-specifics are stated
|
|||||||
- creationDate, lastModified --> 200 is liberally ignored
|
- creationDate, lastModified --> 200 is liberally ignored
|
||||||
- Additional unmodifiable fields per resource, see examples
|
- Additional unmodifiable fields per resource, see examples
|
||||||
|
|
||||||
## DELETE
|
### DELETE
|
||||||
|
|
||||||
- existing -> 204
|
- existing -> 204
|
||||||
- not existing -> 204
|
- not existing -> 204
|
||||||
- without permission -> 401
|
- 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.
|
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`.
|
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
|
||||||
|
|
||||||
#### Collections
|
|
||||||
|
|
||||||
```
|
|
||||||
#!bash
|
|
||||||
|
|
||||||
|
```bash
|
||||||
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/users?sortBy=admin&desc=true"
|
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/users?sortBy=admin&desc=true"
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Individual
|
##### Individual
|
||||||
|
|
||||||
```
|
|
||||||
#!bash
|
|
||||||
|
|
||||||
|
```bash
|
||||||
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/users/scmadmin?fields=name,_links"
|
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/users/scmadmin?fields=name,_links"
|
||||||
```
|
```
|
||||||
|
|
||||||
### POST
|
#### POST
|
||||||
|
|
||||||
```
|
|
||||||
#!bash
|
|
||||||
|
|
||||||
|
```bash
|
||||||
curl -vu scmadmin:scmadmin --data '{
|
curl -vu scmadmin:scmadmin --data '{
|
||||||
"properties": null,
|
"properties": null,
|
||||||
"active": true,
|
"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/
|
--header "Content-Type: application/vnd.scmm-user+json;v=2" http://localhost:8081/scm/api/v2/users/
|
||||||
```
|
```
|
||||||
|
|
||||||
### PUT
|
#### PUT
|
||||||
|
|
||||||
- Change unmodifiable fields
|
- Change unmodifiable fields
|
||||||
- type? -> can be overwritten right now
|
- type? -> can be overwritten right now
|
||||||
|
|
||||||
```
|
```bash
|
||||||
#!bash
|
|
||||||
|
|
||||||
curl -X PUT -vu scmadmin:scmadmin --data '{
|
curl -X PUT -vu scmadmin:scmadmin --data '{
|
||||||
"properties": null,
|
"properties": null,
|
||||||
"active": true,
|
"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
|
--header "Content-Type: application/vnd.scmm-user+json;v=2" http://localhost:8081/scm/api/v2/users/xyz
|
||||||
```
|
```
|
||||||
|
|
||||||
### DELETE
|
#### DELETE
|
||||||
|
|
||||||
```
|
|
||||||
#!bash
|
|
||||||
|
|
||||||
|
```bash
|
||||||
curl -X DELETE -vu scmadmin:scmadmin http://localhost:8081/scm/api/v2/users/xyz
|
curl -X DELETE -vu scmadmin:scmadmin http://localhost:8081/scm/api/v2/users/xyz
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Groups
|
||||||
|
|
||||||
|
#### GET
|
||||||
|
|
||||||
## Groups
|
##### Collections
|
||||||
|
|
||||||
### GET
|
|
||||||
|
|
||||||
#### Collections
|
|
||||||
|
|
||||||
```
|
|
||||||
#!bash
|
|
||||||
|
|
||||||
|
```bash
|
||||||
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/groups/?sortBy=name&desc=true"
|
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
|
curl -vu scmadmin:scmadmin http://localhost:8081/scm/api/v2/groups/firstGroup
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### POST
|
#### POST
|
||||||
|
|
||||||
```
|
```bash
|
||||||
#!bash
|
|
||||||
curl -vu scmadmin:scmadmin --data '{
|
curl -vu scmadmin:scmadmin --data '{
|
||||||
"creationDate": "2018-06-28T07:42:45.281Z",
|
"creationDate": "2018-06-28T07:42:45.281Z",
|
||||||
"lastModified": "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/
|
--header "Content-Type: application/vnd.scmm-group+json" http://localhost:8081/scm/api/v2/groups/
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### PUT
|
#### PUT
|
||||||
|
|
||||||
```
|
|
||||||
#!bash
|
|
||||||
|
|
||||||
|
```bash
|
||||||
curl -X PUT -vu scmadmin:scmadmin --data '{
|
curl -X PUT -vu scmadmin:scmadmin --data '{
|
||||||
"creationDate": "2018-06-28T07:42:45.281Z",
|
"creationDate": "2018-06-28T07:42:45.281Z",
|
||||||
"lastModified": "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
|
--header "Content-Type: application/vnd.scmm-group+json" http://localhost:8081/scm/api/v2/groups/firstGroup
|
||||||
```
|
```
|
||||||
|
|
||||||
### DELETE
|
#### DELETE
|
||||||
|
|
||||||
```
|
|
||||||
#!bash
|
|
||||||
|
|
||||||
|
```bash
|
||||||
curl -X DELETE -vu scmadmin:scmadmin http://localhost:8081/scm/api/v2/groups/firstGroup
|
curl -X DELETE -vu scmadmin:scmadmin http://localhost:8081/scm/api/v2/groups/firstGroup
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Repositories
|
||||||
|
|
||||||
## Repositories
|
#### GET
|
||||||
|
|
||||||
### GET
|
##### Collections
|
||||||
|
|
||||||
#### Collections
|
|
||||||
|
|
||||||
```
|
|
||||||
#!bash
|
|
||||||
|
|
||||||
|
```bash
|
||||||
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/repositories/?sortBy=name&pageSize=1&desc=true"
|
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"
|
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/repositories/42/arepo"
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### POST
|
#### POST
|
||||||
|
|
||||||
```
|
|
||||||
#!bash
|
|
||||||
|
|
||||||
|
```bash
|
||||||
curl -vu scmadmin:scmadmin --data '{
|
curl -vu scmadmin:scmadmin --data '{
|
||||||
"contact": "a@con.tact",
|
"contact": "a@con.tact",
|
||||||
"creationDate": "2018-07-11T08:54:44.569Z",
|
"creationDate": "2018-07-11T08:54:44.569Z",
|
||||||
@@ -236,17 +206,14 @@ curl -vu scmadmin:scmadmin --data '{
|
|||||||
"name": "arepo",
|
"name": "arepo",
|
||||||
"type": "git"
|
"type": "git"
|
||||||
}' --header "Content-Type: application/vnd.scmm-repository+json" http://localhost:8081/scm/api/v2/repositories
|
}' --header "Content-Type: application/vnd.scmm-repository+json" http://localhost:8081/scm/api/v2/repositories
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### PUT
|
#### PUT
|
||||||
|
|
||||||
- Change unmodifiable fields
|
- Change unmodifiable fields
|
||||||
- type? -> Leads to 500 right now
|
- type? -> Leads to 500 right now
|
||||||
|
|
||||||
```
|
```bash
|
||||||
#!bash
|
|
||||||
|
|
||||||
curl -X PUT -vu scmadmin:scmadmin --data '{
|
curl -X PUT -vu scmadmin:scmadmin --data '{
|
||||||
"contact": "anoter@con.tact",
|
"contact": "anoter@con.tact",
|
||||||
"creationDate": "2017-04-11T08:54:45.569Z",
|
"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
|
}' --header "Content-Type: application/vnd.scmm-repository+json" http://localhost:8081/scm/api/v2/repositories/42/arepo
|
||||||
```
|
```
|
||||||
|
|
||||||
### DELETE
|
#### DELETE
|
||||||
|
|
||||||
```
|
|
||||||
#!bash
|
|
||||||
|
|
||||||
|
```bash
|
||||||
curl -X DELETE -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/repositories/42/anSVNRepo"
|
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.
|
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
|
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.
|
If your entities have other ids, change them according to your data.
|
||||||
|
|
||||||
### GET
|
#### GET
|
||||||
|
|
||||||
This request should return an empty list of permissions:
|
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/"
|
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/repositories/scmadmin/git/permissions/"
|
||||||
```
|
```
|
||||||
|
|
||||||
### POST / READ permission
|
#### POST / READ permission
|
||||||
|
|
||||||
```
|
|
||||||
#!bash
|
|
||||||
|
|
||||||
|
```bash
|
||||||
curl -X POST -vu scmadmin:scmadmin --data '{
|
curl -X POST -vu scmadmin:scmadmin --data '{
|
||||||
"name": "user", "type":"READ"
|
"name": "user", "type":"READ"
|
||||||
}' --header "Content-Type: application/vnd.scmm-permission+json"
|
}' --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`:
|
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/"
|
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`:
|
Trying to change the repository using `PUT` with the user `user` should result in `403`:
|
||||||
|
|
||||||
```
|
```bash
|
||||||
#!bash
|
|
||||||
|
|
||||||
curl -vu user:user -X PUT --data '{
|
curl -vu user:user -X PUT --data '{
|
||||||
"contact": "zaphod.beeblebrox@hitchhiker.com",
|
"contact": "zaphod.beeblebrox@hitchhiker.com",
|
||||||
"namespace":"scmadmin",
|
"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`:
|
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/"
|
curl -vu user:user "http://localhost:8081/scm/api/v2/repositories/scmadmin/git/permissions/"
|
||||||
```
|
```
|
||||||
|
|
||||||
The user should be able to `clone` the repository:
|
The user should be able to `clone` the repository:
|
||||||
|
|
||||||
```
|
```bash
|
||||||
#!bash
|
|
||||||
|
|
||||||
git clone http://owner@localhost:8081/scm/git/scmadmin/git
|
git clone http://owner@localhost:8081/scm/git/scmadmin/git
|
||||||
```
|
```
|
||||||
|
|
||||||
The user should *not* be able to `push` to the repository:
|
The user should *not* be able to `push` to the repository:
|
||||||
|
|
||||||
```
|
```bash
|
||||||
#!bash
|
|
||||||
|
|
||||||
cd git
|
cd git
|
||||||
touch a
|
touch a
|
||||||
git add a
|
git add a
|
||||||
@@ -352,13 +302,11 @@ git commit -m a
|
|||||||
git push
|
git push
|
||||||
```
|
```
|
||||||
|
|
||||||
### PUT / WRITE permission
|
#### PUT / WRITE permission
|
||||||
|
|
||||||
It should be possible to change the permission for a specific user:
|
It should be possible to change the permission for a specific user:
|
||||||
|
|
||||||
```
|
```bash
|
||||||
#!bash
|
|
||||||
|
|
||||||
curl -X PUT -vu scmadmin:scmadmin --data '{
|
curl -X PUT -vu scmadmin:scmadmin --data '{
|
||||||
"name": "user",
|
"name": "user",
|
||||||
"type":"WRITE"
|
"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.
|
After this the user `user` should now be able to `push` the repository created and modified beforehand.
|
||||||
|
|
||||||
```
|
```bash
|
||||||
#!bash
|
|
||||||
|
|
||||||
cd git
|
cd git
|
||||||
git push
|
git push
|
||||||
```
|
```
|
||||||
|
|
||||||
### OWNER permission
|
#### OWNER permission
|
||||||
|
|
||||||
```
|
|
||||||
#!bash
|
|
||||||
|
|
||||||
|
```bash
|
||||||
curl -X PUT -vu scmadmin:scmadmin --data '{
|
curl -X PUT -vu scmadmin:scmadmin --data '{
|
||||||
"name": "user",
|
"name": "user",
|
||||||
"type":"OWNER"
|
"type":"OWNER"
|
||||||
@@ -387,68 +331,57 @@ curl -X PUT -vu scmadmin:scmadmin --data '{
|
|||||||
|
|
||||||
After this, the user should be able to `GET` the permissions:
|
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/"
|
curl -vu user:user "http://localhost:8081/scm/api/v2/repositories/scmadmin/git/permissions/"
|
||||||
```
|
```
|
||||||
|
|
||||||
Additionally, the user should be able to change permissions:
|
Additionally, the user should be able to change permissions:
|
||||||
|
|
||||||
```
|
```bash
|
||||||
#!bash
|
|
||||||
|
|
||||||
curl -X PUT -vu scmadmin:scmadmin --data '{
|
curl -X PUT -vu scmadmin:scmadmin --data '{
|
||||||
"name": "user",
|
"name": "user",
|
||||||
"type":"OWNER"
|
"type":"OWNER"
|
||||||
}' --header "Content-Type: application/vnd.scmm-permission+json" "http://localhost:8081/scm/api/v2/repositories/scmadmin/git/permissions/user"
|
}' --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:
|
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"
|
curl -X DELETE -vu user:user "http://localhost:8081/scm/api/v2/repositories/scmadmin/git/permissions/user"
|
||||||
```
|
```
|
||||||
|
|
||||||
## Branches
|
### Branches
|
||||||
|
|
||||||
* In advance: POST repo.
|
* In advance: POST repo.
|
||||||
* Clone Repo, add Branches
|
* Clone Repo, add Branches
|
||||||
|
|
||||||
### GET
|
#### GET
|
||||||
|
|
||||||
#### Collections
|
##### Collections
|
||||||
|
|
||||||
```
|
```bash
|
||||||
#!bash
|
|
||||||
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/repositories/scmadmin/arepo/branches"
|
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"
|
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"
|
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/config"
|
||||||
```
|
```
|
||||||
|
|
||||||
### PUT
|
#### PUT
|
||||||
|
|
||||||
```
|
|
||||||
#!bash
|
|
||||||
|
|
||||||
|
```bash
|
||||||
curl -X PUT -vu scmadmin:scmadmin --data '{
|
curl -X PUT -vu scmadmin:scmadmin --data '{
|
||||||
"proxyPassword": "pw",
|
"proxyPassword": "pw",
|
||||||
"proxyPort": 8082,
|
"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
|
}' --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"
|
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/config/git"
|
||||||
```
|
```
|
||||||
|
|
||||||
### PUT
|
#### PUT
|
||||||
|
|
||||||
```
|
```bash
|
||||||
#!bash
|
|
||||||
curl -X PUT -vu scmadmin:scmadmin --data '{
|
curl -X PUT -vu scmadmin:scmadmin --data '{
|
||||||
"gcExpression": "0 0 14-6 ? * FRI-MON",
|
"gcExpression": "0 0 14-6 ? * FRI-MON",
|
||||||
"repositoryDirectory": "new",
|
"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
|
}' --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"
|
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/config/hg"
|
||||||
```
|
```
|
||||||
|
|
||||||
### PUT
|
#### PUT
|
||||||
|
|
||||||
```
|
```bash
|
||||||
#!bash
|
|
||||||
curl -X PUT -vu scmadmin:scmadmin --data '{
|
curl -X PUT -vu scmadmin:scmadmin --data '{
|
||||||
"repositoryDirectory": "new",
|
"repositoryDirectory": "new",
|
||||||
"disabled": true,
|
"disabled": true,
|
||||||
@@ -516,22 +445,19 @@ curl -X PUT -vu scmadmin:scmadmin --data '{
|
|||||||
"useOptimizedBytecode": true,
|
"useOptimizedBytecode": true,
|
||||||
"showRevisionInId": true
|
"showRevisionInId": true
|
||||||
}' --header "Content-Type: application/vnd.scmm-hgConfig+json" http://localhost:8081/scm/api/v2/config/hg
|
}' --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"
|
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 '{
|
curl -v -X PUT -u scmadmin:scmadmin --data '{
|
||||||
"repositoryDirectory": "new",
|
"repositoryDirectory": "new",
|
||||||
"disabled": true,
|
"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"
|
}' --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"
|
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"
|
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
|
#### GET
|
||||||
|
|
||||||
```
|
```bash
|
||||||
#!bash
|
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/config/svn"
|
||||||
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/config/hg/packages"
|
|
||||||
```
|
```
|
||||||
|
|
||||||
#### PUT
|
#### PUT
|
||||||
|
|
||||||
See [here](https://download.scm-manager.org/pkg/mercurial/packages.xml) for available packages. Will only work on Windows!
|
```bash
|
||||||
|
|
||||||
```
|
|
||||||
#!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
|
|
||||||
curl -X PUT -vu scmadmin:scmadmin --data '{
|
curl -X PUT -vu scmadmin:scmadmin --data '{
|
||||||
"repositoryDirectory": "new",
|
"repositoryDirectory": "new",
|
||||||
"disabled": true,
|
"disabled": true,
|
||||||
"enabledGZip": true,
|
"enabledGZip": true,
|
||||||
"compatibility": "PRE15"
|
"compatibility": "PRE15"
|
||||||
}' --header "Content-Type: application/vnd.scmm-svnConfig+json" http://localhost:8081/scm/api/v2/config/svn
|
}' --header "Content-Type: application/vnd.scmm-svnConfig+json" http://localhost:8081/scm/api/v2/config/svn
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Repository Types
|
### Repository Types
|
||||||
|
|
||||||
### GET
|
#### GET
|
||||||
|
|
||||||
#### Collections
|
##### Collections
|
||||||
|
|
||||||
```
|
|
||||||
#!bash
|
|
||||||
|
|
||||||
|
```bash
|
||||||
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/repository-types"
|
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/repository-types"
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Individual
|
##### Individual
|
||||||
|
|
||||||
```
|
|
||||||
#!bash
|
|
||||||
|
|
||||||
|
```bash
|
||||||
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/repository-types/hg"
|
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
|
Pre-conditions: the git repository "HeartOfGold-git" exists and contains tags example v1.0 and v1.1
|
||||||
|
|
||||||
#### Collections
|
##### Collections
|
||||||
|
|
||||||
```
|
|
||||||
#!bash
|
|
||||||
|
|
||||||
|
```bash
|
||||||
curl -vu scmadmin:scmadmin "http://localhost:8081/scm/api/v2/repositories/scmadmin/HeartOfGold-git/tags/"
|
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"
|
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 '{
|
curl -vu scmadmin:scmadmin --data '{
|
||||||
"contact": "a@con.tact",
|
"contact": "a@con.tact",
|
||||||
"creationDate": "2018-07-11T08:54:44.569Z",
|
"creationDate": "2018-07-11T08:54:44.569Z",
|
||||||
@@ -669,10 +578,10 @@ git add .
|
|||||||
git commit -m 'Msg'
|
git commit -m 'Msg'
|
||||||
git push
|
git push
|
||||||
```
|
```
|
||||||
#### Query and assert
|
|
||||||
|
|
||||||
```
|
##### Query and assert
|
||||||
#!bash
|
|
||||||
|
```bash
|
||||||
# Assert Content type text plain
|
# 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
|
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"
|
# 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"
|
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 '{
|
curl -vu scmadmin:scmadmin --data '{
|
||||||
"contact": "a@con.tact",
|
"contact": "a@con.tact",
|
||||||
"creationDate": "2018-07-11T08:54:44.569Z",
|
"creationDate": "2018-07-11T08:54:44.569Z",
|
||||||
@@ -713,11 +621,9 @@ hg commit -m 'msg'
|
|||||||
hg push
|
hg push
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Query and assert
|
##### Query and assert
|
||||||
|
|
||||||
```
|
|
||||||
#!bash
|
|
||||||
|
|
||||||
|
```bash
|
||||||
# Assert Content type text plain
|
# 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
|
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"
|
# 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"
|
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 '{
|
curl -vu scmadmin:scmadmin --data '{
|
||||||
"contact": "a@con.tact",
|
"contact": "a@con.tact",
|
||||||
"creationDate": "2018-07-11T08:54:44.569Z",
|
"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'
|
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)
|
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
|
# 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
|
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"
|
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 '{
|
TOKEN=$(curl -s 'http://localhost:8081/scm/api/v2/auth/access_token' -H 'content-type: application/json' --data '{
|
||||||
"cookie": false,
|
"cookie": false,
|
||||||
"grant_type": "password",
|
"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
|
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
|
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 '{
|
TOKEN=$(curl -s 'http://localhost:8081/scm/api/v2/auth/access_token' -H 'content-type: application/json' --data '{
|
||||||
"cookie": false,
|
"cookie": false,
|
||||||
"grant_type": "password",
|
"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
|
curl -s http://localhost:8081/scm/api/v2/ -H "Authorization: Bearer ${TOKEN}" | jq
|
||||||
```
|
```
|
||||||
|
|
||||||
### non-Admin
|
#### non-Admin
|
||||||
|
|
||||||
Create non-admin user
|
Create non-admin user
|
||||||
|
|
||||||
```
|
```bash
|
||||||
#!bash
|
|
||||||
|
|
||||||
curl -vu scmadmin:scmadmin --data '{
|
curl -vu scmadmin:scmadmin --data '{
|
||||||
"active": true,
|
"active": true,
|
||||||
"admin": false,
|
"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/
|
--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
|
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 '{
|
TOKEN=$(curl -s 'http://localhost:8081/scm/api/v2/auth/access_token' -H 'content-type: application/json' --data '{
|
||||||
"cookie": false,
|
"cookie": false,
|
||||||
"grant_type": "password",
|
"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
|
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!
|
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.
|
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 '{
|
TOKEN=$(curl -s 'http://localhost:8081/scm/api/v2/auth/access_token' -H 'content-type: application/json' --data '{
|
||||||
"cookie": false,
|
"cookie": false,
|
||||||
"grant_type": "password",
|
"grant_type": "password",
|
||||||
@@ -3,11 +3,11 @@
|
|||||||
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.
|
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` |
|
| ☐ | use imports with `@scm-manager`, eg. `@scm-manager/ui-components` |
|
||||||
| ☐ | let buttons have whitespace |
|
| ☐ | let buttons have whitespace |
|
||||||
| ☐ | update german translation |
|
| ☐ | update german translation |
|
||||||
| ☐ | add help icons to input components |
|
| ☐ | add help icons to input components |
|
||||||
| ☐ | not use colors directly, but refer to `is-primary` or `is-warning` |
|
| ☐ | not use colors directly, but refer to `is-primary` or `is-warning` |
|
||||||
| ☐ | make sure your view works on mobile devices |
|
| ☐ | 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) |
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
WebHook Plugin
|
# WebHook Plugin
|
||||||
--------------
|
|
||||||
|
|
||||||
### Installation
|
### Installation
|
||||||
|
|
||||||
@@ -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 of the remote webserver. It is possible to use placeholders in
|
||||||
the url:
|
the url:
|
||||||
|
|
||||||
- \${repository.id} - the id of the current repository
|
- `${repository.id}` - the id of the current repository
|
||||||
- \${repository.name} - the name of the current repository
|
- `${repository.name}` - the name of the current repository
|
||||||
- \${first.id} - the if of the first changeset in the push
|
- `${first.id}` - the if of the first changeset in the push
|
||||||
- \${last.author.name} - the name of the author of the last changeset
|
- `${last.author.name}` - the name of the author of the last changeset in the commit
|
||||||
in the commit
|
|
||||||
|
|
||||||
If you enable the \"Execute on every commit\" checkbox the last and
|
If you enable the \"Execute on every commit\" checkbox the last and
|
||||||
first patterns are not available, but you could use the commit pattern
|
first patterns are not available, but you could use the commit pattern
|
||||||
e.g:
|
e.g:
|
||||||
|
|
||||||
- \${changeset.id} - The id of the current changeset
|
- `${changeset.id}` - The id of the current changeset
|
||||||
- \${changeset.author.name} - The name of the author of the current
|
- `${changeset.author.name}` - The name of the author of the current changeset
|
||||||
changeset
|
|
||||||
|
|
||||||
If you need more informations about the available patterns have a look
|
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
|
at the javadoc. Ever method which starts with a get could be used in a
|
||||||
pattern (Repository.getName() would be \${repository.name}):
|
pattern (Repository.getName() would be \${repository.name}):
|
||||||
|
|
||||||
- [repository](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/Repository.html "wikilink")
|
- [repository](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/Repository.html)
|
||||||
- [changeset, first and
|
- [changeset, first and last](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/Changeset.html)
|
||||||
last](http://docs.scm-manager.org/apidocs/latest/sonia/scm/repository/Changeset.html "wikilink")
|
|
||||||
|
|
||||||
Since version 1.4 of the webhook-plugin there is also a global
|
Since version 1.4 of the webhook-plugin there is also a global
|
||||||
configuration at \"Config-\>General\". Global WebHooks are executed for
|
configuration at \"Config-\>General\". Global WebHooks are executed for
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
Plugins moved see https://bitbucket.org/sdorra/scm-manager/wiki/scm-plugins for details.
|
Plugins moved see https://github.com/scm-manager/scm-manager/blob/develop/docs/scm-plugins.md for details.
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ public class DBFormatHealthCheck extends DirectoryHealthCheck
|
|||||||
/** Field description */
|
/** Field description */
|
||||||
private static final HealthCheckFailure INCOMPATIBLE_DB_FORMAT =
|
private static final HealthCheckFailure INCOMPATIBLE_DB_FORMAT =
|
||||||
new HealthCheckFailure("AnOTx99ex1", "Incompatible DB Format",
|
new HealthCheckFailure("AnOTx99ex1", "Incompatible DB Format",
|
||||||
"https://bitbucket.org/sdorra/scm-manager/wiki/healthchecks/svn-incompatible-dbformat",
|
"https://github.com/scm-manager/scm-manager/blob/develop/docs/healthchecks/svn-incompatible-dbformat.md",
|
||||||
"The subversion db format is incompatible with the svn version used within scm-manager.");
|
"The subversion db format is incompatible with the svn version used within scm-manager.");
|
||||||
|
|
||||||
/** Field description */
|
/** Field description */
|
||||||
|
|||||||
@@ -68,6 +68,14 @@ const ContentRight = styled.div`
|
|||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
const RightMarginDiv = styled.div`
|
||||||
|
margin-right: 0.5rem;
|
||||||
|
`;
|
||||||
|
|
||||||
|
const InheritFlexShrinkDiv = styled.div`
|
||||||
|
flex-shrink: inherit;
|
||||||
|
`;
|
||||||
|
|
||||||
export default class CardColumn extends React.Component<Props> {
|
export default class CardColumn extends React.Component<Props> {
|
||||||
createLink = () => {
|
createLink = () => {
|
||||||
const { link, action } = this.props;
|
const { link, action } = this.props;
|
||||||
@@ -105,8 +113,10 @@ export default class CardColumn extends React.Component<Props> {
|
|||||||
<ContentRight>{contentRight}</ContentRight>
|
<ContentRight>{contentRight}</ContentRight>
|
||||||
</div>
|
</div>
|
||||||
<FooterWrapper className={classNames("level", "is-flex")}>
|
<FooterWrapper className={classNames("level", "is-flex")}>
|
||||||
<div className="level-left is-hidden-mobile">{footerLeft}</div>
|
<RightMarginDiv className="level-left is-hidden-mobile">{footerLeft}</RightMarginDiv>
|
||||||
<div className="level-right is-mobile is-marginless">{footerRight}</div>
|
<InheritFlexShrinkDiv className="level-right is-block is-mobile is-marginless shorten-text">
|
||||||
|
{footerRight}
|
||||||
|
</InheritFlexShrinkDiv>
|
||||||
</FooterWrapper>
|
</FooterWrapper>
|
||||||
</FlexFullHeight>
|
</FlexFullHeight>
|
||||||
</NoEventWrapper>
|
</NoEventWrapper>
|
||||||
|
|||||||
@@ -34455,7 +34455,7 @@ exports[`Storyshots RepositoryEntry Avatar EP 1`] = `
|
|||||||
className="CardColumn__FooterWrapper-sc-1w6lsih-3 jlTqlS level is-flex"
|
className="CardColumn__FooterWrapper-sc-1w6lsih-3 jlTqlS level is-flex"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
className="level-left is-hidden-mobile"
|
className="CardColumn__RightMarginDiv-sc-1w6lsih-6 dbLPPh level-left is-hidden-mobile"
|
||||||
>
|
>
|
||||||
<a
|
<a
|
||||||
className="RepositoryEntryLink__PointerEventsLink-sc-1hpqj0w-0 gtboNN level-item"
|
className="RepositoryEntryLink__PointerEventsLink-sc-1hpqj0w-0 gtboNN level-item"
|
||||||
@@ -34495,7 +34495,7 @@ exports[`Storyshots RepositoryEntry Avatar EP 1`] = `
|
|||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
className="level-right is-mobile is-marginless"
|
className="CardColumn__InheritFlexShrinkDiv-sc-1w6lsih-7 jkwBTE level-right is-block is-mobile is-marginless shorten-text"
|
||||||
>
|
>
|
||||||
<small
|
<small
|
||||||
className="level-item"
|
className="level-item"
|
||||||
@@ -34572,7 +34572,7 @@ exports[`Storyshots RepositoryEntry Before Title EP 1`] = `
|
|||||||
className="CardColumn__FooterWrapper-sc-1w6lsih-3 jlTqlS level is-flex"
|
className="CardColumn__FooterWrapper-sc-1w6lsih-3 jlTqlS level is-flex"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
className="level-left is-hidden-mobile"
|
className="CardColumn__RightMarginDiv-sc-1w6lsih-6 dbLPPh level-left is-hidden-mobile"
|
||||||
>
|
>
|
||||||
<a
|
<a
|
||||||
className="RepositoryEntryLink__PointerEventsLink-sc-1hpqj0w-0 gtboNN level-item"
|
className="RepositoryEntryLink__PointerEventsLink-sc-1hpqj0w-0 gtboNN level-item"
|
||||||
@@ -34612,7 +34612,7 @@ exports[`Storyshots RepositoryEntry Before Title EP 1`] = `
|
|||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
className="level-right is-mobile is-marginless"
|
className="CardColumn__InheritFlexShrinkDiv-sc-1w6lsih-7 jkwBTE level-right is-block is-mobile is-marginless shorten-text"
|
||||||
>
|
>
|
||||||
<small
|
<small
|
||||||
className="level-item"
|
className="level-item"
|
||||||
@@ -34686,7 +34686,7 @@ exports[`Storyshots RepositoryEntry Default 1`] = `
|
|||||||
className="CardColumn__FooterWrapper-sc-1w6lsih-3 jlTqlS level is-flex"
|
className="CardColumn__FooterWrapper-sc-1w6lsih-3 jlTqlS level is-flex"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
className="level-left is-hidden-mobile"
|
className="CardColumn__RightMarginDiv-sc-1w6lsih-6 dbLPPh level-left is-hidden-mobile"
|
||||||
>
|
>
|
||||||
<a
|
<a
|
||||||
className="RepositoryEntryLink__PointerEventsLink-sc-1hpqj0w-0 gtboNN level-item"
|
className="RepositoryEntryLink__PointerEventsLink-sc-1hpqj0w-0 gtboNN level-item"
|
||||||
@@ -34726,7 +34726,7 @@ exports[`Storyshots RepositoryEntry Default 1`] = `
|
|||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
className="level-right is-mobile is-marginless"
|
className="CardColumn__InheritFlexShrinkDiv-sc-1w6lsih-7 jkwBTE level-right is-block is-mobile is-marginless shorten-text"
|
||||||
>
|
>
|
||||||
<small
|
<small
|
||||||
className="level-item"
|
className="level-item"
|
||||||
@@ -34800,7 +34800,7 @@ exports[`Storyshots RepositoryEntry Quick Link EP 1`] = `
|
|||||||
className="CardColumn__FooterWrapper-sc-1w6lsih-3 jlTqlS level is-flex"
|
className="CardColumn__FooterWrapper-sc-1w6lsih-3 jlTqlS level is-flex"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
className="level-left is-hidden-mobile"
|
className="CardColumn__RightMarginDiv-sc-1w6lsih-6 dbLPPh level-left is-hidden-mobile"
|
||||||
>
|
>
|
||||||
<a
|
<a
|
||||||
className="RepositoryEntryLink__PointerEventsLink-sc-1hpqj0w-0 gtboNN level-item"
|
className="RepositoryEntryLink__PointerEventsLink-sc-1hpqj0w-0 gtboNN level-item"
|
||||||
@@ -34847,7 +34847,7 @@ exports[`Storyshots RepositoryEntry Quick Link EP 1`] = `
|
|||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
className="level-right is-mobile is-marginless"
|
className="CardColumn__InheritFlexShrinkDiv-sc-1w6lsih-7 jkwBTE level-right is-block is-mobile is-marginless shorten-text"
|
||||||
>
|
>
|
||||||
<small
|
<small
|
||||||
className="level-item"
|
className="level-item"
|
||||||
|
|||||||
@@ -87,8 +87,12 @@ class PluginEntry extends React.Component<Props, State> {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
createFooterLeft = (plugin: Plugin) => {
|
||||||
|
return <small>{plugin.version}</small>;
|
||||||
|
};
|
||||||
|
|
||||||
createFooterRight = (plugin: Plugin) => {
|
createFooterRight = (plugin: Plugin) => {
|
||||||
return <small className="level-item">{plugin.author}</small>;
|
return <small className="level-item is-block shorten-text">{plugin.author}</small>;
|
||||||
};
|
};
|
||||||
|
|
||||||
isInstallable = () => {
|
isInstallable = () => {
|
||||||
@@ -172,8 +176,8 @@ class PluginEntry extends React.Component<Props, State> {
|
|||||||
const { plugin } = this.props;
|
const { plugin } = this.props;
|
||||||
const avatar = this.createAvatar(plugin);
|
const avatar = this.createAvatar(plugin);
|
||||||
const actionbar = this.createActionbar();
|
const actionbar = this.createActionbar();
|
||||||
|
const footerLeft = this.createFooterLeft(plugin);
|
||||||
const footerRight = this.createFooterRight(plugin);
|
const footerRight = this.createFooterRight(plugin);
|
||||||
|
|
||||||
const modal = this.renderModal();
|
const modal = this.renderModal();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -184,6 +188,7 @@ class PluginEntry extends React.Component<Props, State> {
|
|||||||
title={plugin.displayName ? <strong>{plugin.displayName}</strong> : <strong>{plugin.name}</strong>}
|
title={plugin.displayName ? <strong>{plugin.displayName}</strong> : <strong>{plugin.name}</strong>}
|
||||||
description={plugin.description}
|
description={plugin.description}
|
||||||
contentRight={plugin.pending || plugin.markedForUninstall ? this.createPendingSpinner() : actionbar}
|
contentRight={plugin.pending || plugin.markedForUninstall ? this.createPendingSpinner() : actionbar}
|
||||||
|
footerLeft={footerLeft}
|
||||||
footerRight={footerRight}
|
footerRight={footerRight}
|
||||||
/>
|
/>
|
||||||
{modal}
|
{modal}
|
||||||
|
|||||||
@@ -295,9 +295,9 @@ public class DefaultCGIExecutor extends AbstractCGIExecutor
|
|||||||
env.set(ENV_AUTH_TYPE, request.getAuthType());
|
env.set(ENV_AUTH_TYPE, request.getAuthType());
|
||||||
env.set(ENV_CONTENT_LENGTH, createCGIContentLength(request, contentLengthWorkaround));
|
env.set(ENV_CONTENT_LENGTH, createCGIContentLength(request, contentLengthWorkaround));
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* Decode PATH_INFO
|
* Decode PATH_INFO
|
||||||
* https://bitbucket.org/sdorra/scm-manager/issue/79/hgweb-decoding-issue
|
* https://github.com/scm-manager/scm-manager/issues/79
|
||||||
*/
|
*/
|
||||||
if (Util.isNotEmpty(pathInfo))
|
if (Util.isNotEmpty(pathInfo))
|
||||||
{
|
{
|
||||||
|
|||||||