caperoma 4.0.1 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Capefile +6 -6
- data/Capefile.template +4 -1
- data/Gemfile +1 -5
- data/Gemfile.lock +3 -45
- data/HELP +84 -13
- data/README.md +165 -29
- data/Rakefile +25 -22
- data/VERSION +1 -1
- data/bin/caperoma +6 -9
- data/caperoma.gemspec +15 -13
- data/config/crontab +0 -2
- data/config/schedule.rb +17 -19
- data/config/unschedule.rb +3 -0
- data/images/circle.png +0 -0
- data/images/report.png +0 -0
- data/lib/caperoma.rb +308 -98
- data/lib/caperoma/models/account.rb +1 -1
- data/lib/caperoma/models/project.rb +1 -2
- data/lib/caperoma/models/report.rb +15 -15
- data/lib/caperoma/models/task.rb +203 -46
- data/lib/caperoma/models/tasks/chore.rb +2 -0
- data/lib/caperoma/models/tasks/feature.rb +1 -0
- data/lib/caperoma/models/tasks/fix.rb +2 -0
- data/lib/caperoma/models/tasks/meeting.rb +2 -0
- data/lib/caperoma/models/tasks/modules/git.rb +94 -15
- data/lib/caperoma/models/tasks/task_with_commit.rb +8 -5
- data/lib/caperoma/models/tasks/task_with_separate_branch.rb +6 -4
- data/spec/caperoma_spec.rb +558 -2
- data/spec/factories/accounts.rb +1 -1
- data/spec/factories/projects.rb +1 -1
- data/spec/factories/report_recipients.rb +1 -1
- data/spec/factories/reports.rb +1 -1
- data/spec/factories/tasks.rb +1 -2
- data/spec/features/command_unknown_spec.rb +0 -1
- data/spec/features/feature_spec.rb +64 -44
- data/spec/features/init_spec.rb +20 -0
- data/spec/features/status_spec.rb +12 -11
- data/spec/models/project_spec.rb +0 -1
- data/spec/models/task_spec.rb +811 -27
- data/spec/models/task_with_commit_spec.rb +0 -4
- data/spec/models/task_with_separate_branch_spec.rb +4 -4
- data/spec/models/three_day_report_spec.rb +2 -3
- data/spec/spec_helper.rb +2 -0
- data/spec/support/capefile_generator.rb +35 -27
- data/spec/support/stubs.rb +7 -74
- metadata +47 -24
- data/lib/caperoma/models/branch.rb +0 -6
- data/lib/caperoma/services/airbrake_email_processor.rb +0 -47
- data/lib/caperoma/services/pivotal_fetcher.rb +0 -108
- data/spec/factories/branches.rb +0 -9
- data/spec/models/branch_spec.rb +0 -8
    
        data/README.md
    CHANGED
    
    | @@ -7,7 +7,9 @@ https://www.patreon.com/sergevinogradoff | |
| 7 7 |  | 
| 8 8 | 
             
            ## The idea.
         | 
| 9 9 | 
             
            Caperoma is a "full-cycle" command.
         | 
| 10 | 
            +
             | 
| 10 11 | 
             
            It solves everything that you need to do before you start working on the task, and everything you need to do after you finish the feature.
         | 
| 12 | 
            +
             | 
| 11 13 | 
             
            Caperoma solves for you: 
         | 
| 12 14 | 
             
            - pulling the latest code from upstream before you start working
         | 
| 13 15 | 
             
            - remembering from which branch you started the feature to later make a pull request into it
         | 
| @@ -27,31 +29,45 @@ Caperoma solves for you: | |
| 27 29 | 
             
            - tracking time
         | 
| 28 30 | 
             
            - logging time to Jira 
         | 
| 29 31 | 
             
            - switching back into the original branch
         | 
| 30 | 
            -
            and many more decisions that you often don't realize, and which you can forget hundreds of times during the time of working on the project.
         | 
| 32 | 
            +
            - and many more decisions that you often don't realize, and which you can forget hundreds of times during the time of working on the project.
         | 
| 31 33 |  | 
| 32 34 | 
             
            This saves a ton of time.
         | 
| 35 | 
            +
             | 
| 33 36 | 
             
            You don't get distracted on things that you have to do thousands of times per year.
         | 
| 37 | 
            +
             | 
| 34 38 | 
             
            You focus only on solving tasks.
         | 
| 35 39 |  | 
| 40 | 
            +
            ## Scheme
         | 
| 41 | 
            +
            <img src="images/circle.png" width="100%">
         | 
| 42 | 
            +
            Everything that is not underlined Caperoma does for you.
         | 
| 43 | 
            +
             | 
| 44 | 
            +
            The development of Caperoma is developing in the direction of closing this circle.
         | 
| 45 | 
            +
             | 
| 36 46 | 
             
            ## Demo
         | 
| 37 47 | 
             
            You need to make a feature.
         | 
| 38 48 | 
             
            ```bash
         | 
| 39 | 
            -
            caperoma feature  | 
| 49 | 
            +
            caperoma feature --title "your first feature"
         | 
| 40 50 | 
             
            touch ./your_first_feature.rb
         | 
| 41 51 | 
             
            rspec .
         | 
| 42 52 | 
             
            caperoma finish
         | 
| 43 53 | 
             
            ```
         | 
| 44 54 | 
             
            That's it.
         | 
| 55 | 
            +
             | 
| 45 56 | 
             
            Open Github and you'll see a pull request into the branch from which you started.
         | 
| 57 | 
            +
             | 
| 46 58 | 
             
            The branch and the commit have correct names.
         | 
| 59 | 
            +
             | 
| 47 60 | 
             
            PivotalTracker has a new task.
         | 
| 61 | 
            +
             | 
| 48 62 | 
             
            Jira received the time you spent.
         | 
| 49 63 |  | 
| 50 64 | 
             
            Caperoma did tens of steps for you.
         | 
| 51 65 |  | 
| 52 66 | 
             
            You would spend about 10 minutes manually pressing the buttons in Github, Jira and Pivotal and entering these commands into the console.
         | 
| 53 67 | 
             
            10 minutes for each task, in a project with 1000 tasks, you save up to 20% of the project budget that you did not spend on a routine.
         | 
| 68 | 
            +
             | 
| 54 69 | 
             
            Thanks to Caperoma, you can spend this 20% on new features or fixing bugs.
         | 
| 70 | 
            +
             | 
| 55 71 | 
             
            Not to mention the invaluable savings of brain resources that allow you to easily work on larger projects.
         | 
| 56 72 |  | 
| 57 73 | 
             
            At the same time, tracking systems receive the most accurate information about the work done for further statistics.
         | 
| @@ -59,14 +75,18 @@ At the same time, tracking systems receive the most accurate information about t | |
| 59 75 | 
             
            ## Demo 2
         | 
| 60 76 | 
             
            You urgently need to fix the bug.
         | 
| 61 77 | 
             
            ```bash
         | 
| 62 | 
            -
            caperoma bug  | 
| 78 | 
            +
            caperoma bug --title "your urgent bugfix"
         | 
| 63 79 | 
             
            touch ./your_urgent_bugfix.rb
         | 
| 64 80 | 
             
            caperoma finish
         | 
| 65 81 | 
             
            ```
         | 
| 66 82 | 
             
            Every second of delay brings company losses which are often much higher than the price of the bug fix.
         | 
| 83 | 
            +
             | 
| 67 84 | 
             
            Caperoma did all the management for you.
         | 
| 85 | 
            +
             | 
| 68 86 | 
             
            You did not have to do manually dozens of these steps in a hurry (pull requests, time tracking, etc.).
         | 
| 87 | 
            +
             | 
| 69 88 | 
             
            You also did not have to sacrifice conventions for the sake of speed (which often turns into a bad habit, driving a project to a standstill).
         | 
| 89 | 
            +
             | 
| 70 90 | 
             
            You implemented the solution, but on the way to it, you were secured by the Caperoma's algorithms.
         | 
| 71 91 |  | 
| 72 92 | 
             
            ## Task types supported by Caperoma
         | 
| @@ -79,10 +99,11 @@ You implemented the solution, but on the way to it, you were secured by the Cape | |
| 79 99 |  | 
| 80 100 | 
             
            Jira IDs for each of them, as well as other settings, can be set in `Capefile`.
         | 
| 81 101 |  | 
| 82 | 
            -
            ##  | 
| 83 | 
            -
             | 
| 84 | 
            -
             | 
| 85 | 
            -
             | 
| 102 | 
            +
            ## System Requirements
         | 
| 103 | 
            +
            - Ruby 2.4 or higher
         | 
| 104 | 
            +
            - SQLite
         | 
| 105 | 
            +
            - Git
         | 
| 106 | 
            +
            - Crontab
         | 
| 86 107 |  | 
| 87 108 | 
             
            ## Installation
         | 
| 88 109 | 
             
            ```bash
         | 
| @@ -106,14 +127,48 @@ caperoma accounts add --git login password | |
| 106 127 |  | 
| 107 128 | 
             
            ## Setting up your project:
         | 
| 108 129 | 
             
            ```bash
         | 
| 109 | 
            -
             | 
| 110 | 
            -
             | 
| 111 | 
            -
             | 
| 130 | 
            +
            # Open your project
         | 
| 131 | 
            +
            cd ~/myproject 
         | 
| 132 | 
            +
             | 
| 133 | 
            +
            # Create Capefile
         | 
| 134 | 
            +
            caperoma init 
         | 
| 135 | 
            +
             | 
| 136 | 
            +
            # Add your Jira link to Capefile: 
         | 
| 137 | 
            +
            echo "jira_url: https://yourproject.atlassian.net/" >> Capefile  
         | 
| 138 | 
            +
             | 
| 139 | 
            +
            # Get project IDs from Jira
         | 
| 140 | 
            +
            caperoma get_jira_project_ids
         | 
| 141 | 
            +
            # The response will be something like this:
         | 
| 142 | 
            +
            # 1) Awesome Project (jira_project_id: 1234)
         | 
| 143 | 
            +
            # ...
         | 
| 144 | 
            +
             | 
| 145 | 
            +
            # Paste the received project ID into Capefile
         | 
| 146 | 
            +
            echo "jira_project_id: 1234" >> Capefile
         | 
| 147 | 
            +
             | 
| 148 | 
            +
            # Get issue type IDs from Jira:  
         | 
| 149 | 
            +
            caperoma get_jira_issue_type_ids
         | 
| 150 | 
            +
            # The response will be something like this:
         | 
| 151 | 
            +
            # ID: 12, Name: Bug
         | 
| 152 | 
            +
            # ID: 15, Name: Feature
         | 
| 153 | 
            +
            # ...
         | 
| 154 | 
            +
             | 
| 155 | 
            +
            # Get transition type IDs from Jira:
         | 
| 156 | 
            +
            caperoma get_jira_transition_ids
         | 
| 157 | 
            +
            # This command requires you to have at least one issue in the project, as it will be used to receive transition ids.
         | 
| 158 | 
            +
            # The response will be something like this:
         | 
| 159 | 
            +
            # ID: 30, Name: To do
         | 
| 160 | 
            +
            # ID: 102, Name: In Progress
         | 
| 161 | 
            +
            # ID: 201, Name: Done
         | 
| 162 | 
            +
             | 
| 163 | 
            +
            # Enter the received IDs into corresponding fields in Capefile:
         | 
| 164 | 
            +
            vim Capefile 
         | 
| 165 | 
            +
             | 
| 166 | 
            +
            # Also, enter the rest of the settings into Capefile (git repository, Pivotal project ID, etc.).
         | 
| 112 167 | 
             
            ```
         | 
| 113 168 |  | 
| 114 169 | 
             
            ## Demo 3: A simple feature.
         | 
| 115 170 | 
             
            ```bash
         | 
| 116 | 
            -
            caperoma feature  | 
| 171 | 
            +
            caperoma feature --title "your first feature"
         | 
| 117 172 | 
             
            # Created a task in Jira with the title "your first feature".
         | 
| 118 173 | 
             
            # Took the ID of the created Jira feature (i.e. PRJ -123).
         | 
| 119 174 | 
             
            # Generated the name of the git branch considering Jira ID and task name (i.e. prj-123-your-first-feature).
         | 
| @@ -138,13 +193,13 @@ caperoma finish | |
| 138 193 | 
             
            # Switched back to the branch from which the work was started (for example, git checkout master).
         | 
| 139 194 | 
             
            ```
         | 
| 140 195 |  | 
| 141 | 
            -
            ## Demo 4: A feature with Pivotal ID and your description:
         | 
| 196 | 
            +
            ## Demo 4: A feature with Pivotal ID and your work description:
         | 
| 142 197 | 
             
            ```bash
         | 
| 143 | 
            -
            caperoma feature -- | 
| 198 | 
            +
            caperoma feature --title "your second feature" --pivotal_task_id 12345678
         | 
| 144 199 | 
             
            # Same as before, but also:
         | 
| 145 200 | 
             
            # A Pivotal task was launched with ID #12345678.
         | 
| 146 201 |  | 
| 147 | 
            -
            touch ./ | 
| 202 | 
            +
            touch ./your_second_feature.rb
         | 
| 148 203 |  | 
| 149 204 | 
             
            caperoma finish "I made a new file"
         | 
| 150 205 | 
             
            # Same as before, but also:
         | 
| @@ -156,12 +211,15 @@ caperoma finish "I made a new file" | |
| 156 211 |  | 
| 157 212 | 
             
            ## Demo 5: A feature with adding time (in minutes):
         | 
| 158 213 | 
             
            ```bash
         | 
| 214 | 
            +
            caperoma feature --title "your third feature" --pivotal_task_id 12345678 --additional_time 23
         | 
| 215 | 
            +
            # Or a shorter version: 
         | 
| 159 216 | 
             
            caperoma feature -t "your third feature" -p 12345678 -a 23
         | 
| 160 | 
            -
            # same as  | 
| 217 | 
            +
            # same as Demo 4, but notice -a 23 parameter.
         | 
| 161 218 | 
             
            # -a 23 says to add 23 minutes on top of time recorded by the timer.
         | 
| 162 219 | 
             
            # The alternative version of this parameter is: --additional_time 23
         | 
| 163 220 |  | 
| 164 | 
            -
            touch ./ | 
| 221 | 
            +
            touch ./your_third_feature.rb
         | 
| 222 | 
            +
             | 
| 165 223 | 
             
            caperoma finish
         | 
| 166 224 | 
             
            # Time sent to Jira will be 23 minutes more than the timer recorded.
         | 
| 167 225 | 
             
            # I.e. if you spent 10 minutes on this task, Jira will receive 33 minutes (10+23, "timer time" + "additional time").
         | 
| @@ -187,6 +245,7 @@ The recipients will get: | |
| 187 245 | 
             
            - a weekly report on Fri
         | 
| 188 246 |  | 
| 189 247 | 
             
            (8 reports per week in total)
         | 
| 248 | 
            +
             | 
| 190 249 | 
             
            (they are sent at 5 pm, so at that time the computer should be on, as the reports are using crontab).
         | 
| 191 250 |  | 
| 192 251 | 
             
            The format of the emails is a table that lists all the tasks during the mentioned period:
         | 
| @@ -194,9 +253,13 @@ The format of the emails is a table that lists all the tasks during the mentione | |
| 194 253 | 
             
            - Pivotal ID (with a link).
         | 
| 195 254 | 
             
            - Task title.
         | 
| 196 255 | 
             
            - The amount of time spent on the task.
         | 
| 256 | 
            +
             | 
| 197 257 | 
             
            Plus the total amount of time spent on them.
         | 
| 198 258 |  | 
| 259 | 
            +
            <img src="images/report.png" width="100%">
         | 
| 260 | 
            +
             | 
| 199 261 | 
             
            Each report includes only the tasks that were not yet included in the previous reports of this type.
         | 
| 262 | 
            +
             | 
| 200 263 | 
             
            I.e. if you finished the feature "X" and sent a "daily report" that includes it, then your next "daily report" will not include it (even if you send the second one immediately after the first one), however it will still be included in your next "3 day report" and into your next "weekly report".
         | 
| 201 264 |  | 
| 202 265 | 
             
            You no longer need to spend 3 to 5 unpaid hours on Friday night, making a report in which you are trying to remember which features you created 4 days ago (by the end of the week there are already so many that you probably lost count of half of them).
         | 
| @@ -215,9 +278,15 @@ caperoma report weekly # sends weekly report now | |
| 215 278 | 
             
            ### Initialize
         | 
| 216 279 | 
             
            `caperoma init` - initializes Caperoma inside a project (creates Capefile).
         | 
| 217 280 |  | 
| 281 | 
            +
            ### Get Project IDs from Jira 
         | 
| 282 | 
            +
            `caperoma get_jira_project_ids` - see what project IDs does your Jira support, to put them into the Capefile.
         | 
| 283 | 
            +
             | 
| 218 284 | 
             
            ### Get Issue IDs from Jira 
         | 
| 219 285 | 
             
            `caperoma get_jira_issue_type_ids` - see what issue IDs does your Jira support, to put them into the Capefile.
         | 
| 220 286 |  | 
| 287 | 
            +
            ### Get Transition IDs from Jira 
         | 
| 288 | 
            +
            `caperoma get_jira_transition_ids` - see what transition IDs does your Jira support, to put them into the Capefile.
         | 
| 289 | 
            +
             | 
| 221 290 | 
             
            ### Status
         | 
| 222 291 | 
             
            `caperoma status` - shows a task you are working on now.
         | 
| 223 292 | 
             
            Example:
         | 
| @@ -229,7 +298,9 @@ Type: Feature | |
| 229 298 | 
             
            Jira ID: PRJ-24 (https://example.atlassian.net/browse/PRJ-24)
         | 
| 230 299 | 
             
            Pivotal ID: 167396414 (https://www.pivotaltracker.com/story/show/167396414)
         | 
| 231 300 | 
             
            Time spent at the moment: 2h 50m
         | 
| 301 | 
            +
            Branch with the task: jr-124-some-task
         | 
| 232 302 | 
             
            Pull request will be sent to this branch: master
         | 
| 303 | 
            +
            Project location: /path/to/the/project
         | 
| 233 304 |  | 
| 234 305 | 
             
            $ caperoma finish
         | 
| 235 306 | 
             
            ...
         | 
| @@ -237,6 +308,7 @@ $ caperoma status | |
| 237 308 | 
             
            You are not working on anything now.
         | 
| 238 309 | 
             
            ```
         | 
| 239 310 |  | 
| 311 | 
            +
            ### Projects List
         | 
| 240 312 | 
             
            `caperoma projects` - shows the list of projects on this computer.
         | 
| 241 313 | 
             
            Example:
         | 
| 242 314 | 
             
            ```bash
         | 
| @@ -259,16 +331,24 @@ $ caperoma projects | |
| 259 331 | 
             
            - *If the -p parameter is specified, Caperoma starts Pivotal task with this ID.*
         | 
| 260 332 | 
             
            - *If the -p parameter is not specified, Caperoma will create a new task in Pivotal, start it and use its ID.*
         | 
| 261 333 | 
             
            - *The creation of certain types of tasks in Pivotal (when -p is absent) can be turned on or off in Capefile.*
         | 
| 262 | 
            -
            - *If you are already working on something, you won't be able to start a new task.  | 
| 334 | 
            +
            - *If you are already working on something, you won't be able to start a new task. First, you will have to finish or pause the current task.*
         | 
| 263 335 |  | 
| 264 336 | 
             
            `options`:
         | 
| 265 | 
            -
            `-t, --title` - The name of the feature (for a commit, pull request, tasks in Jira and Pivotal). ` -t` and `--title` are different versions of the same option.
         | 
| 266 | 
            -
            `-d, --description` - The description (for a task in Jira and Pivotal).
         | 
| 267 | 
            -
            `-p, -ptid, --pivotal_task_id` - ID of task in Pivotal (automatically gets started/finished during the work on it in Caperoma).
         | 
| 268 | 
            -
            `-a, --additional_time` - Additional time (in minutes). Intended for cases when you want to indicate that you started working on it X minutes ago (X minutes before starting Caperoma timer). For example, for 1 hour you tried to reproduce the problem before you realized that you need to start a new task. Or if you forgot to start Caperoma. Additional time is always in minutes. Adding 125 minutes (-a 125) will mean that you spent 2h 5m on the task before turning on Caperoma timer.
         | 
| 269 337 |  | 
| 270 | 
            -
             | 
| 271 | 
            -
             | 
| 338 | 
            +
            `-t`, `--title` - The name of the feature (for a commit, pull request, tasks in Jira and Pivotal). ` -t` and `--title` are different versions of the same option.
         | 
| 339 | 
            +
             | 
| 340 | 
            +
             | 
| 341 | 
            +
            `-d`, `--description` - The description (for a task in Jira and Pivotal).
         | 
| 342 | 
            +
             | 
| 343 | 
            +
             | 
| 344 | 
            +
            `-p`, `-ptid`, `--pivotal_task_id` - ID of task in Pivotal (automatically gets started/finished during the work on it in Caperoma).
         | 
| 345 | 
            +
             | 
| 346 | 
            +
             | 
| 347 | 
            +
            `-a`, `--additional_time` - Additional time (in minutes). Intended for cases when you want to indicate that you started working on it X minutes ago (X minutes before starting Caperoma timer). For example, for 1 hour you tried to reproduce the problem before you realized that you need to start a new task. Or if you forgot to start Caperoma. Additional time is always in minutes. Adding 125 minutes (-a 125) will mean that you spent 2h 5m on the task before turning on Caperoma timer.
         | 
| 348 | 
            +
             | 
| 349 | 
            +
            *The order of options is not important.*
         | 
| 350 | 
            +
             | 
| 351 | 
            +
            *Immediately after the operator must be a value.*
         | 
| 272 352 |  | 
| 273 353 | 
             
            Examples:
         | 
| 274 354 | 
             
            ```bash
         | 
| @@ -283,12 +363,18 @@ caperoma feature -t "title" -d "description" -p 4830184 -a 48 | |
| 283 363 |  | 
| 284 364 | 
             
            caperoma feature --title "title" --description "description" --pivotal_task_id 1000001 --additional_time 5
         | 
| 285 365 | 
             
            # (create the feature "title" with the description of "description" and Pivotal ID #1000001, on which you started working 5 minutes ago)
         | 
| 366 | 
            +
             | 
| 367 | 
            +
            caperoma feature -p 12345678
         | 
| 368 | 
            +
            # (it will take title and description from Pivotal task with id 12345678)
         | 
| 286 369 | 
             
            ```
         | 
| 287 370 |  | 
| 288 371 | 
             
            #### Start a Bug 
         | 
| 289 372 | 
             
            `caperoma bug [options]` - Creates a bug in the new branch.
         | 
| 373 | 
            +
             | 
| 290 374 | 
             
            Does almost the same thing as `caperoma feature`, just starts everywhere the tasks of a type "bug".
         | 
| 375 | 
            +
             | 
| 291 376 | 
             
            `options`: same as for `caperoma feature`
         | 
| 377 | 
            +
             | 
| 292 378 | 
             
            Example:
         | 
| 293 379 | 
             
            ```bash
         | 
| 294 380 | 
             
            caperoma bug -t "something isn't working" -a 20
         | 
| @@ -297,13 +383,18 @@ caperoma bug -t "something isn't working" -a 20 | |
| 297 383 |  | 
| 298 384 | 
             
            #### Start a Fix  
         | 
| 299 385 | 
             
            `caperoma fix [options]` - Creates a fix in the CURRENT branch, doing at the end just "git push" into the branch, not a pull request.
         | 
| 386 | 
            +
             | 
| 300 387 | 
             
            Everything else is almost the same as `caperoma feature`.
         | 
| 388 | 
            +
             | 
| 301 389 | 
             
            This command is created for the cases when you already have a remote branch, or if you already made a pull request, and you need to go back to it and add something.
         | 
| 390 | 
            +
             | 
| 302 391 | 
             
            This command considers the specifics of work with open pull requests and remote branches:
         | 
| 303 392 | 
             
            - Downloads the latest version of the current branch before starting the work and again before pushing the changes.
         | 
| 304 393 | 
             
            - Changes are made in a new commit instead of a potentially conflicting amend.
         | 
| 305 394 | 
             
            - Leaves the title and description of pull requests.
         | 
| 395 | 
            +
             | 
| 306 396 | 
             
            `options`: same as for `caperoma feature`
         | 
| 397 | 
            +
             | 
| 307 398 | 
             
            Example:
         | 
| 308 399 | 
             
            ```bash
         | 
| 309 400 | 
             
            caperoma fix --title "Spelling fix" -d "Fix the spelling mistake"
         | 
| @@ -312,15 +403,23 @@ caperoma fix --title "Spelling fix" -d "Fix the spelling mistake" | |
| 312 403 |  | 
| 313 404 | 
             
            #### Start a Meeting 
         | 
| 314 405 | 
             
            `caperoma meeting [options]` - Creates a meeting.
         | 
| 406 | 
            +
             | 
| 315 407 | 
             
            For cases when you need to record to Jira the facts of talking on the phone with your coworkers.
         | 
| 408 | 
            +
             | 
| 316 409 | 
             
            Jira ID for the meeting (as for other types of tasks) can be set in Capefile (by default it has the same value as a chore).
         | 
| 410 | 
            +
             | 
| 317 411 | 
             
            In Pivotal creating meetings is off by default. It can be turned on in Capefile. If it is on, Caperoma will create "chores".
         | 
| 412 | 
            +
             | 
| 318 413 | 
             
            `options`: same as for `caperoma feature`
         | 
| 319 414 |  | 
| 320 415 | 
             
            This feature is sometimes used to automate logging phone calls to Jira.
         | 
| 416 | 
            +
             | 
| 321 417 | 
             
            For example, in Skype, you could configure it to call the command `caperoma meeting -t "meeting"` when you pick up the phone and call `caperoma finish` when you hang up.
         | 
| 418 | 
            +
             | 
| 322 419 | 
             
            As a result, Skype conversations will automatically be entered into Jira with accuracy up to a minute.
         | 
| 420 | 
            +
             | 
| 323 421 | 
             
            5-10 people can participate in a conference call, so if each of them sets up Caperoma, you can save a couple of man-hours for each call.
         | 
| 422 | 
            +
             | 
| 324 423 | 
             
            Example:
         | 
| 325 424 | 
             
            ```bash
         | 
| 326 425 | 
             
            caperoma meeting -t "title"
         | 
| @@ -328,9 +427,13 @@ caperoma meeting -t "title" | |
| 328 427 |  | 
| 329 428 | 
             
            #### Start a Chore
         | 
| 330 429 | 
             
            `caperoma chore [options]` - Creates a chore. Without branch and commit.
         | 
| 430 | 
            +
             | 
| 331 431 | 
             
            For cases when the goal of the task is not committing code.
         | 
| 432 | 
            +
             | 
| 332 433 | 
             
            For example, you need to configure something on a remote server.
         | 
| 434 | 
            +
             | 
| 333 435 | 
             
            `options`: same as for `caperoma feature`
         | 
| 436 | 
            +
             | 
| 334 437 | 
             
            Example:
         | 
| 335 438 | 
             
            ```bash
         | 
| 336 439 | 
             
            caperoma chore -t "going downtown to pick up a new computer" -a 10
         | 
| @@ -341,6 +444,7 @@ caperoma chore -t "going downtown to pick up a new computer" -a 10 | |
| 341 444 |  | 
| 342 445 | 
             
            #### Finish current task
         | 
| 343 446 | 
             
            `caperoma finish [optional comment]` - ends a task of any type.
         | 
| 447 | 
            +
             | 
| 344 448 | 
             
            Do everything that you usually do after finishing a task:
         | 
| 345 449 | 
             
            - git commit (feature, bug, fix) [commit name consists of the task title, Jira ID and Pivotal ID]
         | 
| 346 450 | 
             
            - runs style guide checks (rubocop -a)
         | 
| @@ -362,29 +466,39 @@ caperoma finish "completed" | |
| 362 466 |  | 
| 363 467 | 
             
            #### Abort current task
         | 
| 364 468 | 
             
            `caperoma abort [optional comment]` - finish without committing / pushing changes.
         | 
| 469 | 
            +
             | 
| 365 470 | 
             
            This command does what you usually need to do to interrupt the task:
         | 
| 366 471 | 
             
            - Logs time to Jira.
         | 
| 367 472 | 
             
            - changes the status of Jira task to "done"
         | 
| 368 473 | 
             
            - changes the status of Pivotal task to "finished"
         | 
| 369 474 | 
             
            - switches to the main branch
         | 
| 475 | 
            +
             | 
| 370 476 | 
             
            All changes to files remain uncommitted.
         | 
| 477 | 
            +
             | 
| 371 478 | 
             
            Examples:
         | 
| 372 479 | 
             
            ```bash
         | 
| 373 480 | 
             
            caperoma abort "can't reproduce"
         | 
| 374 481 | 
             
            # interrupt + write a comment "can't reproduce" in Jira
         | 
| 375 482 |  | 
| 376 483 | 
             
            caperoma abort
         | 
| 484 | 
            +
            # keep comment blank
         | 
| 377 485 | 
             
            ```
         | 
| 378 486 |  | 
| 379 487 | 
             
            #### Abort current task without logging time
         | 
| 380 488 | 
             
            `caperoma abort_without_time [optional comment]` - same as abort, but does not log time to Jira
         | 
| 489 | 
            +
             | 
| 381 490 | 
             
            Only changes the status of Jira task to "done".
         | 
| 491 | 
            +
             | 
| 382 492 | 
             
            Pivotal task remains started.
         | 
| 493 | 
            +
             | 
| 383 494 | 
             
            Files remain uncommitted.
         | 
| 384 495 |  | 
| 385 496 | 
             
            Example:
         | 
| 497 | 
            +
             | 
| 386 498 | 
             
            Suppose you started a task and fall asleep.
         | 
| 499 | 
            +
             | 
| 387 500 | 
             
            You wake up, the timer is still running.
         | 
| 501 | 
            +
             | 
| 388 502 | 
             
            You stop the timer without logging time to Jira:
         | 
| 389 503 | 
             
            ```
         | 
| 390 504 | 
             
            caperoma abort_without_time
         | 
| @@ -392,6 +506,7 @@ caperoma abort_without_time | |
| 392 506 |  | 
| 393 507 | 
             
            #### Pause current task
         | 
| 394 508 | 
             
            `caperoma pause [optional comment]` — stop work on the task, but not consider it completed (don't make a pull request).
         | 
| 509 | 
            +
             | 
| 395 510 | 
             
            What it will do:
         | 
| 396 511 | 
             
            - git commit (feature, bug, fix) [commit name consists of the task title, Jira ID and Pivotal ID]
         | 
| 397 512 | 
             
            - runs style guide checks (rubocop -a)
         | 
| @@ -407,6 +522,7 @@ To finish the paused task, you will need to manually switch into its branch and | |
| 407 522 | 
             
            Finishing the task will be done by new independent tasks in Jira.
         | 
| 408 523 |  | 
| 409 524 | 
             
            Example:
         | 
| 525 | 
            +
             | 
| 410 526 | 
             
            Suppose you need to urgently switch to another task.
         | 
| 411 527 | 
             
            ```bash
         | 
| 412 528 | 
             
            ...
         | 
| @@ -431,10 +547,15 @@ caperoma finish | |
| 431 547 |  | 
| 432 548 | 
             
            #### Adding Accounts
         | 
| 433 549 | 
             
            `caperoma accounts [add command] [account_type] [login] [password] [assignee]` - add (or overwrite) an account of type [account_type] to the database.
         | 
| 550 | 
            +
             | 
| 434 551 | 
             
            `[add command]`: `-a`, `add`, `--add`, `-c`, `create`, `--create` (all these are equivalent).
         | 
| 552 | 
            +
             | 
| 435 553 | 
             
            `[account_type]`: One of: `--jira`, `--pivotal` `--git`, `--gmail`
         | 
| 554 | 
            +
             | 
| 436 555 | 
             
            `[login]` is your account login (email or username).
         | 
| 556 | 
            +
             | 
| 437 557 | 
             
            `[password]` for --jira and --pivotal should be api_tokens (password won't do). for --git and --gmail it should be your password.
         | 
| 558 | 
            +
             | 
| 438 559 | 
             
            `[assignee]` is only for --jira, for other types no need to write anything there.
         | 
| 439 560 |  | 
| 440 561 | 
             
            Examples:
         | 
| @@ -450,7 +571,9 @@ caperoma accounts --create --gmail login password   # Add Gmail account for repo | |
| 450 571 |  | 
| 451 572 | 
             
            #### Removing accounts
         | 
| 452 573 | 
             
            `caperoma accounts [remove_command] [account_type]` - remove an account of a given type.
         | 
| 574 | 
            +
             | 
| 453 575 | 
             
            `[remove_command]`: `remove`, `--remove`, `-r`, `delete`, `--delete`, `-d` (all these are equivalent).
         | 
| 576 | 
            +
             | 
| 454 577 | 
             
            `[account_type]`: One of the following: `--jira`, `--pivotal`, `--git`, `--gmail`
         | 
| 455 578 |  | 
| 456 579 | 
             
            Examples:
         | 
| @@ -463,10 +586,18 @@ caperoma accounts -delete --gmail # Remove Gmail account for reports | |
| 463 586 |  | 
| 464 587 | 
             
            ### Deleting all data from this computer
         | 
| 465 588 | 
             
            `caperoma delete_history` - removes the caperoma database, so deletes the information on the tasks, time spent, branch names, account credentials, etc.
         | 
| 589 | 
            +
             | 
| 466 590 | 
             
            Keeps the folders of your projects intact.
         | 
| 467 591 |  | 
| 592 | 
            +
             | 
| 593 | 
            +
            ### Deleting all tasks from this computer
         | 
| 594 | 
            +
            `caperoma delete_tasks` - removes the tasks from the database, so deletes the information on the task names, time spent, branch names, etc.
         | 
| 595 | 
            +
             | 
| 596 | 
            +
            Keeps other settings (accounts, projects) and the folders of your projects intact.
         | 
| 597 | 
            +
             | 
| 468 598 | 
             
            ### Version:
         | 
| 469 599 | 
             
            `caperoma -v` - shows Caperoma version
         | 
| 600 | 
            +
             | 
| 470 601 | 
             
            `caperoma version` - shows Caperoma version
         | 
| 471 602 |  | 
| 472 603 | 
             
            ### Recipients
         | 
| @@ -475,7 +606,9 @@ Keeps the folders of your projects intact. | |
| 475 606 |  | 
| 476 607 | 
             
            #### Adding Report Recipients:
         | 
| 477 608 | 
             
            `caperoma recipients [add command] [email]` - adds an email of a recipient of your reports to the database.
         | 
| 609 | 
            +
             | 
| 478 610 | 
             
            `[add command]`: `-a`, `add`, `--add`, `-c`, `create`, `--create` (all these are equivalent).
         | 
| 611 | 
            +
             | 
| 479 612 | 
             
            `[email]` - the email of the recipient
         | 
| 480 613 |  | 
| 481 614 | 
             
            Examples:
         | 
| @@ -489,6 +622,7 @@ caperoma recipients --add "your_techlead@domain.com" | |
| 489 622 |  | 
| 490 623 | 
             
            #### Removing Report Recipients
         | 
| 491 624 | 
             
            `caperoma recipients [remove command] [email]` - removes the `[email]` of the recipient of your reports from the database.
         | 
| 625 | 
            +
             | 
| 492 626 | 
             
            `[remove command]`: `remove`, `--remove`, `-r`, `delete`, `--delete`, `-d` (all these are equivalent).
         | 
| 493 627 |  | 
| 494 628 | 
             
            Examples:
         | 
| @@ -500,17 +634,19 @@ caperoma recipients --delete "your_supervisor@domain.com" | |
| 500 634 |  | 
| 501 635 | 
             
            ### Automatic Reports
         | 
| 502 636 | 
             
            `caperoma report auto on` - turns on automatic report sending to all your recipients.
         | 
| 637 | 
            +
             | 
| 503 638 | 
             
            `caperoma report auto off` - turn off automatic report sending to all your recipients.
         | 
| 504 639 |  | 
| 505 640 | 
             
            ### Sending Reports Manually
         | 
| 506 | 
            -
            `caperoma report  | 
| 507 | 
            -
             | 
| 641 | 
            +
            `caperoma report [option]` - send a report right now.
         | 
| 642 | 
            +
             | 
| 643 | 
            +
            `[option]`:
         | 
| 644 | 
            +
             | 
| 645 | 
            +
            `daily`, `-d` - send a daily report right now
         | 
| 508 646 |  | 
| 509 | 
            -
            ` | 
| 510 | 
            -
            `caperoma report -t` - send a three-day report right now
         | 
| 647 | 
            +
            `three_day`, `-t` - send a three-day report right now
         | 
| 511 648 |  | 
| 512 | 
            -
            ` | 
| 513 | 
            -
            `caperoma report -w` - send a weekly report right now
         | 
| 649 | 
            +
            `weekly`, `-w` - send a weekly report right now
         | 
| 514 650 |  | 
| 515 651 | 
             
            ### Support me on Patreon.
         | 
| 516 652 | 
             
            https://www.patreon.com/sergevinogradoff
         |