Topcoder Workflow Extension | Clone Repository enhancements

Key Information

Register
Submit
The challenge is finished.

Challenge Overview

Challenge Objectives

  • To improve the current “clone repository” feature

 

Project Background

  • Topcoder is aiming to create an extension in Visual Studio Code and package in Atom

  • The extension / package is meant to closely integrate the Topcoder platform with the text editors, to allow the user to perform actions from within the editor, without having to open a browser.

 

Technology Stack

  • Typescript

 

Code access

You can find the code here. Use the develop branch as your base branch

 

Individual requirements

Improve the current “clone repository” feature (Major Requirement)

  • Currently, after a user registers for a contest,they have the option of “Cloning a starter pack” where we have a static list of starter packs and the user can clone repositories off a list that is based on the tech stack for that contest.

  • We would like to change this behaviour and introduce multiple behaviours.

  • Behaviour #1

    • Instead of using the tech stack on the contest, assume that the challenge details contains an attribute called “gitRepoURLs” (challenge details here refers to the response received from the api when fetching and display the challenge details). Right now, we don’t have this attribute but you can assume that we will.

    • This attribute will be an array of git urls. Create a button (or rename current Clone Starter Pack button) if this array length is more than one. Name the button “Clone challenge repositories”.

    • Since there can be more than one repository, you will need to clone all repositories present, and they have to exist in the current workspace itself.

    • How will reviewers test this? For this, you will have to give instructions to the reviewer

  • Behaviour #2

    • Provide a command “Topcoder: Clone templates” which on invocation, will list out the repositories that are present in this organization. Note that at the time of writing this specification there are three, but more could be added, and they too need to show up in your list without any code changes. The user will select a value from this list to clone, which you will clone in the current workspace.

  • Behaviour #3

    • Provide a command “Topcoder: Clone a repository” which on invocation, will prompt the user to enter the git url that needs to be cloned. User will provide a git url (which you need to validate) and clone into the current workspace.

  • Assume that for all behaviours, the user has opened an empty folder

 

Remove irrelevant commands (Minor Requirement)

  • In the command palette, only 4 commands are valid commands for the Topcoder extension, namely:

    • Login

    • Logout

    • View Open Challenges

    • Upload Submission

  • There appear to be other commands that exist, that were inadvertently created (or most likely automatically generated). Kindly remove these.

 

Deployment guide and validation document

  • The “true” deployment guide is the one named Local-Development.md. We will be moving this to the Github Wiki but until then, you will need to update this file, if necessary.

  • The README file is the file that is used by users when installing the extension. Thus, you will update the file with only that information that is needed for users installing the extension

  • Additionally, the extension itself has a feature (which you can find when you install the extension, open the Topcoder Activity Bar and then select “Extension Features” from the sidebar. You will need to update this as well with the new features

 

Important Notes

  • Follow existing conventions used in the app

  • Ensure you do not have any lint errors

  • Ensure that you update the tests and they should succeed

  • Note that the existing Clone starter packs button is either renamed (and used for Behaviour #1) or removed altogether, including the code (and relevant documentation)
  • ���Added immediately after contest launch but still in scope: Ensure that you pass telemetry data about the actions on the new behaviours. Please see the relevant thread in the contest forum. Note that we have a service for this, and you only need to pass the data to the service (which takes care of passing on the telemetry)


Final Submission Guidelines

Submit a git patch of your changes inside a zip file along with the instructions to the reviewer on how to test behaviour #1 in particular (since others are straightforward)

 

ELIGIBLE EVENTS:

2020 Topcoder(R) Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30104655