{"id":22308464,"url":"https://github.com/42bytelabs/octoapp","last_synced_at":"2026-01-27T02:17:20.352Z","repository":{"id":252002097,"uuid":"839093928","full_name":"42ByteLabs/octoapp","owner":"42ByteLabs","description":"Octoapp is a Rust library for building GitHub Apps","archived":false,"fork":false,"pushed_at":"2025-04-17T22:39:53.000Z","size":50,"stargazers_count":7,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-24T11:58:47.473Z","etag":null,"topics":["github","github-app","rust"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/octoapp","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/42ByteLabs.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":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-08-07T00:45:29.000Z","updated_at":"2025-05-28T11:32:08.000Z","dependencies_parsed_at":"2025-04-17T23:42:46.994Z","dependency_job_id":"01c5f84e-4e1d-46fe-a2a9-6638707bea09","html_url":"https://github.com/42ByteLabs/octoapp","commit_stats":null,"previous_names":["42bytelabs/octoapp"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/42ByteLabs/octoapp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/42ByteLabs%2Foctoapp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/42ByteLabs%2Foctoapp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/42ByteLabs%2Foctoapp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/42ByteLabs%2Foctoapp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/42ByteLabs","download_url":"https://codeload.github.com/42ByteLabs/octoapp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/42ByteLabs%2Foctoapp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267112426,"owners_count":24038080,"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","status":"online","status_checked_at":"2025-07-26T02:00:08.937Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["github","github-app","rust"],"created_at":"2024-12-03T20:14:06.758Z","updated_at":"2026-01-27T02:17:20.346Z","avatar_url":"https://github.com/42ByteLabs.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- markdownlint-disable --\u003e\n\u003cdiv align=\"center\"\u003e\n\u003ch1\u003eOctoapp\u003c/h1\u003e\n\n[![GitHub](https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge\u0026logo=github\u0026logoColor=white)][github]\n[![Crates.io Version](https://img.shields.io/crates/v/octoapp?style=for-the-badge)][crates-io]\n[![Crates.io Downloads (recent)](https://img.shields.io/crates/dr/octoapp?style=for-the-badge)][crates-io]\n[![GitHub Stars](https://img.shields.io/github/stars/42ByteLabs/octoapp?style=for-the-badge)][github]\n[![GitHub Issues](https://img.shields.io/github/issues/42ByteLabs/octoapp?style=for-the-badge)][github-issues]\n[![Licence](https://img.shields.io/github/license/Ileriayo/markdown-badges?style=for-the-badge)][license]\n\n\u003c/div\u003e\n\u003c!-- markdownlint-restore --\u003e\n\n## Overview\n\n[Octoapp][crates-io] is a Rust library for building [GitHub Apps][docs-github-app].\nIt provides a simple interface for creating GitHub Apps and [handling webhook events][docs-github-webhooks].\n\n## ✨ Features\n\n- Focus on simplicity and ease of use.\n- Built-in support for handling GitHub webhook events.\n- Uses `octocrab` for interacting with the GitHub API.\n- Supports `rocket` web framework for handling incoming webhook events.\n  - feature: `rocket`\n\n## 🚀 Quick Start\n\nRun the following command to add `octoapp` to your project:\n\n```bash\ncargo add octoapp\n```\n\n## 🏃 Getting Started\n\n```rust\nuse anyhow::Result;\nuse octoapp::prelude::*;\n\n#[tokio::main]\nasync fn main() -\u003e Result\u003c()\u003e {\n    // [optional] Load .env file if it exists\n    // dotenvy::dotenv().ok();\n\n    // Load the configuration (from environment variables)\n    // Or, you can set the configuration manually\n    let config = OctoAppConfig::init()\n        .app_name(\"My App\")\n        .app_id(12345)\n        .client_id(\"client_id\")\n        .client_secret(\"client_secret\")\n        .webhook_secret(\"webhook_secret\")\n        .build()\n        .expect(\"Failed to build OctoAppConfig\");\n\n    println!(\"{}\", config);\n\n    // Create a new Octocrab instance\n    let octocrab = config.octocrab();\n\n    if let Ok(client) = octocrab {\n        let repos = client.issues(\"42ByteLabs\", \"octoapp\")\n            .list()\n            .creator(\"GeekMasher\")\n            .send()\n            .await?;\n    }\n\n    Ok(())\n}\n```\n\n## 📚 Documentation\n\nYou can find the documentation for this project on [docs.rs][docs].\n\n## ♥️  Maintainers / Contributors\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\n## 🦸 Support\n\nPlease create [GitHub Issues][github-issues] if there are bugs or feature requests.\n\nThis project uses [Semantic Versioning (v2)][semver] and with major releases, breaking changes will occur.\n\n## 📓 License\n\nThis project is licensed under the terms of the MIT open source license.\nPlease refer to [MIT][license] for the full terms.\n\n\u003c!-- Resources --\u003e\n\n[license]: ./LICENSE\n[crates-io]: https://crates.io/crates/octoapp\n[docs]: https://docs.rs/geekorm/latest/octoapp\n[semver]: https://semver.org/\n[github]: https://github.com/42ByteLabs/octoapp\n[github-issues]: https://github.com/42ByteLabs/octoapp/issues\n\n[docs-github-app]: https://docs.github.com/en/developers/apps\n[docs-github-webhooks]: https://docs.github.com/en/developers/webhooks-and-events/webhooks\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F42bytelabs%2Foctoapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F42bytelabs%2Foctoapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F42bytelabs%2Foctoapp/lists"}