Skip to contents

IO

Functions to create and read temporary files in R.

io_make_folder()
Make Folder
io_delete_folder()
Delete Folder
io_make_file()
Make File
make_temporary_file()
Make Temporary File
read_temporary_file()
Read Temporary File

Source Code

Source Code File Parsers and Network Transformations. Git Log data is not required.

Static Dependencies

Identification of static dependencies from source code. See the File Networks or Kaiaulu Architecture Notebooks for examples.

parse_dependencies()
Parse dependencies from Depends
parse_r_dependencies()
Parse R File and Function Dependencies
transform_dependencies_to_network()
Transform parsed dependencies into a network
transform_r_dependencies_to_network()
Transform parsed R dependencies into a graph

Gang of Four Patterns

Gang of Four pattern detection using sub-graphs. See the Graph GoF Notebook for examples.

parse_gof_patterns()
Parse GoF Patterns
write_gof_patterns()
Write GoF Patterns
subset_gof_class()
Subset GoF Classes

Syntax Extraction

Annotate and query source code elements, such as identifiers and docstrings. See the Text GoF Notebook for examples.

annotate_src_text()
Creates srcML XML
query_src_text()
Query srcML XML
query_src_text_class_names()
Query srcML Class Names
query_src_text_namespace()
Query srcML Namespace

Git

Parsing, Network Transformers, and Git Command Interface

Git Log

Git Log Numstat and Git Blame Parsers. See the Git Log Notebook for examples.

parse_gitlog()
Parse Gitlog from Perceval
parse_git_blame()
Parse the git blame message of a file
parse_gitlog_entity()
Parse Git log entities by line additions
parse_commit_message_id()
Adds a column commit_message_id containing the parsed commit message
transform_gitlog_to_bipartite_network()
Transform parsed git repo into an edgelist
transform_gitlog_to_temporal_network()
Create time-ordered contribution network
transform_gitlog_to_entity_bipartite_network()
Transform parsed git repo into an edgelist
transform_gitlog_to_entity_temporal_network()
Create time-ordered contribution network
transform_commit_message_id_to_network()
Transform parsed git repo commit messages id and files into an edgelist

Git Command

R Interface to Git Commands

git_add()
Git Add
git_commit()
Git Commit
git_init()
Git Init
git_mv()
Git Mv
git_checkout()
Performs a git checkout on specified repo
git_head()
Gets the current commit hash head of the git repo
git_log()
Saves gitlog to a path
git_blame()
Git blame wrapper
git_create_sample_log()
Creates a sample git log with one commit
git_delete_sample_log()
Removes sample folder and git log

Filters

Filters for file extensions, and substrings, such as test files, and time intervals. See the Git Log and Line Metrics Notebooks for examples.

filter_by_file_extension()
Filter commit files by extension
filter_by_filepath_substring()
Filter by filepath substring
filter_by_commit_interval()
Filter by commit interval
filter_by_last_files_change()
Filter Git Log by all last files changes in snapshot
filter_by_commit_size()
Filter by number of files in commit

Mail

Download, parsing and data generation of mailing lists. See the Download Mbox and Reply Notebooks for details.

download_pipermail()
Download all pipermail files in an archive
convert_pipermail_to_mbox()
Convert pipermail archive files (.txt and .txt.gz) into an mbox format for use with parse_mbox
download_mod_mbox()
Compose mod_mbox archives (.mbox) into a single mbox file for use with parse_mbox
download_mod_mbox_per_month()
Compose mod_mbox archives (.mbox) into a single mbox file for use with parse_mbox
parse_mbox()
Parse mbox from Perceval
make_mbox_reply()
Create Mbox Reply String
make_mbox_mailing_list()
Takes in mbox replies and creates a .mbox file

JIRA

Downloading, parsing, data generation and network transformations of JIRA. See the JIRA Notebook for details.

parse_jira()
Parse Jira issue and comments
parse_jira_replies()
Format Parsed Jira to Replies
parse_jira_rss_xml()
Parse Jira Issue RSS XML Feed
make_jira_issue()
Create JirAgileR Issue
make_jira_issue_tracker()
Make Jira Issue Tracker

GitHub

Functions to interact and download data from GitHub API. See the GitHub API Notebook to learn how to set an API Key, and how to use it to download issues and comments on the GitHub Downloader and Parser Notebook.

Issues

Download and parsing GitHub’s Issues, Pull Requests and Events

github_api_rate_limit()
Returns token remaining available requests.
parse_github_replies()
Parse GitHub Issue and Pull Request Comments
github_api_project_issue_events()
Download Project Issue Events
github_parse_project_issue_events()
Parse Issue Events JSON to Table
github_api_project_issue()
Download Project Issues
github_parse_project_issue()
Parse Issues JSON to Table

Pull Request

GitHub’s Pull Request

github_api_project_pull_request()
Download Project Pull Requests
github_parse_project_pull_request()
Parse Pull Requests JSON to Table

Issue and Pull Request Comments

GitHub’s assumes Issues and Pull Requests to be the same in regards to comments.

github_api_project_issue_or_pr_comments()
Download Project Issue's or Pull Request's Comments
github_parse_project_issue_or_pr_comments()
Parse Issues' or Pull Requests' Comments JSON to Table

Commits

GitHub’s Commits

github_api_project_commits()
Download Project Commits
github_parse_project_commits()
Parse Commits JSON to Table
github_api_project_contributors()
Download Project Contributors

Bugzilla

Downloading and parsing of Bugzilla. See the _bugzilla_showcase.Rmd Notebook source code for examples.

download_bugzilla_perceval_traditional_issue_comments()
Download Bugzilla issues and comments using Perceval traditional backend.
download_bugzilla_perceval_rest_issue_comments()
Download Bugzilla issues and comments using Perceval REST API backend.
download_bugzilla_rest_issues()
Download Bugzilla issues using the Bugzilla REST API
download_bugzilla_rest_comments()
Download Bugzilla comments using the Bugzilla REST API
download_bugzilla_rest_issues_comments()
Download project data (issues and comments) from bugzilla site Note: The first comment in every issue is the issue description
parse_bugzilla_perceval_traditional_issue_comments()
Parse Bugzilla data obtained from Perceval traditional Bugzilla backend
parse_bugzilla_perceval_rest_issue_comments()
Parse Bugzilla data obtained from Perceval REST API Bugzilla backend
parse_bugzilla_rest_issues()
Parse Bugzilla issues data obtained from json files from Bugzilla crawler
parse_bugzilla_rest_comments()
Parse Bugzilla comments data obtained from json files from Bugzilla crawler parse_bugzilla_rest_comments
parse_bugzilla_rest_issues_comments()
Parse Bugzilla issues and comments data table

Reply

Functions used to parse communication data from mail and issue trackers.

transform_reply_to_bipartite_network()
Transform parsed mbox or parsed jira replies into a network

Software Vulnerabilities

Software Vulnerabilities feed parsers. See the Software Vulnerability Notebook for examples.

parse_nvdfeed()
Parse NVD Feed CVEs, descriptions and CWE ids
transform_cve_cwe_file_to_network()
Transform parsed cveid and nvdfeed into a network

Identity

Provide the same id to authors who use variations of names or emails. See the Social Smells Notebook for examples.

format_name_email()
Format Name and Email
split_name_email()
Split Name and Email
is_same_identity()
Compares identities in a list by index
assign_exact_identity()
Identify authors with different names and emails
identity_match()
Assign Common Id to Nodes and Edgelists to Git and Mbox

Interval

Provides different types of interval windows (e.g. release) for metric functions.

interval_commit_metric()
Calculate Metric for Commit Interval
get_date_from_commit_hash()
Get datetime from commit hash in a git log

Metrics

Various metrics used to estimate code quality, complexity and effort. For example usage, see File Line Metrics, Causal Flaws, or Bug Count Notebooks.

parse_line_metrics()
Parse File Line Metrics
metric_file_bug_frequency()
File Bug Frequency
metric_file_non_bug_frequency()
File Non Bug Frequency
metric_file_bug_churn()
File Bug Churn
metric_file_non_bug_churn()
File Non Bug Churn
metric_file_churn()
File Churn
metric_churn_per_commit_interval()
Churn Metric per Commit Interval
metric_churn_per_commit_per_file()
Churn Metric per Commit per File
commit_message_id_coverage()
Commit Message Id Coverage Metric
metric_churn()
Churn Metric

Graph

Provide graph models to construct networks and algorithms for graph analysis.

model_directed_graph()
Create a directed graph model
bipartite_graph_projection()
Apply a bipartite graph projection
temporal_graph_projection()
Apply a temporal graph projection
weight_scheme_sum_edges()
Weight Edge Sum Projection Scheme
weight_scheme_count_deleted_nodes()
Weight Number of Deleted Nodes Projection Scheme
weight_scheme_cum_temporal()
Weight Cumulative Temporal Projection Scheme
weight_scheme_pairwise_cum_temporal()
Weight Pair-wise Cumulative Temporal Projection Scheme
community_oslom()
OSLOM Community Detection
recolor_network_by_community()
Re-color OSLOM Community IDs
graph_to_dsmj()
Exports a graph as a dsmj.

Social-Technical Congruence and Social Smells

Sub-graph patterns that identify bad social practices. See Social Motifs, or Social Smells Notebooks.

motif_factory()
Motif Factory
motif_factory_triangle()
Triangle Motif
motif_factory_square()
Square Motif
motif_factory_anti_triangle()
Anti-Triangle Motif
motif_factory_anti_square()
Anti-Square Motif
smell_missing_links()
Missing link Social Smell
smell_organizational_silo()
Organizational Silo Social Smell
smell_sociotechnical_congruence()
Estimates Socio-Technical Congruence
smell_radio_silence()
Radio Silence Social Smell.

Architectural Flaws

Sub-graph patterns that identify bad architectural practices. Requires a DV8 Archdia license (https://archdia.com). See the Architectural Flaws Notebook for examples.

Design Structure Matrix (DSM)

Parsing DSMs from raw data, convert between JSON DSMs and DV8’s binary DSMs, combine DSMs, and DSM export to Excel.

gitlog_to_hdsmj()
Transforms a gitlog table to a historical DSM JSON file.
dv8_gitlog_to_gitnumstat()
Transforms a git log to a git numstat file.
dv8_gitnumstat_to_hdsmb()
Converts a git log text file into a hdsmb binary file
dependencies_to_sdsmj()
Transforms a dependencies table to a structural DSM JSON file.
dv8_depends_to_sdsmj()
Creates dependencies using Depends
dv8_dsmj_to_dsmb()
Transforms a DV8 binary DSM file to a DSM JSON file.
dv8_dsmb_to_dsmj()
Export a dsmb binary file as a separate json file
dv8_hdsmb_sdsmb_to_mdsmb()
Merge history DSM and structural DSM to merged DSM.
dv8_mdsmb_drhier_to_excel()
Export a mdsmb binary file into a spreadsheet
transform_dependencies_to_sdsmj()
Transform parsed dependencies into a structural dsm.json file.
transform_gitlog_to_hdsmj()
Transform parsed git repo into a history dsm.json file.
transform_temporal_gitlog_to_adsmj()
Transform parsed git repo into an author dsm.json file.

Metrics

Various DV8 metrics, Parsing into R Memory, and File to Flaw mapping.

dv8_mdsmb_to_flaws()
Computes the Architectural Flaws folder
parse_dv8_architectural_flaws()
Parse Architecture Flaws Map
dv8_mdsmb_to_decoupling_level()
Computes the Decoupling Level from a mdsm binary file
parse_dv8_metrics_decoupling_level()
Parses the decoupling level JSON file
dv8_mdsmb_to_hierclsxb()
Computes the design rule hierarchy for a mdsm binary file

Clustering

Hierarchical Clustering, Parsing into R Memory, and Clustering conversion between JSON and DV8’s binary.

dv8_clsxb_to_clsxj()
Transforms a DV8 binary cluster file to a json cluster file.
dv8_clsxj_to_clsxb()
Convert a json cluster file, clsxj, to a binary cluster file, clsxb.
parse_dv8_clusters()
Parses a DV8 json cluster file to R data.table.