{"id":29104611,"url":"https://github.com/zfael/ro-topt","last_synced_at":"2025-10-28T05:40:26.374Z","repository":{"id":301567994,"uuid":"1009588066","full_name":"zfael/ro-topt","owner":"zfael","description":null,"archived":false,"fork":false,"pushed_at":"2025-06-27T14:16:24.000Z","size":36,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-27T15:25:28.662Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zfael.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-27T11:27:19.000Z","updated_at":"2025-06-27T14:16:19.000Z","dependencies_parsed_at":"2025-06-27T15:25:47.299Z","dependency_job_id":"e662c3c4-36d7-4f58-a4f6-8d931d68b830","html_url":"https://github.com/zfael/ro-topt","commit_stats":null,"previous_names":["zfael/ro-topt"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/zfael/ro-topt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zfael%2Fro-topt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zfael%2Fro-topt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zfael%2Fro-topt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zfael%2Fro-topt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zfael","download_url":"https://codeload.github.com/zfael/ro-topt/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zfael%2Fro-topt/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262514198,"owners_count":23322698,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-29T00:06:29.870Z","updated_at":"2025-10-28T05:40:26.228Z","avatar_url":"https://github.com/zfael.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ro-topt\n\nA Rust application with a GUI for generating TOTP (Time-based One-Time Password) codes.\n\n## Features\n\n- Enter a secret key and generate TOTP codes\n- Customize the number of digits (4-8)\n- Customize the token period (15-60 seconds)\n- Real-time countdown timer showing when the token will expire\n- Automatic token regeneration when expired\n\n## Continuous Integration\n\nThis project uses GitHub Actions for continuous integration and release automation:\n\n- Automatic versioning: Each push to the main branch increments the patch version.\n- Cross-platform builds: Executables are built for:\n  - Linux (x86_64)\n  - Windows (x86_64)\n  - macOS (Intel x86_64 and Apple Silicon ARM64)\n- GitHub Releases: Built binaries are automatically attached to GitHub releases.\n\n### Release Process\n\nWhen code is pushed to the main branch:\n1. A new tag is created, incrementing the patch version.\n2. A GitHub release is created with the new tag.\n3. The application is built for all supported platforms.\n4. Built executables are attached to the release.\n\nYou can also manually trigger a release from the GitHub Actions tab.\n\n## Usage\n\n1. Enter your secret key in the input field\n   - Example key: `JBSWY3DPEHPK3PXP`\n2. Adjust the number of digits (default: 6)\n3. Adjust the token period in seconds (default: 30)\n4. Click \"Generate TOTP\" to create your code\n5. The code will automatically refresh when it expires\n\n## Building and Running\n\n```bash\n# Clone the repository\ngit clone https://github.com/zfael/ro-topt.git\ncd ro-topt\n\n# Build and run\ncargo run --release\n```\n\n## Dependencies\n\n- [iced](https://github.com/iced-rs/iced) - A cross-platform GUI library for Rust\n- [totp-rs](https://github.com/constantoine/totp-rs) - TOTP implementation for Rust\n- [base32](https://github.com/andreasots/base32-rs) - Base32 encoding/decoding\n- [chrono](https://github.com/chronotope/chrono) - Date and time library for Rust","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzfael%2Fro-topt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzfael%2Fro-topt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzfael%2Fro-topt/lists"}