{"id":50959835,"url":"https://github.com/mcruzdev/github-stars-raffle","last_synced_at":"2026-06-18T12:03:32.559Z","repository":{"id":364420561,"uuid":"1238143264","full_name":"mcruzdev/github-stars-raffle","owner":"mcruzdev","description":null,"archived":false,"fork":false,"pushed_at":"2026-06-12T23:28:54.000Z","size":22,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-13T01:14:29.936Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mcruzdev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-13T21:18:00.000Z","updated_at":"2026-06-12T23:28:59.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/mcruzdev/github-stars-raffle","commit_stats":null,"previous_names":["mcruzdev/github-stars-raffle"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/mcruzdev/github-stars-raffle","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcruzdev%2Fgithub-stars-raffle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcruzdev%2Fgithub-stars-raffle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcruzdev%2Fgithub-stars-raffle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcruzdev%2Fgithub-stars-raffle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mcruzdev","download_url":"https://codeload.github.com/mcruzdev/github-stars-raffle/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcruzdev%2Fgithub-stars-raffle/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34489200,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-18T02:00:06.871Z","response_time":128,"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":[],"created_at":"2026-06-18T12:03:31.903Z","updated_at":"2026-06-18T12:03:32.546Z","avatar_url":"https://github.com/mcruzdev.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GitHub Stars Raffle\n\nWeb app built with Quarkus that loads recent GitHub stargazers and lets you draw a random winner from the loaded participants.\n\nThe browser UI is served from the application itself. On page load it fetches the participant list from the backend, shows the loaded stargazers, and enables the raffle button only after data is available.\n\n## What the app does\n\n- Calls GitHub’s stargazers API for the configured repository.\n- Filters the results to include only recent stars.\n- Exposes the participant list through `/quarkus-flow/stargazers`.\n- Lets you reload participants and draw a winner in the browser.\n\n## Prerequisites\n\n- Java 25\n- Maven Wrapper (`./mvnw`)\n- Internet access to reach GitHub’s API\n- Docker if you want to build or run container images\n- GraalVM is optional for native builds; you can also use container-based native compilation\n\n## Configuration\n\nThe backend endpoint used by the workflow is configured in [`src/main/resources/application.properties`](src/main/resources/application.properties):\n\n```properties\ngithub.quarkiverse.quarkus-flow.url=https://api.github.com/repos/quarkiverse/quarkus-flow/stargazers?per_page=100\n```\n\nThis URL points to GitHub’s stargazers API for the `quarkiverse/quarkus-flow` repository.\n\n## Run in development mode\n\nStart the application with live reload:\n\n```shell\n./mvnw quarkus:dev\n```\n\nOpen the app at:\n\n- \u003chttp://localhost:8080\u003e\n- Quarkus Dev UI: \u003chttp://localhost:8080/q/dev/\u003e\n\n## Build and run the JVM application\n\nPackage the application:\n\n```shell\n./mvnw package\n```\n\nRun the packaged app:\n\n```shell\njava -jar target/quarkus-app/quarkus-run.jar\n```\n\n## Build a native executable\n\nBuild locally with GraalVM:\n\n```shell\n./mvnw package -Dnative\n```\n\nIf you do not have GraalVM installed, use a container-based native build:\n\n```shell\n./mvnw package -Dnative -Dquarkus.native.container-build=true\n```\n\nRun the generated executable:\n\n```shell\n./target/github-stars-raffle-1.0.0-SNAPSHOT-runner\n```\n\n## Docker\n\nThe repository includes Dockerfiles under `src/main/docker/` for JVM and native deployments.\n\n### JVM image\n\n```shell\n./mvnw package\ndocker build -f src/main/docker/Dockerfile.jvm -t quarkus/github-stars-raffle-jvm .\ndocker run -i --rm -p 8080:8080 quarkus/github-stars-raffle-jvm\n```\n\n### Native image\n\n```shell\n./mvnw package -Dnative\ndocker build -f src/main/docker/Dockerfile.native -t quarkus/github-stars-raffle-native .\ndocker run -i --rm -p 8080:8080 quarkus/github-stars-raffle-native\n```\n\n### Native micro image\n\n```shell\n./mvnw package -Dnative\ndocker build -f src/main/docker/Dockerfile.native-micro -t quarkus/github-stars-raffle-native-micro .\ndocker run -i --rm -p 8080:8080 quarkus/github-stars-raffle-native-micro\n```\n\n## How the raffle flow works\n\n1. The browser calls `/quarkus-flow/stargazers`.\n2. `StargazersResource` starts the workflow and returns the participant set as JSON.\n3. `StargazersWorkflow` requests GitHub’s stargazers API and filters the results to recent stars.\n4. The UI renders the loaded participants and enables the **Draw winner** button.\n5. Clicking **Draw winner** selects one of the loaded participants at random.\n\n## Learn more\n\n- Quarkus: \u003chttps://quarkus.io/\u003e\n- Native builds: \u003chttps://quarkus.io/guides/maven-tooling\u003e\n- Docker-based native builds: \u003chttps://quarkus.io/guides/building-native-image\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcruzdev%2Fgithub-stars-raffle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmcruzdev%2Fgithub-stars-raffle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcruzdev%2Fgithub-stars-raffle/lists"}