Inspiration
I am a computer science student in Nigeria, and I know how it feels to ship a website and wonder if it is safe. A failed build is a wall of logs, a green check can hide risk, and nobody tells you what a pipeline costs in compute. incode is the release steward I wanted: simple answers, real evidence, and a person in control.
What it does
incode helps student developers decide whether a website change is ready to release.
- A merge request starts GitLab CI: build, tests, an npm security audit and a bundle size check.
- If a check fails, I start a GitLab Duo flow. It finds the cause and suggests a fix. It never runs on its own and never pushes to main.
- CI re-checks the fix. Only the pipeline decides whether it worked.
- A release report and a GitLab Pages dashboard show every check with links to its real job, plus security and bundle size results. Energy figures come from Eco CI, with method and caveats written down.
- The pipeline stops at a manual approve-release job. Nothing ships until a person approves.
How we built it
GitLab is the source of truth. A small Vite site with clearly labeled sample scholarship data is the thing being released. CI runs build, test, bundle-size, security-audit and release-report jobs, and Eco CI wraps the build and test jobs with data sharing turned off. The agentic work runs on the GitLab Duo Agent Platform: the Fix CI/CD Pipeline flow diagnosed a deliberate broken import in a merge request, and the Developer flow turned an issue into a merge request that added the security audit, the release report and the approval gate. I reviewed both. I scaffolded the project with Freebuff in a cloud terminal, all from my phone.
Challenges we ran into
- Duo's sandbox could not install npm packages, so its fixes and tests were marked untested. Real CI became the judge, and the report keeps what an agent claimed separate from what CI proved.
- Eco CI numbers are tiny and noisy. Identical runs varied by about 9% for the build job and about 25% for the test job, so I use medians of three runs and claim nothing inside the noise.
- An npm cache cut measured build compute but not total pipeline time, so I report both.
- Building from a phone meant fighting tokens, clipboards and YAML indentation.
Accomplishments that we're proud of
- A full working loop in public: failure, Duo diagnosis, human fix, CI re-check, manual approval gate.
- Honest sustainability numbers with a stated method and boundary, including where an optimization did not help.
- A report that says "not available" instead of inventing data.
- Shipping it from a phone.
What we learned
Agents propose and CI proves. Small energy figures only mean something with medians, a clear boundary and caveats. A good release tool should say less and show more evidence.
What's next for Incode
- Post-release health checks and configuration validation.
- More measured optimizations, such as a slimmer image and skipping jobs for docs-only changes.
- Real grid carbon intensity instead of Eco CI's constant.
- Testing with student developers to learn whether the plain-English reports really help.
Built With
- css
- eco-cl
- gitlab
- gitlab-ci/cd
- gitlab-duo-agent
- gitlab-pages
- html
- javascript
- node.js
- vite
Log in or sign up for Devpost to join the conversation.