Skip to content

Refactor Mail/JIRA executables #385

@cohenruport

Description

@cohenruport

Purpose

Mail

The mailinglist.R executable includes all necessary functionality from the notebook download_mail.rmd.

doc <- "
USAGE:
mailinglist.R parse help
mailinglist.R parse <tools.yml> <mbox_file_path> <save_file_name_path>
mailinglist.R refresh modmbox help
mailinglist.R refresh modmbox <project_conf.yml> <project_key> <start_year_month>
mailinglist.R refresh pipermail help
mailinglist.R refresh pipermail <project_conf.yml> <project_key> <start_year_month> <end_year_month>
mailinglist.R (-h | --help)
mailinglist.R --version
DESCRIPTION:
Provides a suite of functions to interact with Mailing Lists. Please see
Kaiaulu's README.md for instructions on how to create <tools.yml>
and <project_conf.yml>.
OPTIONS:
-h --help Show this screen.
--version Show version.

The parse works for both pipermail and modmbox since it uses parse_mbox. The only minor change needed is removing the unnecessary and unused input field <end_year_month> in the refresh pipermail command.

JIRA

Kaiaulu's codebase currently has no executable which includes the functionality showcased in download_jira_issues.rmd. There is a PR #297 which adds a jira exec with the following functionality.

As is

kaiaulu/exec/jira.R

Lines 19 to 34 in 4fef19f

USAGE:
jira.R refresh help
jira.R refresh issues <tools.yml> <project_conf.yml> <save_file_name_path>
jira.R download modmbox help
jira.R (-h | --help)
jira.R --version
DESCRIPTION:
Provides functions to refresh JIRA issue data with and without comments. Please see
Kaiaulu's README.md for instructions on how to create <tool.yml>
and <project_conf.yml>.
OPTIONS:
-h --help Show this screen.
--version Show version.

The download modmbox command is unnecessary as the mail exec which was created after this PR includes that functionality. This fault was acknowledged in this comment.
I think the refresh issues command is the only necessary command. The notebook showcases other downloads such as download_jira_issues_by_date, but I don't think it is necessary to have this feature in the executables. Since they are intended to be ran server-side, they are used to process large amounts of data, which means it makes the most sense to just use refresh_jira_issues which will download all issues if none have been downloaded yet.

Process

JIRA

The JIRA exec has a few major flaws. First, it doesn't use the user inputted save path, rather it reads the path from the conf file. This is a simple fix, but I think it makes sense to include the user inputted save path for flexibility and consistency with other execs.
Secondly, there is no consideration for whether or not authentication is necessary. In the JIRA notebook it is noted that if you do not need authentication you should comment out the username and password fields.

Note if authentication is not required, you should also comment the `username` and `password` parameters, or the information will be used to authenticate a JIRA instance you do not have an account, resulting in authorization errors. The downloaded data can also parsed in Kaiaulu:

Since the exec is made to be used in the command line the user will not be able to comment out those lines if authentication is not required. Therefore we should add a flag such as --no_auth which removes those inputs.

Proposed

USAGE:
  jira.R refresh help
  jira.R refresh issues <tools.yml> <project_conf.yml> <save_file_name_path> [--no_auth]
  jira.R (-h | --help)
  jira.R --version

DESCRIPTION:
  Provides functions to refresh JIRA issue data with and without comments. Please see
  Kaiaulus README.md for instructions on how to create <tool.yml>
  and <project_conf.yml>.


OPTIONS:
  -h --help     Show this screen.
  --version     Show version.
  --no_auth     Removes requirement for authentication credentials.

This shows the functionality to be included, the modmbox downloader is removed and the refresh includes an option to not require authentication

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions