Git Product home page Git Product logo

ralio's Introduction

ralio

A usable command-line client for rally.

Build Status

Installation

$ npm install -g ralio

ralio also uses elinks to format HTML content - install it using homebrew or apt-get.

Configuration

Run the command ralio configure and follow the steps.

username and password should be self-explanatory. project and team should contain the names of the Rally projects that correspond to your project backlog and your team. Where I work, we run multiple teams from a common product backlog, hence the different options. If you don't work that way, put the same project name in both.

Unfortunately, Rally doesn't use OAuth (or any other kind of API keys), so ralio needs your password. I suggest you chmod 0600 ~/.raliorc to prevent your password going walkies. In future I'll be stashing credentials in the OS key store.

Usage

See the built-in help:

$ ralio --help

  Usage: ralio [options] [command]

  Commands:

    backlog [options] 
    Show the product backlog
    
    sprint [options] 
    Show the current team iteration
    
    show <item>
    Show related information for an individual story, defect or task
    
    edit <item> <field>
    Edit a field of an individual story, defect or task in the system EDITOR
    
    open <item>
    Open a story, defect or task in a web browser
    
    start <item>
    Set a task, defect or story state to in-progress and assign it to you
    
    finish [options] <item>
    Set a task, defect or story state to completed and assign it to you
    
    abandon <item>
    Set a task, defect or story state to defined and clear the owner
    
    block <item>
    Set a task, defect or story state to blocked
    
    unblock <item>
    Set a task, defect or story state to unblocked
    
    current 
    Show your current tasks and stories
    
    point <story> <points>
    Set the points for a story or defect
    
    task [options] <option> <target>
    Allow you to create and delete story tasks.
    Available options <option> [create|delete].
    In case of <option> create, <target> is the story name.
    In case of <option> delete, <target> is the task itself.

  Options:

    -h, --help     output usage information
    -V, --version  output the version number

  Usage Examples


  Creating and deleting story tasks:

    $ ralio task create US1234 -n "name of the task"
    $ ralio task create US1234 -n "name of the task" -t "BLUE TASK"
    $ ralio task delete TA54322

  Bug fixing:

    $ ralio finish DE1234
    $ ralio finish DE1234 --rootcause "Code Design/Error" --resolution "Code Change"

  Finishing a task:

    $ ralio finish TA1234

  Punctuating a story or defect:

    $ ralio point US1234
    $ ralio point DE1234

  Viewing your current sprint story and/or tasks:

    $ ralio sprint
    $ ralio sprint -t

  Viewing your current sprint story and/or tasks with filter by story's name:

    $ ralio sprint -t -f "some name"

  Viewing current's sprint of another project:

    $ ralio sprint -p "project_name"

  Pair programming:

    $ ralio start TA1234 --pair "Mark"
    $ ralio finish TA1234 --pair "Mark"

Maintainers

Contributors

Contributions very welcome! Please write tests for any new features - use mocha to run the test suite. See CONTRIBUTONG.md for development instructions.

License

Simplified BSD license

Copyright (c) Olly Smith All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

ralio's People

Contributors

aesterline avatar bdupras avatar ferentchak avatar oesmith avatar tinogomes avatar tommg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ralio's Issues

upgrade to 2.x API

Upgrade the Rally API calls to 2.x. This requires removing the use of adhoc.js since it's not supported in 2.x.

Assign tags to a Task.

Hi @oesmith just to let you know, currently I'm working on a feature on ralio task create that the user can assign one or more tags to a task. Here at Grupo Abril, SM's are used to assign tags like BLUE_TASK (unpredictable effort) to task at the moment of creation so here we go ... ;)

Bug when ralio start DEXXXXX

Just reporting and documenting, there is a bug when you try to "start" on a "DE" on Rally, somehow Ralio try to find a TASK (TA) and assign me to the wrong task.

ralio sprint throwing error

Hi man!
Nice work with your client!

I'm experiencing this problems after execute the following: ralio sprint

/usr/local/share/npm/lib/node_modules/ralio/lib/cli.js:177
fields.push(story.Blocked ? state.red : state.green);
^
TypeError: Cannot read property 'green' of undefined
at CLI.printStoryLine (/usr/local/share/npm/lib/node_modules/ralio/lib/cli.js:177:50)
at CLI.sprint (/usr/local/share/npm/lib/node_modules/ralio/lib/cli.js:49:14)
at Array.forEach (native)
at CLI.sprint (/usr/local/share/npm/lib/node_modules/ralio/lib/cli.js:47:13)
at Ralio.sprint (/usr/local/share/npm/lib/node_modules/ralio/lib/ralio.js:143:9)
at Request.Ralio.bulk as _callback
at Request.init.self.callback (/usr/local/share/npm/lib/node_modules/ralio/node_modules/request/main.js:120:22)
at Request.EventEmitter.emit (events.js:99:17)
at Request. (/usr/local/share/npm/lib/node_modules/ralio/node_modules/request/main.js:555:16)
at Request.EventEmitter.emit (events.js:96:17)

Multiple Workspaces

Currently "workspace" isn't an option in the .raliorc

If you have to work on multiple workspaces, there is no way to do that without logging into Rally and modifying your default workspace.

It would be great if we could specify this in the config so we can work on multiple workspaces / projects

Bash/Zsh completion

Ralio has a very simple and intuitive interface in my opinion but I think it would be very nice if we have autocompletion on the commands.

Bug when `ralio show TAXXXX`

ralio show TA17979

/Users/igorescobar/Projects/ralio/lib/ralio.js:182
story.Tasks = self.orderTasks(story.Tasks);
^
TypeError: Cannot read property 'Tasks' of undefined
at Ralio.story (/Users/igorescobar/Projects/ralio/lib/ralio.js:182:44)
at Request.Ralio.request as _callback
at Request.init.self.callback (/Users/igorescobar/Projects/ralio/node_modules/request/main.js:120:22)
at Request.EventEmitter.emit (events.js:99:17)
at Request. (/Users/igorescobar/Projects/ralio/node_modules/request/main.js:555:16)
at Request.EventEmitter.emit (events.js:96:17)
at IncomingMessage.Request.start.self.req.self.httpModule.request.buffer (/Users/igorescobar/Projects/ralio/node_modules/request/main.js:517:14)
at IncomingMessage.EventEmitter.emit (events.js:126:20)
at IncomingMessage._emitEnd (http.js:366:10)
at HTTPParser.parserOnMessageComplete as onMessageComplete

Load artifact prefixes from WSAPI

Artifact prefixes (['US', 'DE', 'TA', ...]) are configurable in Rally. Ralio should load and possibly cache these instead of using hardcoded values.

Gibberish printed when a user's password has expired

This is super low-priority but just as an FYI if you have valid credentials but your password has expired then all (?) ralio commands print gibberish. I'm thinking it must be some kind of redirect or something. Once I logged in manually and updated my password everywhere I got running just fine again.

screen shot 2015-05-26 at 9 00 41 am

Error occurs when tasks have a custom initial 'Scheduled State'

We have a custom scheduled state of T (Triage) before D (Defined).

With a bug in the Triage state, running the following causes this error:

»ralio sprint
  1 DE31 - · Some bug

TypeError: Cannot read property 'green' of undefined
    at CLI.printTaskLine (/usr/lib/node_modules/ralio/lib/cli.js:285:55)
    at /usr/lib/node_modules/ralio/lib/cli.js:70:16
    at Array.forEach (native)
    at /usr/lib/node_modules/ralio/lib/cli.js:59:13
    at /usr/lib/node_modules/ralio/lib/ralio.js:154:9
    at Request._callback (/usr/lib/node_modules/ralio/lib/ralio.js:62:7)
    at Request.self.callback (/usr/lib/node_modules/ralio/node_modules/request/main.js:120:22)
    at Request.EventEmitter.emit (events.js:98:17)
    at Request.<anonymous> (/usr/lib/node_modules/ralio/node_modules/request/main.js:555:16)
    at Request.EventEmitter.emit (events.js:95:17)

rally_status_icons

This is caused by the defect with the custom status; moving it on to Defined makes the command run successfully again.

Bug when I try to "start" a US.

When the command ralio start is executed, ralio expects a TA instead of a US. No error's outputted ralio assign me to the wrong task.

Fix editor tests to be more portable

Travis CI tests are failing on the editor tests. The tests assume /usr/bin/true and /usr/bin/false are available on the system to be exec'd, which is not portable. Replace with purpose built node.js cli stubs?

Bug when `ralio open TAXXXX`

⚡ ralio open TA17979

/Users/igorescobar/Projects/ralio/lib/ralio.js:182
story.Tasks = self.orderTasks(story.Tasks);
^
TypeError: Cannot read property 'Tasks' of undefined
at Ralio.story (/Users/igorescobar/Projects/ralio/lib/ralio.js:182:44)
at Request.Ralio.request as _callback
at Request.init.self.callback (/Users/igorescobar/Projects/ralio/node_modules/request/main.js:120:22)
at Request.EventEmitter.emit (events.js:99:17)
at Request. (/Users/igorescobar/Projects/ralio/node_modules/request/main.js:555:16)
at Request.EventEmitter.emit (events.js:96:17)
at IncomingMessage.Request.start.self.req.self.httpModule.request.buffer (/Users/igorescobar/Projects/ralio/node_modules/request/main.js:517:14)
at IncomingMessage.EventEmitter.emit (events.js:126:20)
at IncomingMessage._emitEnd (http.js:366:10)
at HTTPParser.parserOnMessageComplete as onMessageComplete

More features for scrum masters?

Hi @oesmith!

Do do you think that is a good idea start developing new features for scrum masters?

The thing is that here is very common teams submit the tasks after the planning (2) to the scrum master and then he has to create all tasks inside of histories.

What kind of features do you think we can develop focusing on scrum masters?

I'm thinking in start to develop a feature that we can add tasks inside a history, in order of priority this is the top 1 for me.

What do you think?

Error when ~/.raliorc doesn't exist

This is the stacktrace error when I try to execute a instruction to rally without the ~/.raliorc

fs.js:338
return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
^
Error: ENOENT, no such file or directory '/Users/igorescobar/.raliorc'
at Object.fs.openSync (fs.js:338:18)
at Object.fs.readFileSync (fs.js:182:15)
at CLI.configure (/usr/local/share/npm/lib/node_modules/ralio/lib/cli.js:16:31)
at new CLI (/usr/local/share/npm/lib/node_modules/ralio/lib/cli.js:10:8)
at Command. (/usr/local/share/npm/lib/node_modules/ralio/bin/ralio:27:30)
at Command.action (/usr/local/share/npm/lib/node_modules/ralio/node_modules/commander/lib/commander.js:234:8)
at Command.EventEmitter.emit (events.js:126:20)
at Command.parseArgs (/usr/local/share/npm/lib/node_modules/ralio/node_modules/commander/lib/commander.js:406:12)
at Command.parse (/usr/local/share/npm/lib/node_modules/ralio/node_modules/commander/lib/commander.js:356:15)
at Object. (/usr/local/share/npm/lib/node_modules/ralio/bin/ralio:69:9)

Secure .raliorc

The .raliorc file stores passwords in plaintext but is left open for anyone to read. It probably should be made 0600 so only the user can read the file. I'm pretty sure this is the change that needs to be made (I've never worked with node and so I'm just opening this issue instead of making a proper PR).

diff --git a/bin/ralio b/bin/ralio
index 539b83f..383a553 100755
--- a/bin/ralio
+++ b/bin/ralio
@@ -124,7 +124,7 @@ program
             var fs = require('fs'),
                 path = require('path');

-            fs.writeFile(path.join(process.env.HOME, '.raliorc'), JSON.stringify(ralio_configuration), function(err) {
+            fs.writeFile(path.join(process.env.HOME, '.raliorc'), JSON.stringify(ralio_configuration), {"mode": 0600}, function(err) {
               err ? console.log(err) : console.log("All set! :)".green);
             });

It might also be nice to print a warning to stderr if ralio reads .raliorc and determines it is not secured.

SSO Login Support

Our company uses SSO login for Rally access. Investigating what would be necessary to provide the capability to use ralio in this setting.

Any advice would be greatly appreciated.

use EDITOR for multiple fields

'ralio edit US1234' should pull up the $EDITOR with a set of common fields to edit. Currently 'ralio edit' only supports editing a single field at a time.

"Start" command changes task estimate

When using ralio start to mark a task as In-Progress, the estimate and todo fields on the task are changed to "1.0". This is probably incorrect behaviour.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.