caperoma 4.0.1 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/Capefile +6 -6
  3. data/Capefile.template +4 -1
  4. data/Gemfile +1 -5
  5. data/Gemfile.lock +3 -45
  6. data/HELP +84 -13
  7. data/README.md +165 -29
  8. data/Rakefile +25 -22
  9. data/VERSION +1 -1
  10. data/bin/caperoma +6 -9
  11. data/caperoma.gemspec +15 -13
  12. data/config/crontab +0 -2
  13. data/config/schedule.rb +17 -19
  14. data/config/unschedule.rb +3 -0
  15. data/images/circle.png +0 -0
  16. data/images/report.png +0 -0
  17. data/lib/caperoma.rb +308 -98
  18. data/lib/caperoma/models/account.rb +1 -1
  19. data/lib/caperoma/models/project.rb +1 -2
  20. data/lib/caperoma/models/report.rb +15 -15
  21. data/lib/caperoma/models/task.rb +203 -46
  22. data/lib/caperoma/models/tasks/chore.rb +2 -0
  23. data/lib/caperoma/models/tasks/feature.rb +1 -0
  24. data/lib/caperoma/models/tasks/fix.rb +2 -0
  25. data/lib/caperoma/models/tasks/meeting.rb +2 -0
  26. data/lib/caperoma/models/tasks/modules/git.rb +94 -15
  27. data/lib/caperoma/models/tasks/task_with_commit.rb +8 -5
  28. data/lib/caperoma/models/tasks/task_with_separate_branch.rb +6 -4
  29. data/spec/caperoma_spec.rb +558 -2
  30. data/spec/factories/accounts.rb +1 -1
  31. data/spec/factories/projects.rb +1 -1
  32. data/spec/factories/report_recipients.rb +1 -1
  33. data/spec/factories/reports.rb +1 -1
  34. data/spec/factories/tasks.rb +1 -2
  35. data/spec/features/command_unknown_spec.rb +0 -1
  36. data/spec/features/feature_spec.rb +64 -44
  37. data/spec/features/init_spec.rb +20 -0
  38. data/spec/features/status_spec.rb +12 -11
  39. data/spec/models/project_spec.rb +0 -1
  40. data/spec/models/task_spec.rb +811 -27
  41. data/spec/models/task_with_commit_spec.rb +0 -4
  42. data/spec/models/task_with_separate_branch_spec.rb +4 -4
  43. data/spec/models/three_day_report_spec.rb +2 -3
  44. data/spec/spec_helper.rb +2 -0
  45. data/spec/support/capefile_generator.rb +35 -27
  46. data/spec/support/stubs.rb +7 -74
  47. metadata +47 -24
  48. data/lib/caperoma/models/branch.rb +0 -6
  49. data/lib/caperoma/services/airbrake_email_processor.rb +0 -47
  50. data/lib/caperoma/services/pivotal_fetcher.rb +0 -108
  51. data/spec/factories/branches.rb +0 -9
  52. 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 -t "your first 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 -t "your urgent bugfix"
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
- ## Ubuntu Setup
83
- ```bash
84
- sudo apt install -y sqlite3 crontab git
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
- cd ~/myproject # open your project
110
- caperoma init # create Capefile
111
- vim Capefile # open Capefile to enter the settings.
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 -t "your first 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 --t "your second feature" -p 12345678
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 ./your_first_feature.rb
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 before (Demo 4), but notice -a 23 parameter.
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 ./your_first_feature.rb
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. You will have to finish or pause the current 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
- *The order of options is not important.
271
- Immediately after the operator must be a value.*
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 daily` - send a daily report right now
507
- `caperoma report -d` - send a daily report right now
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
- `caperoma report three_day` - send a three-day report right now
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
- `caperoma report weekly` - send a weekly report right now
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