This is a POC of a hipchat extension that would react to messagess in the hipchat room (mostly agile buzzwords) and fetch burndown from an agile board in Jira in order to share with the room participants The purpose and the main use case was to help distributed scrum teams collaborate better around scrum ceremonies and improve their burndown, by removing the visibility gap that colocated teams don't suffer from.
This is just a POC, so getting this deployed in you AWS account may require some manual steps. If the extensions proves usefule I might be investing more time in it, but for now it is what it is. So before continuing, you need to update some values in the source files.
-
Call
rake -T
to see available tasks. What you will see is a message toSetup @awsAccount variable in Rakefile Setup @lambdaRoleArn variable in Rakefile
Don't forget to remove the
exit
statement that prevents further execution of the Rakefile after configuring the above. -
Once you configure the missing variables in the Rakefile
rake -T
should list all the available options.rake deploy[environment] # Deploy and cleanup rake install_phantomjs # Installs phantomjs binaries rake render_configuration # Creates default configuration for t... rake swaggerless:clean # Clean rake swaggerless:clean_aws_resources # Clean AWS resources rake swaggerless:delete[environment] # Remove stage and cleanup rake swaggerless:deploy[environment] # Deploys to an environment specified... rake swaggerless:package # Package the project for AWS Lambda
-
Let's start with deployment. On the first run
rake deploy[stagename]
the taskrender_configuration
will execute and will prompt for couple of answers:Setup value for jira_url: Host name of the Jira instance Setup value for jira_user: Username to use when accesing Jira Setup value for jira_password: Password to authorize with when accessing Jira Setup value for s3_bucket: A name of a versione S3 bucket to use Setup value for dynamo_table: A name of DynamoDB table to create Setup value for hipchat_group: Restriction of the hipchat group
For some of these steps you may have to perform some manual actions, such as creating S3 bucket (as long as you don't already have one you want to re-use)
After that last question rake deploy[stagename]
will continue to create API Gateway along with all the required bootstrapping and the stage
The code relies on the images in the S3 bucket to have their thumbnails generated, otherwise thumbnails fall back to original images. I recommend deploying and hookign up lambda such as aws-lambda-image that will take care of creating necessary thumbnails whenever an object gets added to the bucket.
At this point you should be able to install the extension by passing /install
endpoint url in hipchat room managements
After the extension is installed you need to associate the room with the jira board you want to extract the burndown from.
After that the add on in room will react to words such as: burndown, sprint, standup, stup and display the team's burndown
If this proves to be useful in practice (or usefule to anyone else who reaches out to me) I might spend time cleaning up and developping this POC. If you think this might be useful to you feel free to either create issues or contribute.