Upload files to an archive.org item w/ Metadata
Version updated for https://github.com/Nick2bad4u/internet-archive-upload to version v2.0.0.
- This action is used across all versions by 5 repositories.
Action Type
This is a Composite action.
Go to the GitHub Marketplace to find the latest changes.
Action Summary
The Internet Archive Upload Action is a GitHub Action designed to automate the process of uploading files or directories to the Internet Archive (archive.org) with support for adding metadata to describe the content. It simplifies tasks like managing file uploads, handling multiple paths, and configuring metadata fields, making it ideal for archiving and preserving digital assets. The action provides key capabilities such as flexible file selection, detailed metadata configuration, and generating a direct link to the uploaded item’s details page.
What’s Changed
Release notes
🚨 Breaking changes
- Stricter metadata input validation is now enforced at runtime in upload.py.
- Enum-like fields now reject unsupported values:
closed_captioning:yes|nocolor:color|black and whitepage-progression:lr|rlsound:sound|silent
- Numeric/boolean-like metadata values are validated and normalized:
- booleans:
adaptive_ocr,betterpdf - integers:
fixed-ppi,ppi,year - float:
size
- booleans:
✨ New
- Added action output:
item-url→https://archive.org/details/<identifier>
- Added CI guardrails:
- Input parity checker (check_input_parity.py)
- Workflow to enforce action/input parity
- Workflow for
typesafegithub/github-actions-typing
- Added full action-types.yml coverage with richer schema metadata:
- enums, lists, integers, floats, and output typing
🔒 Hardening / reliability
- Composite steps use strict shell mode (
-euo pipefail). - Upload script now validates log level values (
DEBUG,INFO,WARNING,ERROR,CRITICAL). - Improved metadata handling consistency (including comma-separated field normalization).
📦 Dependency updates
- Confirmed latest
internetarchivesupport and pinned dependencies:internetarchive==5.8.0pre-commit==4.5.1
- Refreshed Pipfile.lock for Python 3.13 alignment.
📘 Documentation updates
- README refreshed for:
- modern workflow examples (
actions/checkout@v6) - SHA pinning guidance
- new
item-urloutput usage - typed/validated input behavior
- modern workflow examples (
- Added Google Tag Manager snippet for GitHub Pages docs site (
GTM-T8J6HPLF).
✅ Migration notes
- If you pass loose/legacy values for enum-like fields, update them to supported values listed above.
- If you used free-form booleans/numbers, ensure they are valid (
true/false, numeric strings, etc.). - Consumers can now use
${{ steps.<id>.outputs.item-url }}for downstream automation/notifications.