Key Information

Register
Submit
The challenge is finished.

Challenge Overview

Note, this challenge has a shorter timeline, we only have 72 hours for submission, 24 hours for review phase, 24 hours for appeal and 12 hours for appeal response. 

���Target environment: Rally, Bitbucket, NodeJS CLI tool
���Basic Requirements: Connect VSCode to Rally workspace, retrieve data from Rally and display on VSCode editor.
 
Now Rally is renamed to CA Agile Central, but we still use Rally as the name in this specification.

Project Background

We have already completed a project of nodejs scripts for Bitbucket-Rally integration. These scripts include a library for Bitbucket integration using both the V1 and V2 API. There is also a collection of libs for interacting with Rally and a CLI to simplify processing actions.

Our client wants to these scripts transposed (re-written) into exemplary Typescript using proper classes, interfaces and types and makes sure both V1 and V2 REST APIs for Bitbucket are supported for all necessary functions.
 

Technology Stack

-Rally API
-BitBucket API V1 & V2
-Git
-NodeJS
-Typescript
-Lerna

Individual requirements

1 Transported Javascript (ES6) to Typescript
 
In this challenge, we need to rewrite the existing nodejs CLI code into Typescript. The existing code will be provided in the forum.
 
You are required to use tslint to lint your Typescript code. The code should be lint error-free.
 
2 Split the CLI tool into 2 npm packages, and use Lerna to manage the NPM packages
 
If you looked into the existing code, you will see that the bitbucket.js has the following api for operating BitBucket:
- generateAuthenticatedRequest(opt)
- getRepoInfo()
- getPullRequests()
- getPullRequestCommits(pr_id)
- getCommitChanges(commitHash)
- getPullRequestsByCommit(commitHash)
- getPullRequestsById(id)
- mergePullRequests(pr_id)
- approvePullRequest(pr_id)
- declinePullRequest(pr_id)
 
The `rally` scripts are a folder of objects that align with the Rally WSAPI.
- pushChangeset(commitArtifacts, repo, pullRequest)
- pushBuildInfo(pullRequest, buildInfo)
 
You need to split the entire CLI into 2 npm packages:
-@grit-cli/bitbucket: exposes all APIs for operating BitBucket
-@grit-cli/rally: exposes all APIs for operating Rally
 
Then you need to write a separate CLI app to import the 2 npm packages (@grit-cli/bitbucket and @grit-cli/rally) to implement the full functionalities of the existing nodejs CLI tool.
 
You should use Lerna to manage the different npm packages. Here is a good quick Lerna tutorial to help you get started.
 
3 Unit test
 
For each npm package (@grit-cli/bitbucket and @grit-cli/rally), you should write Unit Tests in mocha and chai.
 
To reviewers
You will need to set up your own Rally workspace to review. Competitors won’t share their Rally credentials or API keys with you.
Note, this challenge has a shorter timeline, we only have 24 hours for review phase, 24 hours for appeal and 12 hours for appeal response. 

Final Submission Guidelines

Please submit the following items in a zip archive.
 
- The source code of the 2 npm packages and the separate app that uses the 2 npm packages
- A detailed README.md to discuss the project, build, package and the usage of the CLI.
- A detailed DEPLOYMENT.md to show how to deploy and run your CLI tool, like how to get a rally trial account, get the API key, setup Jenkins.
- A separate document to verify your cli tool working as expected.
- A video to verify your cli tool meets all requirements. If you are not comfortable with spoken English you may feel free to annotate your video with text.
 
Please ensure to provide the 3 documents as per the submission guideline, that’s what the client requested explicitly. Thanks.

ELIGIBLE EVENTS:

Topcoder Open 2019

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30083670