Bitbucket module
Edition |
Incubator (services) |
||
Issues |
|||
Git |
|||
Latest |
1.0
|
The Bitbucket module allows you to sync files to a Bitbucket repository.
It leverages a Magnolia REST client that can be configured using either JCR
(Magnolia 6.1) or YAML
(Magnolia 6.2). Both REST clients function equally.
The module adds an action to the resources workspace that allows you to export nodes to Bitbucket.
This module is at the INCUBATOR level. |
Installing with Maven
Maven is the easiest way to install the module. Add the following to your bundle:
<dependency>
<groupId>info.magnolia.module.bitbucket</groupId>
<artifactId>bitbucket-resources</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>info.magnolia.module.bitbucket</groupId>
<artifactId>bitbucket-restclient</artifactId>
<version>1.0</version>
</dependency>
Configuration
To use this module, you have to configure a connection to Bitbucket by providing an OAuth consumer for the repository you want to use. Please follow the instructions to add an OAuth consumer:
Be sure to check the option 'This is a private consumer'. |
To set up a REST client, please follow the steps below:
Add the REST client to the config.yaml
file.
All parameters are required. |
Parameter | Description |
---|---|
|
The client id from Bitbucket OAuth configuration. |
|
The secret from Bitbucket OAuth configuration. |
|
This can either be the workspace ID (slug) or the workspace UUID surrounded by curly-braces, for example: |
|
This can either be the repository slug or the UUID of the repository, surrounded by curly-braces, for example: |
|
Bitbucket url to obtain the access token. Default = |
The parameters apiKey
and apiSecret
is set in Magnolia’s Passwords app.
Usage
This integration provides a command that runs the rest call postToRepository
. The command can be run from anywhere in Magnolia. We can use RestTemplatingFunctions to call the service as well.
The bitbucket-resources module adds an action to the Resources Files app allowing users to export a node to Bitbucket.
Sample code
Calling the command:
Map<String, String> files = new HashMap<String, String>();
files.put("text.yaml", "here is some text");
files.put("folder1/folder2/text2.yaml", "this is a file inside a folder");
Map<String, Object> params = new HashMap<String, Object>();
params.put(BitbucketRestClientModule.REST_CALL_PARAMS, files);
commandsManager.executeCommand("default", "postToRepository", params);
Calling the Bitbucket REST client:
RestEasyClient client = (RestEasyClient) restClientRegistry.getRestClient(restClientName);
BitbucketRestClientService service = client.getClientService(BitbucketRestClientService.class);
...
Map<String,String> files = (Map<String, String>) context.get(BitbucketRestClientModule.REST_CALL_PARAMS);
Response response = service.postToRepository(bitbucketModule.getWorkspace(), bitbucketModule.getSlug(), convertFilesToFormString(files));
...