User Tools

Site Tools


projects:bitbucket:pullrequestplugin

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
projects:bitbucket:pullrequestplugin [2016/04/18 00:06] – [Example 1] mkuciaprojects:bitbucket:pullrequestplugin [2016/04/25 22:02] – [Notes] mkucia
Line 1: Line 1:
-====== Bitbucket Server Pull Request Hook Plugin ====== +====== Bitbucket Server Repository Pull Request Hook Plugin ======
-  * [[Atlassian Marketplace]] +
-  * [[Sources]]+
  
-===== TODOs =====+{{ :projects:bitbucket:repopullrequest-pluginlogo.png?nolink|}} 
 + 
 +  * [[https://marketplace.atlassian.com/plugins/com.maciejkucia.atlasbbplugin.repopullrequest/server/overview|Atlassian Marketplace]] 
 +  * [[https://github.com/MaciejKucia/bitbucket-server-repopullrequest|Sources]] 
 + 
 +===== Planned features =====
   * Internationalization   * Internationalization
   * Support for HTTPs   * Support for HTTPs
-  * Test button in the config 
- 
 ===== Introduction ===== ===== Introduction =====
 The plugin provides the following functionality: The plugin provides the following functionality:
Line 31: Line 32:
 ''${all_keys}'' ''${all_keys}''
  
-[IMAGE]+{{:projects:bitbucket:bb_body_json.png?nolink|}}
  
 ==== Authorization ==== ==== Authorization ====
Line 37: Line 38:
 In such case the field will look like: In such case the field will look like:
  
-[IMAGE]+{{:projects:bitbucket:bb_auth_headers.png?nolink|}}
  
 Please visit [[wp>Basic_access_authentication|wikipedia]] to learn how to construct basic auth header. Please visit [[wp>Basic_access_authentication|wikipedia]] to learn how to construct basic auth header.
Line 47: Line 48:
 ===== Example 1 ===== ===== Example 1 =====
   - Create Jenkins job "Bitbucket Capture"   - Create Jenkins job "Bitbucket Capture"
-    - Add String Parameter ALL+    - Add String Parameter ''ALL''
     - Add Token ''BBBUILD'' in ''Build Triggers'' ''Trigger builds remotely (e.g., from scripts)''     - Add Token ''BBBUILD'' in ''Build Triggers'' ''Trigger builds remotely (e.g., from scripts)''
   - Check if the job is working   - Check if the job is working
Line 58: Line 59:
  
  
 +  - Add more String Parameters to the Jenkins job:
 +    - ''ACTION''
 +    - ''PR_ID''
 +    - ''REPO''
 +    - ''PROJECT''
   - Configure Bitbucket Server   - Configure Bitbucket Server
     - Ensure that the plugin is installed.     - Ensure that the plugin is installed.
     - Enter any repository Settings, then Hooks     - Enter any repository Settings, then Hooks
     - Enable ''Pull Request Hook''     - Enable ''Pull Request Hook''
-    - Enter URL ''http://localhost:8080/buildByToken/buildWithParameters?token=BBBUILD&job=Bitbucket%20Capture&ALL= ${all_keys}&EXTRA=${action}''+    - Enter URL ''http://localhost:8080/buildByToken/buildWithParameters?token=BBBUILD&job=Bitbucket%20Capture&ALL=${all_keys}&ACTION=${action}&PR_ID=${pr_id}&REPO=${repo}&PROJECT=${project}''
     - Enable all triggers     - Enable all triggers
     - Save     - Save
 +
 +{{:projects:bitbucket:bb_example1_4.png?nolink|}}
 +{{:projects:bitbucket:bb_example1_3.png?nolink|}}
 +{{:projects:bitbucket:bb_example1_5.png?nolink|}}
 +
   - Test connection   - Test connection
     - Create pull request     - Create pull request
Line 71: Line 82:
 After that you should notice that a new builds were run. Inspect those builds parameters. After that you should notice that a new builds were run. Inspect those builds parameters.
  
 +{{:projects:bitbucket:bb_example1_2.png?nolink|}}
 +
 +=== Extras ===
  
 Jenkins job ''config.xml'': Jenkins job ''config.xml'':
Line 102: Line 116:
 </project> </project>
 </code> </code>
-===== Example 2 ===== 
-We want to capture the following behaviours: 
-  * Creation of the new Pull Request 
-  * Changes to the Pull Request 
-  * New comment 
  
-Captured event will be propagated to [[https://jenkins.io/|Jenkins]] instance. 
  
-There is only single URL per repository therefore we will need a relay job to extract necessary variables and call appropriate jobs.+===== Displaying Log ===== 
 +There is a button in the configuration dialog that leads to a log. Communications are logged per-repository. 
 +{{:projects:bitbucket:bb_example_viewlogs.png?nolink|}}
  
-1Configure Jenkins +{{:projects:bitbucket:bb_example_weblog.png?nolink&800|}}
-  * Add Token ''BBBUILD'' +
-  * Add Parameters +
- +
-2. Configure Bitbucket +
-  * Set URL ''localhost''+
  
 ===== Notes ===== ===== Notes =====
-  * Connection timeout is set to 5 seconds+  * Connection time-out is set to 5 seconds 
 +===== Test scenarios ===== 
 + 
 +==== Configuration ==== 
 +  * Entering incorrect URL 
 +    * https:\\123.com 
 +    * 45434.com 
 +    * http:\\ space .com 
 +  * Entering incorrect header data 
 +    * without colon 
 +    * empty lines 
 + 
 +==== Core ==== 
 +  * Enable all notification types and check them one-by one 
 +  * Set all possible variables in body and check if it is valid for all notification types 
 +  * Use basic-auth header 
 + 
 +==== Weblog ==== 
 +  * Accessing non-existing log 
 +  * Accessing existing log by admin of other project 
 +  * Accessing log with non-configured plugin for given repository 
 +  * Accessing log when non-existing URL is set in config 
projects/bitbucket/pullrequestplugin.txt · Last modified: 2016/04/25 22:08 by mkucia