Importing Data¶
Issue Log Workbench imports spreadsheet rows as issue records.
File Requirements¶
| Format | Extension | Notes |
|---|---|---|
| CSV | .csv |
UTF-8 or UTF-8-BOM encoded; comma-delimited |
| Excel | .xlsx |
Multi-sheet workbooks supported; optionally specify a sheet name |
The first row must be a header row. Each subsequent row becomes one Issue object.
Note
If you have an older binary Excel workbook in .xls format, resave it as
.xlsx before importing. The current import path is designed around modern
Open XML workbooks.
Column Name Conventions¶
The importer recognises common column header variants automatically:
| Canonical Field | Auto-detected aliases |
|---|---|
title |
name, issue, subject |
category |
category |
issue_type |
type, issue type, issuetype |
status |
status, state |
priority |
priority, severity |
description |
description, desc, detail |
example |
example |
comment |
comment, comments |
markdown_notes |
notes, note, markdown_notes |
Column names are matched case-insensitively and leading/trailing spaces are stripped.
Status and Priority Normalisation¶
Common spreadsheet values are normalised automatically:
Status¶
| Spreadsheet value | Normalised to |
|---|---|
| open, new | imported |
| triaged | triaged |
| review, in_review | in_review |
| done, complete, completed, fixed | resolved |
| closed, wontfix | closed |
| (anything else) | imported |
Priority¶
| Spreadsheet value | Normalised to |
|---|---|
| critical, blocker, urgent | critical |
| high, major, p1 | high |
| medium, p2 | medium |
| low, minor, trivial, p3 | low |
| p0 | critical |
| (anything else) | unknown |
Using the Import UI¶
- Navigate to Import in the top navigation bar.
- Click Choose file and select your CSV or XLSX file.
- For XLSX files, optionally enter the Sheet Name.
- For CSV files, the column mapping section appears automatically with your detected headers.
- Columns that match a known alias are pre-mapped.
- Use the dropdowns to map unrecognised columns to the correct field.
- Select
— Skip —to ignore a column. - For XLSX files, the server still auto-detects common header names, but the browser-side mapping helper is more limited than it is for CSV.
- If needed, enter a manual JSON mapping in the provided text area.
- Example:
{"Issue Name":"title","Sev":"priority"} - Click Import.
- Review the result summary for created rows, skipped rows, warnings, and validation issues.
Using the API Directly¶
# Import a CSV file
curl -X POST http://127.0.0.1:8000/api/imports/ \
-F "file=@/path/to/issues.csv"
# Import a specific sheet from an XLSX file
curl -X POST http://127.0.0.1:8000/api/imports/ \
-F "file=@/path/to/issues.xlsx" \
-F "sheet_name=Sheet2"
# Provide a custom column map as JSON
curl -X POST http://127.0.0.1:8000/api/imports/ \
-F "file=@/path/to/issues.csv" \
-F 'column_map={"Issue Name":"title","Sev":"priority"}'
The import response includes:
created_countskipped_countwarningsrow_errorspreview
Duplicate Detection¶
If an imported row has a title that already exists in the database, a warning is added to the result but the row is still imported. You can review duplicates manually after import.
Skipped Rows¶
Rows are skipped if:
- All cells are empty or contain only whitespace
- No title value can be found after column mapping
The import result reports the skipped count and any row-level validation details that were captured.