PIPr: A Dataset of Public Infrastructure as Code Programs
Programming Languages Infrastructure as Code (PL-IaC) enables IaC programs written in general-purpose programming languages like Python and TypeScript. The currently available PL-IaC solutions are Pulumi and the Cloud Development Kits (CDKs) of Amazon Web Services (AWS) and Terraform. This datase
Programming Languages Infrastructure as Code (PL-IaC) enables IaC programs written in general-purpose programming languages like Python and TypeScript. The currently available PL-IaC solutions are Pulumi and the Cloud Development Kits (CDKs) of Amazon Web Services (AWS) and Terraform. This dataset provides metadata and initial analyses of all public GitHub repositories in August 2022 with an IaC program, including their programming languages, applied testing techniques, and licenses. Further, we provide a shallow copy of the head state of those 7104 repositories whose licenses permit redistribution. The dataset is available under the Open Data Commons Attribution License (ODC-By) v1.0.
Contents:
- metadata.zip: The dataset metadata and analysis results as CSV files.
- scripts-and-logs.zip: Scripts and logs of the dataset creation.
- LICENSE: The Open Data Commons Attribution License (ODC-By) v1.0 text.
- README.md: This document.
- redistributable-repositiories.zip: Shallow copies of the head state of all redistributable repositories with an IaC program.
This artifact is part of the ProTI Infrastructure as Code testing project: https://proti-iac.github.io.
Metadata
The dataset’s metadata comprises three tabular CSV files containing metadata about all analyzed repositories, IaC programs, and testing source code files.
repositories.csv:
- ID (integer): GitHub repository ID
- url (string): GitHub repository URL
- downloaded (boolean): Whether cloning the repository succeeded
- name (string): Repository name
- description (string): Repository description
- licenses (string, list of strings): Repository licenses
- redistributable (boolean): Whether the repository’s licenses permit redistribution
- created (string, date & time): Time of the repository’s creation
- updated (string, date & time): Time of the last update to the repository
- pushed (string, date & time): Time of the last push to the repository
- fork (boolean): Whether the repository is a fork
- forks (integer): Number of forks
- archive (boolean): Whether the repository is archived
- programs (string, list of strings): Project file path of each IaC program in the repository
programs.csv:
- ID (string): Project file path of the IaC program
- repository (integer): GitHub repository ID of the repository containing the IaC program
- directory (string): Path of the directory containing the IaC program’s project file
- solution (string, enum): PL-IaC solution of the IaC program (“AWS CDK”, “CDKTF”, “Pulumi”)
- language (string, enum): Programming language of the IaC program (enum values: “csharp”, “go”, “haskell”, “java”, “javascript”, “python”, “typescript”, “yaml”)
- name (string): IaC program name
- descrip
📤 Share this page
Found this useful? Share it with your network.
Files are hosted on the source repository. Click download to access the full dataset.