DEV Community

YASWITHA KONDLOPALLI
YASWITHA KONDLOPALLI

Posted on

Code Resurrector: Reviving Abandoned GitHub Repos with Gemma 4

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine

What I Built

Open source has a graveyard: tools that people loved, used for years, and then stopped maintaining. For "Ghost in the Machine," I built Code Resurrector, an app that digs up one of those abandoned projects and asks an open-weight model how to bring it back to life.

You paste the link to any public GitHub repo. The app reads its README, file list, last push date, open issues and dependency files. Then Gemma 4 writes a "revival report" that covers:

  • what the project did
  • why it probably stopped being maintained
  • what is likely broken today
  • a 5-step revival plan a beginner could follow
  • a modern alternative or improvement idea

I read the theme as honoring the past. Old code that once helped people deserves a proper look before it is forgotten, and the open-source angle was what drew me to this idea: a project about rescuing open-source tools should itself be built on open pieces.

Demo

Live app: https://code-resurrector-xuhqvu9h9fohuxycy9whth.streamlit.app/

Try it with https://github.com/mitsuhiko/pipsi, a pip script installer that was last pushed in 2019. Google's servers sometimes return a temporary error, so if you see one, just click the button again.

Screenshots of the app and a finished report are below.

Code

Code Resurrector

Paste a public GitHub repo URL for an abandoned project. Open-weight Gemma 4 reads the README and dependency files and writes a revival report: what the project did, why it likely died, what is probably broken, and a 5-step plan to bring it back.

Run it

pip install -r requirements.txt python -m streamlit run app.py

Get a free API key at aistudio.google.com and paste it in the sidebar. Never commit your key.

Built for the Hacktoberfest Open-Source AI Challenge, Week 4.




How I Built It

The app is a single Python file built with Streamlit. It works in four steps:

  1. It calls the GitHub API and collects facts about the repo: description, language, last push date, open issues, archived status, file names, and the README and dependency files.
  2. It sends those facts to Gemma 4 (gemma-4-26b-a4b-it, with gemma-4-31b-it as a fallback) through the Gemini API.
  3. The prompt tells the model to use only the facts it was given and to say when something is unknown instead of inventing it.
  4. If a call fails, the app retries and switches to the other Gemma model.

I'm a B.Tech student, and I built this by writing prompts to an AI assistant and running the code it gave me. I did not know how to build and deploy an app like this when the week started, so everything here was learned along the way.

What went wrong:

  • My first model name, gemma-3-27b-it, returned a 404 error. Gemma 3 had been replaced on the API, so I switched to Gemma 4.
  • My terminal said streamlit is not recognized. Running it as python -m streamlit run app.py fixed it.
  • Streamlit Cloud looked for streamlit_app.py instead of my app.py, so I had to correct the main file path before it would deploy.
  • Google's API sometimes returned a temporary 500 error. I added automatic retries so visitors don't have to see it.

I also learned a habit that matters: one of my screenshots showed an API key, so I created a new key and stored the deployed one in Streamlit Secrets, never in GitHub.

Why Does Open Innovation Matter?

Models can be swapped. Gemma 3 disappeared from the API while I was building. Because the app only needs "a Gemma model," moving to Gemma 4 was a one-line change. A tool tied to a single closed model would have had no such option.

The weights are open. My laptop has 8 GB of RAM and no GPU, so for this submission I used Gemma through a hosted API. But the same open-weight model can be downloaded and run on someone's own machine, so the idea does not depend on one company's service staying the same.

The topic fits. Open-source tools die when nobody can understand or fix them anymore. An open model that reads a dead project and explains how to revive it is a good match for that problem.

The Spirit of It

The moment it landed was my first real test. The pipsi repo's own README says it is no longer maintained. Gemma picked up that line, connected it to the 2019 last push, and pointed to pipx, the tool that replaced it. A project that ended quietly got a short, useful obituary and a way forward.

Prize Categories

Best Use of Gemma

Top comments (0)