User Rating 0.0
Total Usage 0 times
Drop your db-1.0.json file here or click to browse Supports Bitbucket Cloud export format (max 50 MB)
Is this tool helpful?

Your feedback helps us improve.

About

Bitbucket's issue tracker export produces a db-1.0.json file containing issues, comments, attachments metadata, and version history. Losing access to a hosted repository means losing that issue history unless it has been converted to a portable format. This tool parses the exported JSON structure, joins each issue with its associated comments by matching issue_id fields, and generates a self-contained HTML document. The output requires no server, no database, and no runtime dependencies. It renders in any browser as a permanent archive. Note: the converter assumes Bitbucket Cloud export schema (version 1.0). Older on-premise exports may use different field names and will fail validation.

bitbucket json to html issue tracker export converter bitbucket issues

Formulas

The converter performs a join operation between the issues collection and the comments collection. For each issue Ik, the set of associated comments Ck is determined by matching the foreign key:

Ck = { c Comments | c.issue = Ik.id }

Comments within each set are sorted chronologically:

Cksorted = sort(Ck, created_on, ASC)

The total output size S in characters is approximately:

S nk=1 (Tk + |Ck|j=1 cj)

where Tk is the template overhead per issue (HTML wrapper, metadata fields) and cj is the rendered length of each comment. The content sanitization pass applies HTML entity escaping: & &, < <, > > before any markup rendering to prevent XSS in the output file.

Reference Data

JSON FieldTypeDescriptionRequiredExample Value
idintegerUnique issue identifierYes42
titlestringIssue title / summaryYesFix login redirect
statusstringCurrent stateYesopen, resolved, closed, on hold, invalid, duplicate, wontfix
prioritystringSeverity levelYestrivial, minor, major, critical, blocker
kindstringIssue classificationYesbug, enhancement, proposal, task
contentstringIssue body / description textNoMarkdown-formatted text
reporterstringUsername of creatorNojohn_doe
assigneestringAssigned userNojane_smith
created_onISO 8601Creation timestampYes2023-06-15T10:30:00Z
updated_onISO 8601Last modification timestampNo2024-01-20T14:00:00Z
comment_countintegerNumber of associated commentsNo7
comments (array)arrayNested or separate comment objectsNoArray of comment objects
comments[].idintegerComment identifierYes*101
comments[].issueintegerParent issue ID for joiningYes*42
comments[].contentstringComment body textNoPlain or markdown text
comments[].userstringComment authorNocontributor_x
comments[].created_onISO 8601Comment timestampNo2023-06-16T08:00:00Z
componentstringProject component labelNobackend, frontend, api
milestonestringTarget milestone or versionNov2.1.0
versionstringAffected software versionNov1.9.3
votesintegerCommunity vote countNo12
watchersintegerNumber of watchersNo5

Frequently Asked Questions

The tool expects Bitbucket Cloud's export format (version 1.0). The root object should contain arrays keyed as issues and comments (or comments nested within each issue object). Each issue must have at minimum an id, title, status, and created_on field. If your export uses a different root key (e.g., the entire file is a flat array), the tool attempts auto-detection by scanning for objects containing id and title properties.
Bitbucket exports often separate issues and comments into distinct arrays. The converter performs an in-memory join by matching each comment's issue field (an integer foreign key) against each issue's id. Comments with no matching issue ID are collected into an "orphaned comments" section at the end of the output. This join has O(n + m) complexity using a hash map lookup.
No. The generated HTML file is entirely self-contained. All CSS styles are embedded inline within a <style> tag. No external fonts, scripts, or CDN resources are referenced. The file renders correctly when opened from a local filesystem in any modern browser.
All user-generated content fields (title, body, comments) pass through HTML entity escaping before rendering. Characters <, >, &, and " are replaced with their entity equivalents. This prevents XSS injection in the output file. After escaping, basic Bitbucket markup patterns (bold with ** and italic with *) are converted to safe HTML tags.
The tool enforces a 50 MB client-side limit. Bitbucket exports for repositories with fewer than 10,000 issues typically fall well under this. Beyond 50 MB, the browser's JSON parser may run into memory constraints. For very large exports, consider splitting the JSON file by issue ID ranges before processing.
Yes. After uploading, the tool displays filter controls for status (open, resolved, closed, on hold, invalid, duplicate, wontfix), kind (bug, enhancement, proposal, task), and priority (trivial through blocker). Only issues matching active filters are included in the generated HTML file and the in-page preview.
Missing optional fields (assignee, component, milestone, version) render as an em-dash ( - ) in the output. Missing required fields trigger a validation warning in the toast notification area but do not halt processing. Issues without a title default to "Untitled Issue #[id]". Null comment content renders as "[empty comment]".