Load pull or merge request
Status
Display Options
Diff results
About this tool
A client-side web tool visualizing .eln file metadata differences across GitHub pull requests/GitLab merge requests.
Please note that this tool is only a proof of concept and not production ready software. See the Git repo or the KITopen record for more information.
Detailed information
What this tool does
This tool visualizes changes to .eln files (the
ELN File Format)
across a GitHub Pull Request or GitLab Merge Request.
It extracts ro-crate-metadata.json from each changed .eln archive on both sides of the diff and shows you what actually changed.
How to use
- Paste a PR / MR URL into the input field and click Load & Diff (or press Enter).
- For private repositories, provide a personal access token (
ghp_…/github_pat_…for GitHub,glpat-…for GitLab). -
Use the Mask export noise checkboxes to hide UUID v4 values (unique identifiers looking like
c58319b2-348e-4743-b04a-60052db24113), dates, and datetimes that eLabFTW regenerates on every export; those values differ between exports even when nothing meaningful changed. Note that masking replaces every UUID v4 value/date/datetime with the same placeholder, so it can also hide a genuine change from one real UUID v4 value/date/datetime to another. If a diff looks unchanged with masking on, double-check with masking off before concluding nothing changed. - Click a diff header to collapse/expand that file.
URL parameters
All options (except token) can be set via query string, so you can bookmark or share links. The token deliberately cannot be set via the URL for security reasons.
| Parameter | Description |
|---|---|
pull_request or merge_request |
Enter the pull request or merge request URL to auto-load it on page open |
maskUUIDv4 |
Set to true (default) or false to control whether UUID v4 values should be masked |
maskDate |
Set to true (default) or false to control whether dates should be masked |
maskDatetime |
Set to true (default) or false to control whether datetimes should be masked |
mask |
Shortcut that sets maskUUIDv4, maskDate, and maskDatetime to true (default) or false |
Technical notes
- Everything runs client-side: no data leaves your browser (except API calls to GitHub/GitLab).
.elnfiles are ZIP archives. JSZip extractsro-crate-metadata.jsonin the browser.-
Diffs are computed with jsDiff (Myers algorithm;
diffJsonfor lines,diffWordsfor intra-line highlighting). Because ofdiffJson, two exports with the same properties in a different order diff as identical. This does not extend to arrays: if@graphlists the same entities in a different order, that still shows up as changed lines. - GitHub's API rate-limits unauthenticated requests to 60/hour. With a token it's 5,000/hour.
- Self-hosted GitLab instances may block CORS. The status log will show a hint if this happens.