CoolFace
Datasetpublic

taher-ghaleb/DEPosit

DEPosit — Replication Package DEPosit (Data Engineering Pipeline Repositories) is a dataset of open-source GitHub repositories in the data-engineering pipeline ecosystem. The dataset contains a master cohort of 1,952 repositories together with repository activity, commits, pull requests, issues, CI-service information, contributor metrics, and pipeline discovery and feature data. Dataset (Data/) The Hugging Face Hub exposes each heterogeneous CSV table as a… See the full description on the dataset page: https://huggingface.co/datasets/taher-ghaleb/DEPosit.

sourceHugging Facecc-by-4.0updated 1mo agoView on Hugging Face
1likes51downloads
Dataset Card

DEPosit — Replication Package

DEPosit (Data Engineering Pipeline Repositories) is a dataset of open-source GitHub repositories in the data-engineering pipeline ecosystem.

The dataset contains a master cohort of 1,952 repositories together with repository activity, commits, pull requests, issues, CI-service information, contributor metrics, and pipeline discovery and feature data.

Dataset (Data/)

The Hugging Face Hub exposes each heterogeneous CSV table as a separate configuration. This prevents tables with different schemas from being incorrectly concatenated by the Dataset Viewer.

ConfigurationFileDescription
repositoriesfiltered_DE_repositories.csvMaster cohort (1,952 repos)
commitsDE_all_commits_details.csvCommits per repository
pull_requestsDE_all_pr_details.csvPull requests
issuesDE_all_issue_details.csvIssues
issue_closersDE_all_issue_closers.csvIssue closer logins
pr_reviewsDE_all_pr_reviews_graphql.csvPR review / merge metadata (GraphQL)
ci_servicesDE_ci_services.csvDetected CI services per repo
ci_file_commitsDE_commits_per_ci_files.csvCommits touching CI config paths
github_actions_runsDE_repo_gha_runs_counts.csvGitHub Actions run counts
repo_interactionsDE_repo_interactions.csvPrecomputed interaction-type metrics
repo_metricsDE_repo_metrics.csvRepo-level activity aggregates
user_autonomyDE_user_autonomy.csvContributor autonomy per repo
pipeline_airflowpipeline_artifacts/DE_pipeline_airflow_dag_features.csvAirflow pipeline features
pipeline_beampipeline_artifacts/DE_pipeline_beam_pipeline_features.csvApache Beam pipeline features
pipeline_dagsterpipeline_artifacts/DE_pipeline_dagster_features.csvDagster pipeline features
pipeline_dbt_modelpipeline_artifacts/DE_pipeline_dbt_model_features.csvdbt model features
pipeline_dbt_project_summarypipeline_artifacts/DE_pipeline_dbt_project_summary.csvdbt project-level features
pipeline_dltpipeline_artifacts/DE_pipeline_dlt_features.csvdlt pipeline features
pipeline_filespipeline_artifacts/DE_pipeline_files.csvDiscovered pipeline files
pipeline_kedropipeline_artifacts/DE_pipeline_kedro_pipeline_features.csvKedro pipeline features
pipeline_luigipipeline_artifacts/DE_pipeline_luigi_task_features.csvLuigi task features
pipeline_prefectpipeline_artifacts/DE_pipeline_prefect_flow_features.csvPrefect flow features

The SQLite file DE_pipeline_artifacts.db is retained as a downloadable replication artifact and is not used by the Hugging Face Dataset Viewer.

Join Keys

  • —full_name or repo_name (owner/repo) for repository-level and process tables.
  • —repo_full_name for tables in pipeline_artifacts/.
  • —(repo_full_name, file_path) links DE_pipeline_files.csv to the pipeline feature tables.

Loading Data from Hugging Face

Each table can be loaded independently using its configuration name:

python
from datasets import load_dataset

repos = load_dataset("taher-ghaleb/DEPosit", "repositories")
commits = load_dataset("taher-ghaleb/DEPosit", "commits")
issues = load_dataset("taher-ghaleb/DEPosit", "issues")
ci = load_dataset("taher-ghaleb/DEPosit", "ci_services")

To load pipeline feature tables:

python
from datasets import load_dataset

airflow = load_dataset("taher-ghaleb/DEPosit", "pipeline_airflow")
dbt = load_dataset("taher-ghaleb/DEPosit", "pipeline_dbt_model")
prefect = load_dataset("taher-ghaleb/DEPosit", "pipeline_prefect")

Each configuration represents one logical table with a consistent schema. The tables are intended to be joined for analysis using the keys described above.

Scripts (Scripts/)

ScriptRole
collect_github_repos_for_SE4DE_topics.pyTopic-based repo discovery → Data/all_DE_repositories.csv
get_repo_commits_pr_issues_contributors_for_SE4DE_repos.pyCommits, PRs, issues, contributors
get_issue_closers_for_SE4DE_repos.pyIssue closer events
get_pr_reviews_graphql_for_SE4DE_repos.pyPR reviews / merges (GraphQL)
get_pr_reviews_rest_for_SE4DE_repos.pyPR reviews (REST alternative)
collect_github_repos_commits_per_ci_files.pyCommits on CI-related paths
get_gha_workflow_runs_for_SE4DE_repos.pyGitHub Actions run counts
compute_interactions_for_SE4DE_repos.pyDE_repo_interactions.csv
compute_user_autonomy_for_SE4DE_repos.pyDE_user_autonomy.csv
collect_pipeline_artifacts.pyDiscover and parse pipeline files
backfill_ci_gha_from_runs.pyAdd GitHub Actions to DE_ci_services.csv when runs exist but path detection missed them
github_api.py, github_tokens.pyShared API session and token loading
pipeline_parsers/Framework-specific parsers
pipeline_schema.sqlSQLite schema for pipeline collection

Quick start (analyze the shipped data)

powershell
py -m pip install -r requirements.txt

Open Data/filtered_DE_repositories.csv and join to other Data/DE_*.csv files on full_name / repo_name.

GitHub authentication (re-collection only)

Do not commit personal access tokens. Scripts load credentials from (in order):

  1. 1.--token / --tokens CLI flags (where supported)
  2. 2.Environment variables: GITHUB_TOKEN_SE4DE (preferred) or GITHUB_TOKEN
  3. 3.Optional local .env file — copy .env.example to .env and set your PAT
powershell
copy .env.example .env
# Edit .env and set GITHUB_TOKEN_SE4DE=<your-pat>

# Or set for the current shell only:
$env:GITHUB_TOKEN_SE4DE = "<your-pat>"

For heavy REST collection, rotate rate limits with comma-separated PATs:

powershell
$env:GITHUB_TOKENS = "<pat1>,<pat2>"

Example:

powershell
py Scripts/collect_pipeline_artifacts.py --token $env:GITHUB_TOKEN_SE4DE
py Scripts/get_gha_workflow_runs_for_SE4DE_repos.py --token $env:GITHUB_TOKEN_SE4DE

Typical collection order: topic discovery → development history → derived metrics → pipeline artifacts → optional backfill_ci_gha_from_runs.py.

Historical commit/PR text in Data/*.csv may contain third-party leaked tokens from upstream repos; these were redacted where detected. Re-run Scripts/redact_leaked_tokens_in_data.py after adding new CSV exports.

Layout

text
ReplicationPackage/
├── README.md
├── LICENSE
├── DATA_LICENSE
├── .env.example
├── requirements.txt
├── Data/
│   ├── filtered_DE_repositories.csv
│   ├── DE_*.csv
│   ├── DE_pipeline_artifacts.db
│   └── pipeline_artifacts/
└── Scripts/
    ├── collect_*.py, get_*.py, compute_*.py
    ├── collect_pipeline_artifacts.py
    ├── backfill_ci_gha_from_runs.py
    ├── github_api.py, github_tokens.py
    └── pipeline_parsers/

Citation

If you use DEPosit, please cite:

bibtex
@inproceedings{deposit2026,
  title     = {DEPosit: A Dataset of Open-Source Repositories for Data Engineering Pipelines},
  author    = {Gorjala, Bhavyalatha and Taher A. Ghaleb},
  booktitle = {Proceedings of the 42nd IEEE International Conference on Software Maintenance and Evolution (ICSME)},
  year      = {2026},
  organization={IEEE}
}