Skip to content

bmeme/memento

Repository files navigation

NAME

memento

VERSION

version 1.13.1

SYNOPSIS

memento [TOOL [COMMAND [COMMAND_ARG1 ...]]] [--OPTIONS
[--MORE_OPTIONS]]

DESCRIPTION

memento is a modular step by step command line tool. By default it
provides the following commands:

  - activity
  - bitbucket
  - features
  - git
  - gitlab
  - history
  - jira
  - paymo
  - redmine
  - schema
  - taiga
  - tempo
  - workflow

Memento, for each command, provides by default a fallback helper if a
required argument is missing. For example you can get your last
executed command via direct input:

  $ memento history last
  memento git status

or via progressive input:

  $ memento
  Enter the tool name to be used:
  - activity
  - bitbucket
  - features
  - git
  - gitlab
  - history
  - jira
  - paymo
  - redmine
  - schema
  - taiga
  - tempo
  - workflow
  � history

  Choose a command:
  - bookmark
  - bookmarks
  - clear
  - exec
  - last
  - list
  - unbookmark
  � last

  memento git status

If you want to extend Memento with your own tools, put them into
Memento/Tool/custom directory. The best tools will be added into
Memento core tools, so feel free to send us your tool!

INSTALLATION

In order to be able to manage third party perl modules Memento requires
cpan (http://www.cpan.org/).

Open a terminal and execute the install.pl file located into memento
dir:

./install.pl

On Ubuntu

  Before install Memento, be sure to have perl-doc and
  libwww-curl-perl:

  sudo apt-get install perl-doc

  sudo apt-get install libwww-curl-perl

  sudo ./install.pl

AFTER INSTALL

After install process has ended please add the following lines, also
shown by the install script to your .bashrc or .zshrc file:

memento schema check

source <memento-install-dir>/misc/completion.sh

ENVIRONMENT VARIABLES

Memento uses the following environment variables which can be used
following your needs:

  - MEMENTO_HTTP_TIMEOUT: a number which defines the HTTP request timeout.
  - MEMENTO_SYSTEM_COLOR: the text color used to highlight system commands.
  Please take a look at https://metacpan.org/pod/Term::ANSIColor for correct
  usage.

export MEMENTO_HTTP_TIMEOUT="20"

export MEMENTO_HTTP_TIMEOUT="bold magenta"

ACTIVITY

memento activity is a configurable tool which will help you keeping
track of your activities progression and the time spent on it. If you
want you can configure it so that you can use it in conjunction with an
issue tracker and a time tracker.

memento activity provides the following operations:

config

  Manages Memento Activity configurations providing the following
  operations:

  init [--project]

Initialize your Activity configurations that will be used for
defining which issue tracker and / or time tracker will be used.

  list

Lists all Memento Activity configurations.

  delete

Delete all Memento Activity configurations.

start [issue-id] [--issue-tracker] [--time-tracker] [--manual]

  Starts a new activity. Use --manual option if you don't need to use
  an Issue Tracker. If during the configuration operation, the Issue
  Tracker support was enabled, you will be asked to insert an Issue Id,
  or you can provide it inline memento activity start [issue-id]. It
  will be used to extract the activity name from the issue and to
  change the its status. Via the workflow tool, it's possible to create
  a rule for updating issue status and done ratio on activity start,
  automatically assigning it to current user, and optionally add a
  comment.

stop

  Use this command when you've to stop working on your activity. Via
  the workflow tool, it's possible to create a rule for updating issue
  status and done ratio on activity stop and optionally add a comment.

resume

  If you have previously stopped your activity, you can always resume
  it by using this command.

current [--open]

  You can view what's your current activity by using this command. If
  you wanna open it in your browser, then use the --open option.

BITBUCKET

Due to its API limitations, Bitbucket issue tracker can only be used
for branch naming generation. No change issue status or assignee
neither comments creation operations can be done.

You can easily integrate Memento with multiple instances of Bitbucket,
with the memento bitbucket config add command, and switch from one to
another simply by using the memento bitbucket config switch
[bitbucket_api_id] command.

memento bitbucket provides the following operations:

config

  Manages Bitbucket API configurations providing the following options:

  add

Adds a new configurations set for a Bitbucket instance.

  delete [bitbucket_api_id]

Deletes a configurations set for a Bitbucket instance.

  list

Lists all Bitbucket configurations.

  switch [bitbucket_api_id]

Sets a Bitbucket instance as the default one. All queries will be
executed to the default one. Otherwise, you can change on the fly
the active Bitbucket instance by using the --api-id option, for
each memento bitbucket command.

issue [bitbucket_issue_id [--open]]

  Shows the details of an issue. If the --open boolean option has been
  provided, the issue will not be rendered, but opened into your
  default web browser.

projects

  Renders a table containing info about all available Bitbucket
  projects.

user

  Renders a table containing info about current user referring to the
  active api.

FEATURES

memento features allows you to export and import all your tools
configurations.

It provides the following operations:

export

  Export configurations of your tools (features). You can choose to
  export all of them or just one by one. By default the export will be
  printed to the standard output. If you want you can save your
  configurations into a file by using ">" as follows:

  memento features export all > memento_all.cfg

import [--file]

  Import your features using a previously exported config file. You can
  choose to import all of them or just one by one. Use --file option to
  specify the file path (in direct input mode), otherwise memento will
  remember you to specify it later (progressive input mode):

  memento features import git --file memento_all.cfg

GIT

memento git is a configurable tool with the main purpose to help
developers creating branches, following git-flow-like (but divergent)
flows. This is not a wrapper around git core features, but just
something like an extension.

memento git provides the following operations:

config

  Manages Memento Git configurations providing the following
  operations:

  init [--project]

Initialize your git repository storing configurations that will be
used for branches creation, project name configuration and git
hooks management. Use --project option to specify a project name.

  list

Lists all Memento Git configurations.

  delete

Delete all Memento Git configurations affecting your current
repository.

root

  Utility command used to show the repository root.

start [issue-id] [--source]

  Creates a new branch starting from the configured source branch. Use
  --source option to override the default one. If during the
  configuration operation, the Issue Tracker support was enabled, you
  will be asked to insert an Issue Id, or you can provide it inline
  memento git start [issue-id]. It will be used to build the new
  branch, following the configured branch pattern. Via the workflow
  tool, is possible to create a rule for updating issue status and done
  ratio on git flow start, automatically assigning it to current user,
  and optionally add a comment.

finish [--safe] [--silent]

  Use this command to merge current branch into the configure
  destination branch. Current branch will also be deleted if the delete
  configuration has been set. If you are not familiar with this
  command, use the --safe option to avoid unwanted behaviors (you will
  be asked to confirm destination and deletion options). Via the
  workflow tool, is possible to create a rule for updating issue status
  and done ratio on git flow finish and optionally add a comment. If
  you want to avoid execution of git flow finish events, run this
  command with the --silent option. Your code will be merged into the
  destination branch but no other action will be performed (eg: time
  traker or issue traker actions).

pause

  If you have enabled a Time Tracker, use this command to pause the
  timer and log your worked hours. This will not affect your code but
  will only handle time entries.

resume

  If you have previously paused your Time Tracker, you can always
  resume it by using this command.

log

  Show the git log tree in a pretty format.

rebase

  memento git rebase

  Rebases current branch with the configured source branch.

  memento git rebase <branch_name>

  Rebases current branch with the provided one.

commit

  Allows you to commit your code by using conventional commits.

GITLAB

You can easily integrate Memento with multiple instances of Gitlab,
with the memento gitlab config add command, and switch from one to
another simply by using the memento gitlab config switch
[gitlab_api_id] command.

memento gitlab provides the following operations:

config

  Manages Gitlab API configurations providing the following options:

  add

Adds a new configurations set for a Gitlab instance.

  delete [gitlab_api_id]

Deletes a configurations set for a Gitlab instance.

  list

Lists all Gitlab configurations.

  switch [gitlab_api_id]

Sets a Gitlab instance as the default one. All queries will be
executed to the default one. Otherwise, you can change on the fly
the active Gitlab instance by using the --api-id option, for each
memento gitlab command.

issue [gitlab_issue_iid [--open]]

  Shows the details of an issue. If the --open boolean option has been
  provided, the issue will not be rendered, but opened into your
  default web browser.

projects

  Renders a table containing info about all available Gitlab projects.

user

  Renders a table containing info about current user referring to the
  active api.

TAIGA

You can easily integrate Memento with multiple instances of Taiga, with
the memento taiga config add command, and switch from one to another
simply by using the memento taiga config switch [taiga_api_id] command.

memento taiga provides the following operations:

config

  Manages Taiga API configurations providing the following options:

  add

Adds a new configurations set for a Taiga instance.

  delete [taiga_api_id]

Deletes a configurations set for a Taiga instance.

  list

Lists all Taiga configurations.

  switch [taiga_api_id]

Sets a Taiga instance as the default one. All queries will be
executed to the default one. Otherwise, you can change on the fly
the active Taiga instance by using the --api-id option, for each
memento taiga command.

issue [task|issue]/[taiga_issue_id [--open]]

  Shows the details of an issue or task. If the --open boolean option
  has been provided, the issue will not be rendered, but opened into
  your default web browser.

projects

  Renders a table containing info about all available Taiga projects.

user

  Renders a table containing info about current user referring to the
  active api.

HISTORY

Every command executed is logged into the memento history and can be
bookmarked as a shortcut.

memento history provides the following operations:

bookmark

  Bookmarks a command creating a new shortcut.

bookmarks

  Lists all available bookmarks.

clear

  Clear the command history.

exec

  Executes a command previously logged into the command history.

last [--execute]

  Get last executed command. Use --execute option to execute it.

list

  Lists all commands logged into the command history.

unbookmark

  Deletes a bookmarked command.

JIRA

You can easily integrate Memento with multiple instances of Jira, with
the memento jira config add command, and switch from one to another
simply by using the memento jira config switch [jira_api_id] command.

memento jira provides the following operations:

config

  Manages Jira API configurations providing the following options:

  add

Adds a new configurations set for a Jira instance.

  delete [jira_api_id]

Deletes a configurations set for a Jira instance.

  list

Lists all Jira configurations.

  switch [jira_api_id]

Sets a Jira instance as the default one. All queries will be
executed to the default one. Otherwise, you can change on the fly
the active Jira instance by using the --api-id option, for each
memento jira command.

issue [jira_issue_id_or_key [--open]]

  Shows the details of an issue. If the --open boolean option has been
  provided, the issue will not be rendered, but opened into your
  default web browser.

projects

  Renders a table containing info about all available Jira projects.

search

  Searches for issues using the following options:

  --resolution

Filter by resolution (Unresolved, Done, ...)

  --assignee

Filter by user key (usually name.surname or the email address chunk
before the @)

  --project

Filter by project KEY

  --status

Filter by issue status (In progress, Closed, ...)

  --type

Filter by issue type (Task, Bug, ...)

user

  Renders a table containing info about current user referring to the
  active api.

PAYMO

You can easily integrate Memento with multiple instances of Paymo, with
the memento paymo config add command, and switch from one to another
simply by using the memento paymo config switch [paymo_api_id] command.

memento paymo provides the following operations:

config

  Manages Paymo API configurations providing the following options:

  add

Adds a new configurations set for a Paymo instance.

  delete [paymo_api_id]

Deletes a configurations set for a Paymo instance.

  list

Lists all Paymo configurations.

  switch [paymo_api_id]

Sets a Paymo instance as the default one. All queries will be
executed to the default one. Otherwise, you can change on the fly
the active Paymo instance by using the --api-id option, for each
memento paymo command.

clients

  Renders a table containing info about all available Paymo clients.

info

  Renders a table containing info about Project Name and Task list
  bounded to the current repository.

projects

  Renders a table containing info about all available Paymo projects.

setProject

  Allows you to change Project Name and Task list for the current
  repository.

users

  Renders a table containing info about all available Paymo users.

user

  Renders a table containing info about current user referring to the
  active api.

TEMPO

You can easily integrate Memento with multiple instances of Tempo, with
the memento tempo config add command, and switch from one to another
simply by using the memento tempo config switch [tempo_api_id] command.

memento tempo provides the following operations:

config

  Manages Tempo API configurations providing the following options:

  add

Adds a new configurations set for a Tempo instance.

  delete [tempo_api_id]

Deletes a configurations set for a Tempo instance.

  list

Lists all Tempo configurations.

  switch [tempo_api_id]

Sets a Tempo instance as the default one. All queries will be
executed to the default one. Otherwise, you can change on the fly
the active Tempo instance by using the --api-id option, for each
memento tempo command.

members

  Renders a table containing info about all available team members.

teams

  Renders a table containing info about all available teams.

REDMINE

You can easily integrate Memento with multiple instances of Redmine,
with the memento redmine config add command, and switch from one to
another simply by using the memento redmine config switch
[redmine_api_id] command.

memento redmine provides the following operations:

config

  Manages Redmine API configurations providing the following options:

  add

Adds a new configurations set for a Redmine instance.

  delete [redmine_api_id]

Deletes a configurations set for a Redmine instance.

  list

Lists all Redmine configurations.

  switch [redmine_api_id]

Sets a Redmine instance as the default one. All queries will be
executed to the default one. Otherwise, you can change on the fly
the active Redmine instance by using the --api-id option, for each
memento redmine command.

issue [redmine_issue_id [--open]]

  Shows the details of an issue. If the --open boolean option has been
  provided, the issue will not be rendered, but opened into your
  default web browser.

projects

  Renders a table containing info about all available Redmine projects.

queries

  Renders a table containing info about all available Redmine custom
  queries.

query [redmine_query_id]

  Renders a table containing info about all available Redmine issue
  extracted from the custom query.

user

  Renders a table containing info about current user referring to the
  active api.

SCHEMA

memento schema is the automatic update manager for Memento codebase.

It provides the following operations:

check

  Check, for code updates automatically, with the frequency specified
  via config.

  Insert memento schema check entry into your bash profile in order to
  automatically execute the command whenever you open a new terminal
  window.

config

  Manages Memento schema configurations, allowing user to
  enable/disable automatic updates or to set frequency of update check.

WORKFLOW

memento workflow is the dedicated tool for workflows management.

It provides the following operations:

rules

  Add, delete and list workflow rules in order to create event driven
  automations.

USAGE

memento [-OPTIONS [-MORE_OPTIONS]] [--] [PROGRAM_ARG1 ...]

The following single-character options are accepted: Boolean (without
arguments): -v -h

Options may be merged together. -- stops processing of options.

BUGS

None known as of release, but...

AUTHOR

Adriano Cori <adriano.cori@bmeme.com>

COPYRIGHT

Copyright (c) 2015 - 2023 Adriano Cori. All rights reserved. This
program is free software; you can redistribute it and/or modify it
under the terms of the GPL2 license.

The full text of the license can be found in the LICENSE file included
with this module.

AUTHOR

Bonsaimeme S.r.l. <http://www.bmeme.com>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2015 - 2023 by Adriano Cori and
Bonsaimeme S.r.l.

This is free software, licensed under:

  The GPL2 License