Releases: diverger/gh-obs-helper
Releases Β· diverger/gh-obs-helper
GH OBS Helper v1.2.0
Release Notes
π GH OBS Helper Release v1.2.0
π§ Changes
- MAJOR: Upgraded
esdk-obs-nodejsfrom 3.24.3 to 3.25.6 (latest stable version) - No Breaking Changes: All existing workflows remain fully compatible
π οΈ Usage Example
- name: Upload to OBS
id: upload
uses: diverger/[email protected]
with:
access_key: ${{ secrets.OBS_ACCESS_KEY }}
secret_key: ${{ secrets.OBS_SECRET_KEY }}
region: 'cn-north-4'
bucket: 'my-bucket'
operation: 'upload'
local_path: 'dist/**/*'
obs_path: 'gh-obs-helper/releases/v1.2.0/'
public_read: true
- name: Use uploaded file URLs
run: |
echo "First file URL: ${{ steps.upload.outputs.first_upload_url }}"
echo "All URLs: ${{ steps.upload.outputs.upload_urls }}"Full Changelog: v1.1.9...v1.2.0
GH OBS Helper v1.1.9
Release Notes
π GH OBS Helper Release v1.1.9
π― What's New
- Workflow Fixes: Repaired corrupted GitHub workflow configuration
- Path Consistency: Ensured all OBS paths use consistent repository folder structure
- CI/CD Stability: Improved workflow reliability and maintainability
π§ Changes
- Workflow Configuration: Fixed corrupted
test-upload.ymlworkflow inputs section - OBS Path Standardization: Confirmed all workflow files use "gh-obs-helper/" path prefix consistently
π Bug Fixes
- Critical Fix: Resolved corrupted YAML structure in
test-upload.ymlworkflow file - Input Validation: Fixed malformed workflow inputs that were preventing proper execution
- Path Consistency: Ensured single file upload test uses correct OBS path with repository prefix
π Known Issues
- No known issues in this release
- All workflows have been validated and are functioning correctly
π Migration Guide
- No breaking changes from v1.1.8
- All existing workflows remain fully compatible
- Workflow fixes are internal improvements that don't affect user-facing functionality
π οΈ Usage Example
- name: Upload to OBS
id: upload
uses: diverger/[email protected]
with:
access_key: ${{ secrets.OBS_ACCESS_KEY }}
secret_key: ${{ secrets.OBS_SECRET_KEY }}
region: 'cn-north-4'
bucket: 'my-bucket'
operation: 'upload'
local_path: 'dist/**/*'
obs_path: 'gh-obs-helper/releases/v1.1.9/'
public_read: true
- name: Use uploaded file URLs
run: |
echo "First file URL: ${{ steps.upload.outputs.first_upload_url }}"
echo "All URLs: ${{ steps.upload.outputs.upload_urls }}"π Contributors
- Thank contributors
- Mention community feedback
Full Changelog: v1.1.8...v1.1.9
GH OBS Helper v1.1.8
Release Notes
π GH OBS Helper Release v1.1.8
π― What's New
- Enhanced Documentation: Added professional badges for license, release, and build status to README.md
- CI/CD Improvements: Streamlined GitHub release workflow with modern action
- Repository Cleanup: Added automated workflow run cleanup for better repository maintenance
π§ Changes
- Documentation Updates: Updated README.md with status badges for better project visibility
- Package Metadata: Updated author information in package.json
- CI/CD Modernization: Switched from deprecated actions/create-release to softprops/action-gh-release
- Workflow Cleanup: Added automated cleanup of old workflow runs to maintain repository hygiene
π Bug Fixes
- Release Process: Improved GitHub release creation workflow reliability
- Repository Maintenance: Implemented automatic cleanup to prevent workflow run accumulation
π Known Issues
- No known issues in this release
- All existing functionality remains stable
π Migration Guide
- No breaking changes from v1.1.7
- All existing workflows remain fully compatible
- No code changes required for users
π οΈ Usage Example
- name: Upload to OBS
id: upload
uses: diverger/[email protected]
with:
access_key: ${{ secrets.OBS_ACCESS_KEY }}
secret_key: ${{ secrets.OBS_SECRET_KEY }}
region: 'cn-north-4'
bucket: 'my-bucket'
operation: 'upload'
local_path: 'dist/**/*'
obs_path: 'releases/v1.1.8/'
public_read: true
- name: Use uploaded file URLs
run: |
echo "First file URL: ${{ steps.upload.outputs.first_upload_url }}"
echo "All URLs: ${{ steps.upload.outputs.upload_urls }}"Full Changelog: v1.1.7...v1.1.8
GH OBS Helper v1.1.7
Release Notes
π GH OBS Helper Release v1.1.7
π― What's New
- Enhanced CI/CD Testing: Improved workflow testing with comprehensive URL output validation
- Workflow Organization: Renamed and restructured test workflows for better clarity
- Security Improvements: Enhanced secret management in CI/CD workflows
π§ Changes
- CI Workflow Updates: Enabled checksum validation for large file uploads in testing workflows
- Test Infrastructure: Added dedicated URL output testing and improved upload test results validation
- Security Configuration: Updated workflow files to use secure OBS region configuration via secrets
- Workflow Naming: Renamed
test-url-outputs.ymlworkflow totest-url-usage.ymlfor better clarity
π Bug Fixes
- Large File Upload Testing: Fixed checksum validation issues during large file upload tests
- Workflow Configuration: Resolved configuration inconsistencies in CI/CD test workflows
- Secret Management: Improved handling of sensitive configuration in automated tests
π Known Issues
- No known issues in this release
- All existing functionality remains stable
π Migration Guide
- No breaking changes from v1.1.6
- All existing workflows remain fully compatible
- No code changes required for users
Full Changelog: v1.1.6...v1.1.7
GH OBS Helper v1.1.6
Release Notes
π GH OBS Helper Release v1.1.6
π§ Changes
- Update confidentials in workflows
π οΈ Usage Example
- name: Upload to OBS
id: upload
uses: diverger/[email protected]
with:
access_key: ${{ secrets.OBS_ACCESS_KEY }}
secret_key: ${{ secrets.OBS_SECRET_KEY }}
region: 'cn-north-4'
bucket: 'my-bucket'
operation: 'upload'
local_path: 'dist/**/*'
obs_path: 'releases/v1.1.6/'
public_read: true
- name: Use uploaded file URLs
run: |
echo "First file URL: ${{ steps.upload.outputs.first_upload_url }}"
echo "All URLs: ${{ steps.upload.outputs.upload_urls }}"Full Changelog: v1.1.5...v1.1.6
GH OBS Helper v1.1.5
Release Notes
π GH OBS Helper Release v1.1.5
π Bug Fixes
- Update README.md
π οΈ Usage Example
- name: Upload to OBS
id: upload
uses: diverger/[email protected]
with:
access_key: ${{ secrets.OBS_ACCESS_KEY }}
secret_key: ${{ secrets.OBS_SECRET_KEY }}
region: 'cn-north-4'
bucket: 'my-bucket'
operation: 'upload'
local_path: 'dist/**/*'
obs_path: 'releases/v1.1.5/'
public_read: true
- name: Use uploaded file URLs
run: |
echo "First file URL: ${{ steps.upload.outputs.first_upload_url }}"
echo "All URLs: ${{ steps.upload.outputs.upload_urls }}"Full Changelog: v1.1.4...v1.1.5
GH OBS Helper v1.1.4
Release Notes
Copy this template to RELEASE_NOTES.md before creating a release tag to provide custom release notes.
π GH OBS Helper Release v1.1.4
π― What's New
- Minor bug fixes
π οΈ Usage Example
- name: Upload to OBS
id: upload
uses: diverger/[email protected]
with:
access_key: ${{ secrets.OBS_ACCESS_KEY }}
secret_key: ${{ secrets.OBS_SECRET_KEY }}
region: 'cn-north-4'
bucket: 'my-bucket'
operation: 'upload'
local_path: 'dist/**/*'
obs_path: 'releases/v1.1.4/'
public_read: true
- name: Use uploaded file URLs
run: |
echo "First file URL: ${{ steps.upload.outputs.first_upload_url }}"
echo "All URLs: ${{ steps.upload.outputs.upload_urls }}"π Contributors
- Thank contributors
- Mention community feedback
Full Changelog: v1.1.3...v1.1.4
GH OBS Helper v1.1.3
Release Notes
π GH OBS Helper Release v1.1.3
π― What's New
- Large File Upload Support: Enhanced multipart upload handling for files larger than 1GB
- Comprehensive Testing: Added large file upload testing to CI/CD workflow
- Bug Fixes: Fixed release script version placeholder handling
π§ Improvements
- Multipart Upload Optimization: Improved error handling and retry logic for large file uploads
- Testing Infrastructure: Added automated large file (1.2GB) upload testing to prevent regressions
- Release Process: Fixed double 'v' prefix bug in release notes generation
π Bug Fixes
- Fixed HTTP 403 errors when uploading files larger than 1GB
- Resolved release script bug causing double 'v' prefixes in version placeholders
- Improved error handling for multipart upload operations
π οΈ Usage Example
- name: Upload large files to OBS
id: upload
uses: diverger/[email protected]
with:
access_key: ${{ secrets.OBS_ACCESS_KEY }}
secret_key: ${{ secrets.OBS_SECRET_KEY }}
region: 'cn-north-4'
bucket: 'my-bucket'
operation: 'upload'
local_path: 'dist/**/*'
obs_path: 'releases/v1.1.3/'
public_read: true
checksum_validation: false # Recommended for large files
timeout: 1800000 # 30 minutes for large uploads
- name: Use uploaded file URLs
run: |
echo "First file URL: ${{ steps.upload.outputs.first_upload_url }}"
echo "All URLs: ${{ steps.upload.outputs.upload_urls }}"π Technical Details
- Multipart Upload: Automatically enabled for files >100MB
- Large File Support: Tested with files up to 1.2GB
- Enhanced Error Handling: Better retry logic for network issues
- CI/CD Testing: Comprehensive large file upload validation
Full Changelog: v1.1.2...v1.1.3
GH OBS Helper v1.1.2
Release Notes
π GH OBS Helper Release v1.1.2
π Critical Bug Fixes
π¨ Large File Upload Support
- FIXED: "Cannot create a string longer than 0x1fffffe8 characters" error when uploading files larger than ~536MB
- Enhanced: Switched from buffer-based to streaming-based uploads for better memory efficiency
- Improved: Now supports uploading files of any size without memory constraints
β‘ Performance Improvements
- Optimized: Memory usage for large file uploads by using
SourceFileparameter instead of loading files into memory - Enhanced: Streaming checksum calculation for large files to avoid memory issues
- Added: Large file detection (100MB threshold) for optimized processing
β±οΈ Timeout Configuration Fix
- FIXED: TypeScript compilation error with timeout configuration
- Enhanced: Complete OBSConfig interface with all SDK-supported properties
- Improved: Better type safety for timeout and retry settings
π§ Technical Improvements
- Updated upload mechanism to use streaming for all file sizes
- Added efficient MD5 calculation using file streams instead of loading entire files
- Updated
OBSConfiginterface to include all optional properties:timeout?: number- Request timeout in secondsmax_retry_count?: number- Maximum retry attemptsregion?: string- OBS region specificationssl_verify?: boolean- SSL verification settingspath_style?: boolean- Path-style access configuration
π οΈ Usage Example with Large Files
- name: Upload large files
uses: diverger/gh-obs-helper@v1
with:
access_key: ${{ secrets.OBS_ACCESS_KEY }}
secret_key: ${{ secrets.OBS_SECRET_KEY }}
region: 'cn-north-4'
bucket_name: 'my-bucket'
operation: 'upload'
source: 'large-files/**/*'
timeout: 600 # 10 minutes for large files
retry_count: 3
checksum_validation: trueπ οΈ Usage Example with Timeout
- name: Upload with custom timeout
uses: diverger/[email protected]
with:
access_key: ${{ secrets.OBS_ACCESS_KEY }}
secret_key: ${{ secrets.OBS_SECRET_KEY }}
region: 'cn-north-4'
bucket: 'my-bucket'
operation: 'upload'
local_path: 'large-files/**/*'
timeout: 600 # 10 minutes for large files
retry_count: 5π Migration Notes
- No breaking changes from v1.1.0
- Timeout functionality now works correctly without TypeScript errors
- All existing workflows remain compatible
π Previous Releases
For release notes of previous versions, see RELEASE_NOTES_ARCHIVE.md.
Full Changelog: https://github.com/diverger/gh-obs-helper/releases
GH OBS Helper v1.1.1
Release Notes
π GH OBS Helper Release v1.1.1
π Bug Fixes
β±οΈ Timeout Configuration Fix
- FIXED: TypeScript compilation error with timeout configuration
- Enhanced: Complete OBSConfig interface with all SDK-supported properties
- Improved: Better type safety for timeout and retry settings
π§ Technical Improvements
- Updated
OBSConfiginterface to include all optional properties:timeout?: number- Request timeout in secondsmax_retry_count?: number- Maximum retry attemptsregion?: string- OBS region specificationssl_verify?: boolean- SSL verification settingspath_style?: boolean- Path-style access configuration
π οΈ Usage Example with Timeout
- name: Upload with custom timeout
uses: diverger/[email protected]
with:
access_key: ${{ secrets.OBS_ACCESS_KEY }}
secret_key: ${{ secrets.OBS_SECRET_KEY }}
region: 'cn-north-4'
bucket: 'my-bucket'
operation: 'upload'
local_path: 'large-files/**/*'
timeout: 600 # 10 minutes for large files
retry_count: 5π Migration Notes
- No breaking changes from v1.1.0
- Timeout functionality now works correctly without TypeScript errors
- All existing workflows remain compatible
π GH OBS Helper Release v1.1.0
π― What's New
π URL Output Support
- NEW: Automatic URL generation for uploaded files
- Public files: Direct URLs for immediate access
- Private files: Pre-signed URLs with 1-hour validity
- Multiple outputs: Both individual and array formats
π€ Enhanced Outputs
upload_urls: JSON array of all uploaded file URLsfirst_upload_url: Direct access to the first uploaded file URL- Perfect for single file uploads and subsequent workflow steps
π οΈ Usage Examples
Basic Upload with URL Output
- name: Upload and get URL
id: upload
uses: diverger/[email protected]
with:
access_key: ${{ secrets.OBS_ACCESS_KEY }}
secret_key: ${{ secrets.OBS_SECRET_KEY }}
region: 'cn-north-4'
bucket: 'my-bucket'
operation: 'upload'
local_path: 'dist/app.js'
obs_path: 'releases/v1.1.0/'
public_read: true
- name: Use the uploaded file URL
run: |
echo "File available at: ${{ steps.upload.outputs.first_upload_url }}"
curl -I "${{ steps.upload.outputs.first_upload_url }}"π GH OBS Helper Release v1.0.0
π― What's New
- π₯ Download Functionality: Full download support with pattern matching and parallel processing
- π Advanced Object Listing: Efficient pagination for large buckets
- π― Pattern Filtering: Include/exclude patterns for downloads
- π Structure Preservation: Option to maintain directory structure during downloads
- π‘οΈ Checksum Validation: File integrity verification for downloads
π§ Features
- Download Operations: Download files from OBS buckets with wildcard support
- Parallel Downloads: Configurable concurrency for faster file retrieval
- Pattern Matching: Filter downloads using include/exclude patterns
- Retry Logic: Automatic retry for failed downloads with exponential backoff
- Dry Run Support: Preview download operations without executing
π Download Examples
Basic Download:
- name: Download files
uses: diverger/[email protected]
with:
access_key: ${{ secrets.OBS_ACCESS_KEY }}
secret_key: ${{ secrets.OBS_SECRET_KEY }}
region: 'cn-north-4'
bucket_name: 'my-bucket'
operation: 'download'
obs_path: 'releases/v1.0.0/'
local_path: 'downloaded/'Download with Patterns:
- name: Download specific files
uses: diverger/[email protected]
with:
access_key: ${{ secrets.OBS_ACCESS_KEY }}
secret_key: ${{ secrets.OBS_SECRET_KEY }}
region: 'cn-north-4'
bucket_name: 'my-bucket'
operation: 'download'
obs_path: 'backups/'
local_path: 'restored/'
include: '**/*.sql, **/*.json'
exclude: '**/*.tmp'
concurrency: 20π GH OBS Helper Release v1.0.0
π― What's New
- Standardized Parameter Names: Renamed
source/destinationtolocal_path/obs_pathfor clarity - Enhanced Build System: Automated build and release workflows
- Professional Development Setup: Complete CI/CD pipeline with TypeScript validation
π§ Changes
- BREAKING: Parameter names changed from
source/destinationtolocal_path/obs_path - Updated all workflow examples to use new parameter names
- Fixed action icon to use valid
upload-cloudicon
π Bug Fixes
- Fixed TypeScript compilation errors
- Corrected action.yml parameter validation
- Improved error handling in upload operations
π Migration Guide
If upgrading from earlier versions, update your workflow files:
Old:
with:
source: 'dist/**'
destination: 'releases/'New:
with:
local_path: 'dist/**'
obs_path: 'releases/'π οΈ Usage Example
- name: Upload to OBS
uses: diverger/[email protected]
with:
access_key: ${{ secrets.OBS_ACCESS_KEY }}
secret_key: ${{ secrets.OBS_SECRET_KEY }}
region: 'cn-north-4'
bucket: 'my-bucket'
operation: 'upload'
local_path: 'dist/**/*'
obs_path: 'releases/v1.0.0/'π Features
- High-performance uploads with unlimited file support
- Wildcard pattern matching (
*,**,?) - Parallel operations with configurable concurrency
- Support for upload, download, sync, and bucket operations
- Comprehensive error handling and retry logic
Full Changelog: v0.9.0...v1.0.0