Skip to content

vsoch/helpme

Repository files navigation

HelpMe

A command line helper when you need it.

DOI GitHub actions status

Overview

HelpMe is a general tool that can support the addition of helpers, or different modules that have a set of metadata to collect for the user, and based on an internal configuration file to define these metadata, and (if needed) an external config file for user variables, we send help requests to the various helpers. For example:

  • helpme github posts an issue on a Github board
  • helpme uservoice creates a ticket on uservoice
  • helpme discourse creates a post on a discourse board

Please post issues with questions, feedback, or just to say hello, and see our complete documentation here.

Background

Asking for help is a standard need for research software users, and needing to perform this function from a command line is common given the headless environments provided on shared cluster resources. While interactive web interfaces are the main avenue to submit help tickets and issues to get help, they are many steps away from the original command line where the issue arose, meaning that the user must interrupt a workflow, navigate to another program, and perform several clicks before needing to try to manually capture the problem at hand. At best, the user might copy an error message and the support staff then needs to ask or use internal resources to collect more information. This reality is not ideal because the user often presents a limited summary of the issue, and valuable information about the system, environment, or even a recording of the actual issue are lost. Extra time is spent on further communication and effort to obtain this information. HelpMe resolves these issues by recording information about the issue directly from the source, and allowing users to ask for help without leaving the working environment.

HelpMe is a free to use, open source command line tool that serves one purpose: to connect a user on a command line to a a resource to get help. The software provides a general framework for developers to add "helpers," or different support endpoints to work with "recorders," each a specific way of capturing information like messages, terminal recordings (asciinema), and environment, to easily submit to the endpoint. Importantly, the complex interaction of various application programming interfaces (APIs) with the user's terminal is presented in a simple and intuitive way that puts the user in control of the interaction. By default, the software comes ready to use for interaction with Github and the UserVoice ticketing softwarecommonly used in Research Computing. The HelpMe documentation base is rendered from the same repository and open for contribution. It provides ample detail for developers to add new helpers, recorders, and for users to install the software.

Installation

Local

pip install helpme[all]
pip install helpme[github]
pip install helpme[uservoice]

Docker

Current images are provided on quay.io at vanessa/helpme. Older versions can be found on Docker hub.

You can use the image built on Docker Hub directory

$ docker run -it --entrypoint bash quay.io/vanessa/helpme

or you can build it from this repository!

$ docker build -t quay.io/vanessa/helpme .

Usage

# Post an issue to a Github Repo.
$ helpme github vsoch/helpme

# Post a question to a discourse board
$ helpme discourse

# Post a ticket to UserVoice
$ helpme uservoice

This is a very brief summary of usage. For complete details, see our documentation.

Contributing

If you'd like to contribute, we welcome pull requests, feature requests, and any form of help you might offer! Please see our contributing guidelines for more details. Do you have a question, or did you find a bug? You can submit an issue and we will help you out.

Examples

  • rseng-support an example issue submission system with helpme and GitHub

License

This code is licensed under the Mozilla version 2.0 LICENSE.