mirror of
https://github.com/Vale54321/schafkop-neu.git
synced 2025-12-13 10:39:33 +01:00
add basic github api
This commit is contained in:
1790
schafkopf-os/Cargo.lock
generated
1790
schafkopf-os/Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -2,3 +2,8 @@
|
|||||||
name = "schafkopf-os"
|
name = "schafkopf-os"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
tokio = { version = "1", features = ["full"] }
|
||||||
|
octocrab = { version = "0.47"}
|
||||||
|
axum = "0.8.6"
|
||||||
@@ -1,3 +1,36 @@
|
|||||||
fn main() {
|
use octocrab::{Octocrab, Result};
|
||||||
println!("Hello, world!");
|
|
||||||
|
use axum::{
|
||||||
|
routing::{get},
|
||||||
|
http::StatusCode,
|
||||||
|
Json, Router,
|
||||||
|
};
|
||||||
|
|
||||||
|
#[tokio::main]
|
||||||
|
async fn main() -> Result<()> {
|
||||||
|
// build our application with a route
|
||||||
|
let app: Router = Router::new()
|
||||||
|
// `GET /` goes to `root`
|
||||||
|
.route("/", get(root));
|
||||||
|
|
||||||
|
let listener = tokio::net::TcpListener::bind("0.0.0.0:3000").await.unwrap();
|
||||||
|
axum::serve(listener, app).await.unwrap();
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
|
async fn root() -> Result<Json<Vec<String>>, StatusCode> {
|
||||||
|
let gh = Octocrab::builder().build().map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?;
|
||||||
|
|
||||||
|
let owner = "Vale54321";
|
||||||
|
let repo = "schafkop-neu";
|
||||||
|
|
||||||
|
let mut tags: Vec<String> = vec![];
|
||||||
|
|
||||||
|
let page = gh.repos(owner, repo).releases().list().per_page(100).send().await.map_err(|_| StatusCode::BAD_GATEWAY)?;
|
||||||
|
|
||||||
|
for release in &page.items {
|
||||||
|
tags.push(release.tag_name.clone());
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(Json(tags))
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user