# Sentry Issue Export Tool
[繁體中文版 (Traditional Chinese)](README.zh-TW.md)
Export Sentry issues to plain text files for offline analysis and debugging.
## Features
- Export complete error messages and stack traces
- Support both Self-hosted Sentry and SaaS version
- Include Request information, Breadcrumbs, and Context data
- Display code snippets and variable values
- Debug mode to inspect full data structure
- Batch export multiple issues
## Installation
### Requirements
- Python 3.10+
- `requests` library (automatically installed)
### Setup
```bash
pip install export-sentry-issue
```
## Getting Required Information
### 1. Get Auth Token
1. Log in to Sentry
2. Navigate to: **Settings** → **Account** → **API** → **Auth Tokens**
3. Click **Create New Token**
4. Set permissions (minimum required):
- ✅ `event:read`
5. Copy the generated Token
### 2. Get Base URL
**SaaS version:**
```
https://sentry.io/api/0/projects/{org-slug}/{project-slug}/issues/
```
**Self-hosted version:**
```
https://your-sentry-domain.com/api/0/projects/{org-slug}/{project-slug}/issues/
```
**How to find org-slug and project-slug:**
- In Sentry UI, check the browser address bar
- Format: `https://sentry.io/organizations/{org-slug}/projects/{project-slug}/`
### 3. Get Issue IDs
- On the Issue detail page, the number at the end of the URL is the Issue ID
- Example: `https://sentry.io/organizations/my-org/issues/12345/` → Issue ID is `12345`
## Usage
### Recommended: Secure Configuration
For better security, save your credentials to a configuration file instead of passing them on the command line:
```bash
# Step 1: Initialize (one-time setup)
export-sentry-issue init
# You'll be prompted to enter:
# - Base URL: https://sentry.io/api/0/projects/my-org/my-project/issues/
# - Token: (hidden input, won't appear on screen)
# Step 2: Export issues using saved configuration
export-sentry-issue export --ids "12345,67890"
# Step 3: When done, revoke and delete the configuration
export-sentry-issue revoke
```
The configuration is saved to `~/.config/export-sentry-issue/config.json` with secure permissions (600).
**✓ Security Benefits:**
- Token never appears in shell history
- Token never appears in process list
- Token stored with secure file permissions (owner read/write only)
- Easy to revoke when no longer needed
### Alternative: Command-Line Parameters
You can still provide credentials via command-line for CI/CD or one-time usage:
```bash
export-sentry-issue export \
--base-url "https://sentry.io/api/0/projects/my-org/my-project/issues/" \
--ids "12345,67890" \
--token "your_sentry_token"
```
**⚠️ Security Warning:** Using `--token` on the command line may expose your token in:
- Shell history (e.g., `~/.bash_history`)
- Process list (visible to other users via `ps`)
- Log files and monitoring tools
### Alternative: Environment Variable
```bash
export SENTRY_TOKEN="your_sentry_token"
export-sentry-issue export \
--base-url "https://sentry.io/api/0/projects/my-org/my-project/issues/" \
--ids "12345,67890"
```
### Specify Output File
```bash
export-sentry-issue export \
--ids "12345" \
--output "critical_errors.txt"
```
### Debug Mode
When data is incomplete, use debug mode to inspect the raw data structure:
```bash
export-sentry-issue export \
--ids "12345" \
--debug
```
Debug mode will:
- Show available data fields
- Mark missing information
- Save raw JSON files (`debug_issue_{id}.json`)
## Commands
### `init` - Initialize Configuration
Securely save your Sentry credentials for future use.
```bash
export-sentry-issue init
```
**Features:**
- Interactive prompts for base URL and token
- Token input is hidden (not displayed on screen)
- Saves to `~/.config/export-sentry-issue/config.json`
- Sets secure file permissions (600 - owner read/write only)
- Verifies token validity before saving
- Allows overwriting existing configuration
### `export` - Export Issues
Export Sentry issues to a plain text file.
```bash
# Using saved configuration
export-sentry-issue export --ids "12345,67890"
# With custom output file
export-sentry-issue export --ids "12345" --output "errors.txt"
# Override saved configuration
export-sentry-issue export \
--base-url "https://sentry.io/api/0/projects/org/proj/issues/" \
--token "custom_token" \
--ids "12345"
```
**Parameters:**
| Parameter | Required | Description |
|-----------|----------|-------------|
| `--ids` | ✅ Yes | Issue ID list, comma-separated (e.g., `12345,67890,11111`) |
| `--base-url` | ❌ No* | Sentry API base URL |
| `--token` | ❌ No* | Sentry Auth Token |
| `--output` | ❌ No | Output file name (default: `sentry_issues_TIMESTAMP.txt`) |
| `--debug` | ❌ No | Enable debug mode, shows available fields and saves raw JSON |
*Required only if not configured via `init` command or environment variable
**Token Priority (highest to lowest):**
1. Command-line `--token` parameter
2. `SENTRY_TOKEN` environment variable
3. Saved configuration file (`~/.config/export-sentry-issue/config.json`)
### `revoke` - Revoke Token
Delete the saved configuration and get instructions to revoke the token from Sentry.
```bash
export-sentry-issue revoke
```
**Actions:**
- Displays current configuration details (masked token)
- Prompts for confirmation
- Deletes `~/.config/export-sentry-issue/config.json`
- Provides instructions to manually revoke token from Sentry UI
**Note:** You must manually revoke the token from Sentry:
1. Go to: **Settings** → **Account** → **API** → **Auth Tokens**
2. Find and delete the token
## Exported Content
The exported text file includes the following information:
### Basic Information
- Issue ID, Title, Status
- Occurrence count
- First/Last seen timestamps
- Permalink
### Detailed Information
- **Error Message**: Exception type and message
- **Stack Trace**: Complete call stack
- File paths and line numbers
- Function names
- Code snippets
- Variable values
- **Request Information**: URL, Method, Query String, Headers
- **Breadcrumbs**: Operation trail (including database queries)
- **User Information**: User ID, Email, IP
- **Context Information**: Browser, OS, Runtime
- **Tags**: Custom tags
- **Extra Information**: Additional debug data
## Examples
### Example 1: First Time Usage (Recommended)
```bash
# Initialize with your credentials
export-sentry-issue init
# Enter base URL: https://sentry.example.com/api/0/projects/my-org/web-app/issues/
# Enter token: (hidden input)
# Export a single issue
export-sentry-issue export --ids "349" --output "issue_349.txt"
# When done, clean up
export-sentry-issue revoke
```
### Example 2: Batch Export Multiple Issues
```bash
# Using saved configuration
export-sentry-issue export \
--ids "349,350,351,352,353" \
--output "batch_export.txt"
```
### Example 3: Self-hosted Sentry
```bash
# Initialize with self-hosted URL
export-sentry-issue init
# Enter base URL: https://your-sentry-domain.com/api/0/projects/mycompany/backend/issues/
# Enter token: (hidden input)
# Export issues
export-sentry-issue export --ids "100,101,102"
```
### Example 4: One-time Export (No Configuration)
```bash
# For CI/CD or one-time usage
export-sentry-issue export \
--base-url "https://sentry.example.com/api/0/projects/my-org/web-app/issues/" \
--ids "349" \
--token "sntrys_xxxxxxxxxxxxx" \
--output "issue_349.txt"
```
## Troubleshooting
### Error: 403 Forbidden
**Cause:** Insufficient token permissions
**Solution:**
1. Recreate Auth Token
2. Ensure the following permissions are checked:
- `event:read`
3. Verify you are a member of the project
### Error: 404 Not Found
**Cause:** Incorrect Base URL or Issue ID
**Solution:**
1. Check if Base URL format is correct
2. Verify the Issue ID exists
3. Validate org and project names in Sentry UI
### Missing Breadcrumbs or Request Information
**Cause:** Sentry SDK features not enabled
**Solution:**
Enable `send_default_pii` in your application:
```python
import sentry_sdk
sentry_sdk.init(
dsn="your-dsn",
send_default_pii=True, # Enable Request and User information
traces_sample_rate=1.0, # Enable performance tracing
)
```
**Use debug mode to inspect:**
```bash
export-sentry-issue export --base-url "..." --ids "123" --token "..." --debug
```
Check `debug_issue_123.json` to see what data is actually available.
### Token Expired
**Solution:**
1. Go to Sentry → Settings → API → Auth Tokens
2. Delete old Token
3. Create new Token
4. Update configuration: `export-sentry-issue init`
### Error: No token provided
**Cause:** No token found in command-line, environment variable, or configuration file
**Solution:**
- Run `export-sentry-issue init` to save your token, OR
- Use `--token` parameter, OR
- Set `SENTRY_TOKEN` environment variable
### Configuration file has insecure permissions
**Warning:** `Config file has insecure permissions!`
**Cause:** Configuration file is readable by other users
**Solution:**
```bash
chmod 600 ~/.config/export-sentry-issue/config.json
```
## Advanced Usage
### Tracking N+1 Query Issues
To effectively track N+1 queries, enable database query tracing in your application:
**Django Example:**
```python
import sentry_sdk
from sentry_sdk.integrations.django import DjangoIntegration
sentry_sdk.init(
dsn="your-dsn",
integrations=[DjangoIntegration()],
traces_sample_rate=1.0, # Track all transactions
send_default_pii=True,
)
```
Breadcrumbs will show each database query and its execution time.
### Performance Analysis
Enable Performance Monitoring for more detailed performance data:
```python
sentry_sdk.init(
dsn="your-dsn",
traces_sample_rate=1.0, # 100% sampling
profiles_sample_rate=1.0, # Enable profiling
)
```
### Automation Script
Wrap common commands in a shell script:
```bash
#!/bin/bash
# export_today_errors.sh
# Use saved configuration for security
export-sentry-issue export \
--ids "$1" \
--output "errors_$(date +%Y%m%d).txt"
```
Usage:
```bash
# First time: initialize configuration
export-sentry-issue init
# Then use the script
chmod +x export_today_errors.sh
./export_today_errors.sh "123,456,789"
```
### CI/CD Integration
For automated environments, use environment variables:
```yaml
# GitHub Actions example
- name: Export Sentry Issues
env:
SENTRY_TOKEN: ${{ secrets.SENTRY_TOKEN }}
run: |
export-sentry-issue export \
--base-url "https://sentry.io/api/0/projects/org/proj/issues/" \
--ids "123,456" \
--output "issues.txt"
```
## FAQ
**Q: Can I export all unresolved issues?**
A: This tool requires specific Issue IDs. To batch export, first list all issues using Sentry API, then extract IDs:
```bash
curl -H "Authorization: Bearer TOKEN" \
"https://sentry.io/api/0/projects/org/project/issues/?query=is:unresolved" \
| jq '.[].id' | tr '\n' ','
```
**Q: Which Sentry versions are supported?**
A: Supports Sentry 9.0+ and all SaaS versions.
**Q: Will the exported data contain sensitive information?**
A: May include:
- User Email and IP addresses
- Request Headers (Authorization and Cookie are filtered)
- Code snippets and variable values
Please handle exported files securely.
**Q: Can I export to JSON or CSV?**
A: Currently only plain text format is supported. For JSON, use the debug mode generated JSON files.
**Q: Where is my token stored?**
A: When you run `init`, the token is stored in `~/.config/export-sentry-issue/config.json` with file permissions set to 600 (owner read/write only).
**Q: Is it safe to use the `init` command?**
A: Yes. The `init` command uses secure practices:
- Token input is hidden (uses `getpass`)
- File stored with restrictive permissions (600)
- Token is validated before saving
- Warns if file permissions become insecure
**Q: Can I use this in a CI/CD pipeline?**
A: Yes. For CI/CD, use environment variables instead of the config file:
```bash
export SENTRY_TOKEN="${{ secrets.SENTRY_TOKEN }}"
export-sentry-issue export --base-url "..." --ids "..."
```
## License
MIT License
Raw data
{
"_id": null,
"home_page": null,
"name": "export-sentry-issue",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "debugging, error-tracking, export, sentry",
"author": null,
"author_email": "Jian-Long Huang <contact@jlhuang.com>",
"download_url": "https://files.pythonhosted.org/packages/7c/14/e8d221909598d74da1768e03d47830cc6c5453bfaa459cf7113661781fd0/export_sentry_issue-0.1.1.tar.gz",
"platform": null,
"description": "# Sentry Issue Export Tool\n\n[\u7e41\u9ad4\u4e2d\u6587\u7248 (Traditional Chinese)](README.zh-TW.md)\n\nExport Sentry issues to plain text files for offline analysis and debugging.\n\n## Features\n\n- Export complete error messages and stack traces\n- Support both Self-hosted Sentry and SaaS version\n- Include Request information, Breadcrumbs, and Context data\n- Display code snippets and variable values\n- Debug mode to inspect full data structure\n- Batch export multiple issues\n\n## Installation\n\n### Requirements\n\n- Python 3.10+\n- `requests` library (automatically installed)\n\n### Setup\n\n```bash\npip install export-sentry-issue\n```\n\n## Getting Required Information\n\n### 1. Get Auth Token\n\n1. Log in to Sentry\n2. Navigate to: **Settings** \u2192 **Account** \u2192 **API** \u2192 **Auth Tokens**\n3. Click **Create New Token**\n4. Set permissions (minimum required):\n - \u2705 `event:read`\n5. Copy the generated Token\n\n### 2. Get Base URL\n\n**SaaS version:**\n```\nhttps://sentry.io/api/0/projects/{org-slug}/{project-slug}/issues/\n```\n\n**Self-hosted version:**\n```\nhttps://your-sentry-domain.com/api/0/projects/{org-slug}/{project-slug}/issues/\n```\n\n**How to find org-slug and project-slug:**\n- In Sentry UI, check the browser address bar\n- Format: `https://sentry.io/organizations/{org-slug}/projects/{project-slug}/`\n\n### 3. Get Issue IDs\n\n- On the Issue detail page, the number at the end of the URL is the Issue ID\n- Example: `https://sentry.io/organizations/my-org/issues/12345/` \u2192 Issue ID is `12345`\n\n## Usage\n\n### Recommended: Secure Configuration\n\nFor better security, save your credentials to a configuration file instead of passing them on the command line:\n\n```bash\n# Step 1: Initialize (one-time setup)\nexport-sentry-issue init\n\n# You'll be prompted to enter:\n# - Base URL: https://sentry.io/api/0/projects/my-org/my-project/issues/\n# - Token: (hidden input, won't appear on screen)\n\n# Step 2: Export issues using saved configuration\nexport-sentry-issue export --ids \"12345,67890\"\n\n# Step 3: When done, revoke and delete the configuration\nexport-sentry-issue revoke\n```\n\nThe configuration is saved to `~/.config/export-sentry-issue/config.json` with secure permissions (600).\n\n**\u2713 Security Benefits:**\n- Token never appears in shell history\n- Token never appears in process list\n- Token stored with secure file permissions (owner read/write only)\n- Easy to revoke when no longer needed\n\n### Alternative: Command-Line Parameters\n\nYou can still provide credentials via command-line for CI/CD or one-time usage:\n\n```bash\nexport-sentry-issue export \\\n --base-url \"https://sentry.io/api/0/projects/my-org/my-project/issues/\" \\\n --ids \"12345,67890\" \\\n --token \"your_sentry_token\"\n```\n\n**\u26a0\ufe0f Security Warning:** Using `--token` on the command line may expose your token in:\n- Shell history (e.g., `~/.bash_history`)\n- Process list (visible to other users via `ps`)\n- Log files and monitoring tools\n\n### Alternative: Environment Variable\n\n```bash\nexport SENTRY_TOKEN=\"your_sentry_token\"\nexport-sentry-issue export \\\n --base-url \"https://sentry.io/api/0/projects/my-org/my-project/issues/\" \\\n --ids \"12345,67890\"\n```\n\n### Specify Output File\n\n```bash\nexport-sentry-issue export \\\n --ids \"12345\" \\\n --output \"critical_errors.txt\"\n```\n\n### Debug Mode\n\nWhen data is incomplete, use debug mode to inspect the raw data structure:\n\n```bash\nexport-sentry-issue export \\\n --ids \"12345\" \\\n --debug\n```\n\nDebug mode will:\n- Show available data fields\n- Mark missing information\n- Save raw JSON files (`debug_issue_{id}.json`)\n\n## Commands\n\n### `init` - Initialize Configuration\n\nSecurely save your Sentry credentials for future use.\n\n```bash\nexport-sentry-issue init\n```\n\n**Features:**\n- Interactive prompts for base URL and token\n- Token input is hidden (not displayed on screen)\n- Saves to `~/.config/export-sentry-issue/config.json`\n- Sets secure file permissions (600 - owner read/write only)\n- Verifies token validity before saving\n- Allows overwriting existing configuration\n\n### `export` - Export Issues\n\nExport Sentry issues to a plain text file.\n\n```bash\n# Using saved configuration\nexport-sentry-issue export --ids \"12345,67890\"\n\n# With custom output file\nexport-sentry-issue export --ids \"12345\" --output \"errors.txt\"\n\n# Override saved configuration\nexport-sentry-issue export \\\n --base-url \"https://sentry.io/api/0/projects/org/proj/issues/\" \\\n --token \"custom_token\" \\\n --ids \"12345\"\n```\n\n**Parameters:**\n\n| Parameter | Required | Description |\n|-----------|----------|-------------|\n| `--ids` | \u2705 Yes | Issue ID list, comma-separated (e.g., `12345,67890,11111`) |\n| `--base-url` | \u274c No* | Sentry API base URL |\n| `--token` | \u274c No* | Sentry Auth Token |\n| `--output` | \u274c No | Output file name (default: `sentry_issues_TIMESTAMP.txt`) |\n| `--debug` | \u274c No | Enable debug mode, shows available fields and saves raw JSON |\n\n*Required only if not configured via `init` command or environment variable\n\n**Token Priority (highest to lowest):**\n1. Command-line `--token` parameter\n2. `SENTRY_TOKEN` environment variable\n3. Saved configuration file (`~/.config/export-sentry-issue/config.json`)\n\n### `revoke` - Revoke Token\n\nDelete the saved configuration and get instructions to revoke the token from Sentry.\n\n```bash\nexport-sentry-issue revoke\n```\n\n**Actions:**\n- Displays current configuration details (masked token)\n- Prompts for confirmation\n- Deletes `~/.config/export-sentry-issue/config.json`\n- Provides instructions to manually revoke token from Sentry UI\n\n**Note:** You must manually revoke the token from Sentry:\n1. Go to: **Settings** \u2192 **Account** \u2192 **API** \u2192 **Auth Tokens**\n2. Find and delete the token\n\n## Exported Content\n\nThe exported text file includes the following information:\n\n### Basic Information\n- Issue ID, Title, Status\n- Occurrence count\n- First/Last seen timestamps\n- Permalink\n\n### Detailed Information\n- **Error Message**: Exception type and message\n- **Stack Trace**: Complete call stack\n - File paths and line numbers\n - Function names\n - Code snippets\n - Variable values\n- **Request Information**: URL, Method, Query String, Headers\n- **Breadcrumbs**: Operation trail (including database queries)\n- **User Information**: User ID, Email, IP\n- **Context Information**: Browser, OS, Runtime\n- **Tags**: Custom tags\n- **Extra Information**: Additional debug data\n\n## Examples\n\n### Example 1: First Time Usage (Recommended)\n\n```bash\n# Initialize with your credentials\nexport-sentry-issue init\n# Enter base URL: https://sentry.example.com/api/0/projects/my-org/web-app/issues/\n# Enter token: (hidden input)\n\n# Export a single issue\nexport-sentry-issue export --ids \"349\" --output \"issue_349.txt\"\n\n# When done, clean up\nexport-sentry-issue revoke\n```\n\n### Example 2: Batch Export Multiple Issues\n\n```bash\n# Using saved configuration\nexport-sentry-issue export \\\n --ids \"349,350,351,352,353\" \\\n --output \"batch_export.txt\"\n```\n\n### Example 3: Self-hosted Sentry\n\n```bash\n# Initialize with self-hosted URL\nexport-sentry-issue init\n# Enter base URL: https://your-sentry-domain.com/api/0/projects/mycompany/backend/issues/\n# Enter token: (hidden input)\n\n# Export issues\nexport-sentry-issue export --ids \"100,101,102\"\n```\n\n### Example 4: One-time Export (No Configuration)\n\n```bash\n# For CI/CD or one-time usage\nexport-sentry-issue export \\\n --base-url \"https://sentry.example.com/api/0/projects/my-org/web-app/issues/\" \\\n --ids \"349\" \\\n --token \"sntrys_xxxxxxxxxxxxx\" \\\n --output \"issue_349.txt\"\n```\n\n## Troubleshooting\n\n### Error: 403 Forbidden\n\n**Cause:** Insufficient token permissions\n\n**Solution:**\n1. Recreate Auth Token\n2. Ensure the following permissions are checked:\n - `event:read`\n3. Verify you are a member of the project\n\n### Error: 404 Not Found\n\n**Cause:** Incorrect Base URL or Issue ID\n\n**Solution:**\n1. Check if Base URL format is correct\n2. Verify the Issue ID exists\n3. Validate org and project names in Sentry UI\n\n### Missing Breadcrumbs or Request Information\n\n**Cause:** Sentry SDK features not enabled\n\n**Solution:**\n\nEnable `send_default_pii` in your application:\n\n```python\nimport sentry_sdk\n\nsentry_sdk.init(\n dsn=\"your-dsn\",\n send_default_pii=True, # Enable Request and User information\n traces_sample_rate=1.0, # Enable performance tracing\n)\n```\n\n**Use debug mode to inspect:**\n```bash\nexport-sentry-issue export --base-url \"...\" --ids \"123\" --token \"...\" --debug\n```\n\nCheck `debug_issue_123.json` to see what data is actually available.\n\n### Token Expired\n\n**Solution:**\n1. Go to Sentry \u2192 Settings \u2192 API \u2192 Auth Tokens\n2. Delete old Token\n3. Create new Token\n4. Update configuration: `export-sentry-issue init`\n\n### Error: No token provided\n\n**Cause:** No token found in command-line, environment variable, or configuration file\n\n**Solution:**\n- Run `export-sentry-issue init` to save your token, OR\n- Use `--token` parameter, OR\n- Set `SENTRY_TOKEN` environment variable\n\n### Configuration file has insecure permissions\n\n**Warning:** `Config file has insecure permissions!`\n\n**Cause:** Configuration file is readable by other users\n\n**Solution:**\n```bash\nchmod 600 ~/.config/export-sentry-issue/config.json\n```\n\n## Advanced Usage\n\n### Tracking N+1 Query Issues\n\nTo effectively track N+1 queries, enable database query tracing in your application:\n\n**Django Example:**\n```python\nimport sentry_sdk\nfrom sentry_sdk.integrations.django import DjangoIntegration\n\nsentry_sdk.init(\n dsn=\"your-dsn\",\n integrations=[DjangoIntegration()],\n traces_sample_rate=1.0, # Track all transactions\n send_default_pii=True,\n)\n```\n\nBreadcrumbs will show each database query and its execution time.\n\n### Performance Analysis\n\nEnable Performance Monitoring for more detailed performance data:\n\n```python\nsentry_sdk.init(\n dsn=\"your-dsn\",\n traces_sample_rate=1.0, # 100% sampling\n profiles_sample_rate=1.0, # Enable profiling\n)\n```\n\n### Automation Script\n\nWrap common commands in a shell script:\n\n```bash\n#!/bin/bash\n# export_today_errors.sh\n\n# Use saved configuration for security\nexport-sentry-issue export \\\n --ids \"$1\" \\\n --output \"errors_$(date +%Y%m%d).txt\"\n```\n\nUsage:\n```bash\n# First time: initialize configuration\nexport-sentry-issue init\n\n# Then use the script\nchmod +x export_today_errors.sh\n./export_today_errors.sh \"123,456,789\"\n```\n\n### CI/CD Integration\n\nFor automated environments, use environment variables:\n\n```yaml\n# GitHub Actions example\n- name: Export Sentry Issues\n env:\n SENTRY_TOKEN: ${{ secrets.SENTRY_TOKEN }}\n run: |\n export-sentry-issue export \\\n --base-url \"https://sentry.io/api/0/projects/org/proj/issues/\" \\\n --ids \"123,456\" \\\n --output \"issues.txt\"\n```\n\n## FAQ\n\n**Q: Can I export all unresolved issues?**\n\nA: This tool requires specific Issue IDs. To batch export, first list all issues using Sentry API, then extract IDs:\n\n```bash\ncurl -H \"Authorization: Bearer TOKEN\" \\\n \"https://sentry.io/api/0/projects/org/project/issues/?query=is:unresolved\" \\\n | jq '.[].id' | tr '\\n' ','\n```\n\n**Q: Which Sentry versions are supported?**\n\nA: Supports Sentry 9.0+ and all SaaS versions.\n\n**Q: Will the exported data contain sensitive information?**\n\nA: May include:\n- User Email and IP addresses\n- Request Headers (Authorization and Cookie are filtered)\n- Code snippets and variable values\n\nPlease handle exported files securely.\n\n**Q: Can I export to JSON or CSV?**\n\nA: Currently only plain text format is supported. For JSON, use the debug mode generated JSON files.\n\n**Q: Where is my token stored?**\n\nA: When you run `init`, the token is stored in `~/.config/export-sentry-issue/config.json` with file permissions set to 600 (owner read/write only).\n\n**Q: Is it safe to use the `init` command?**\n\nA: Yes. The `init` command uses secure practices:\n- Token input is hidden (uses `getpass`)\n- File stored with restrictive permissions (600)\n- Token is validated before saving\n- Warns if file permissions become insecure\n\n**Q: Can I use this in a CI/CD pipeline?**\n\nA: Yes. For CI/CD, use environment variables instead of the config file:\n```bash\nexport SENTRY_TOKEN=\"${{ secrets.SENTRY_TOKEN }}\"\nexport-sentry-issue export --base-url \"...\" --ids \"...\"\n```\n\n## License\n\nMIT License\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Export Sentry issues to plain text files for offline analysis and debugging",
"version": "0.1.1",
"project_urls": {
"Documentation": "https://github.com/jlhg/export-sentry-issue#readme",
"Issues": "https://github.com/jlhg/export-sentry-issue/issues",
"Source": "https://github.com/jlhg/export-sentry-issue"
},
"split_keywords": [
"debugging",
" error-tracking",
" export",
" sentry"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "fd0762439830091465aef23c324e5af95af939b52200b47300aaa72cfaab5784",
"md5": "5213b2bf3016b232cacf04de74cdbf23",
"sha256": "c545fb0e231437baa12209538485bbef96019285da1d2ae49f0a767cd8ff7b8e"
},
"downloads": -1,
"filename": "export_sentry_issue-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5213b2bf3016b232cacf04de74cdbf23",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 15115,
"upload_time": "2025-10-06T08:23:34",
"upload_time_iso_8601": "2025-10-06T08:23:34.373752Z",
"url": "https://files.pythonhosted.org/packages/fd/07/62439830091465aef23c324e5af95af939b52200b47300aaa72cfaab5784/export_sentry_issue-0.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7c14e8d221909598d74da1768e03d47830cc6c5453bfaa459cf7113661781fd0",
"md5": "13ed441fc8edf51e75fa4ec236d7cf80",
"sha256": "e5f4fdad498e1d84450d6a0036defb2c81f6b6c5b5a301c48087920b5b681f15"
},
"downloads": -1,
"filename": "export_sentry_issue-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "13ed441fc8edf51e75fa4ec236d7cf80",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 17063,
"upload_time": "2025-10-06T08:24:07",
"upload_time_iso_8601": "2025-10-06T08:24:07.568073Z",
"url": "https://files.pythonhosted.org/packages/7c/14/e8d221909598d74da1768e03d47830cc6c5453bfaa459cf7113661781fd0/export_sentry_issue-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-06 08:24:07",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "jlhg",
"github_project": "export-sentry-issue#readme",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "export-sentry-issue"
}