Project Info
This project did not submit a demo video on Devpost.
Inspiration
As a project lead for ACM responsible for hosting various projects, each project (repo) is configured with continuous integration through Github Actions. These workflows are often copy pasted across multiple repositories. Adding, updating or deleting these workflows becomes cumbersome since there is no concept of "bulk updating" at an organization level. Instead, developers must manually configure them on a per repo basis introducing risk for inconsistencies and performance bottlenecks. Many companies, projects, teams often do not invest in continuous integration / continuous development resources due to the initial friction in getting started. Scaling CI/CD can be an intensive process, but GitFlow aims to provide a foot in the door by simplifying the process with LLM generated workflows and Github automation to plug the generated workflows directly into their repos. Hopefully, resulting in more stable development, happier engineers, and less technical debt.
What it does
Creates a single platform, from which developers can access ALL organizational workflows. They can view which repositories have them installed and can optionally install them as needs arise. Developers can also "bulk delete" workflows and quickly install new workflows with a click of a button. It would then create pull requests on a specified Github Repository with the generated workflow, reducing the required intervention. Using TogetherAI and Llama 2, Github Action Workflows are generated with an LLM to open the possibilities. Developers can also share their workflows with special share links, which provide viewers with the source code and meta data, which can be useful for releasing workflow configurations to the public while protecting the primary source code.
How we built it
Built with Next.js and TailwindCSS and powered by Bun, Convex, Together AI, and the Github API. Next.js and TailwindCSS provide the React framework to develop the frontend and backend. Convex provides a realtime datastore solution used to store the various workflows and their installations. Together AI is utilized to create the workflows from an LLM, although it may not have the best outcomes, developers can still tweak the configurations before finalizing a workflow.
Challenges we ran into
Connecting to the Github API was the most challenging part as there are multiple methods of connecting either PAT (Personal Access Tokens), Github Actions, GitHub CLI, or a GitHub App. Ultimately, the GitHub App was chosen as it would work with multiple organizations looking to benefit from GitFlow. Attempting to run SHELL/BASH commands on a Node.js environment was challenging as there were special packages and considerations. This would make accessing the repository difficult, since the GitHub App would create pull requests.
Accomplishments we're proud of
Explored Shadcn, a TailwindCSS based component library, which drastically accelerated the development process. Although verbose it provided the necessary functionalities. Understanding the Github API, having access to virtually every Git/Github operation is daunting, but also rewarding as GitFlow attempts to automate as much of the process as possible. Leaving the developers to focus their energy on more complicated problems.
What we learned
Sometimes the best way to learn was to try 3 different things and go with the best one. Attempting to get a concrete Youtube video or an article was impossible since each one did not fit the needs or was outdated. Playing around with the API gave me a deeper insight into how APIs are constructed, since Github provides both a GraphQL and REST API.
What's next
Flushing out the current functionalities would be the highest priority before introducing new features. There are surely ways to optimize/improve code written by a sleep deprived developer at 4AM 😅. The next biggest milestone for GitFlow will be to integrate Webhooks. This would allow push based notifications about particular Github events such as when a new repository was created or a pull request was deleted.
This is a Next.js project bootstrapped with create-next-app.
Getting Started
First, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Open http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.js. The page auto-updates as you edit the file.
This project uses next/font to automatically optimize and load Inter, a custom Google Font.
Learn More
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
Deploy on Vercel
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.
Analysis
View
Metric
- 38
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- JavaScriptIn code
- Next.jsIn code
- ReactIn code
- Tailwind CSSIn code
- TypeScriptIn code
6 of 6 appear in the indexed code.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
84 KB
Source files
48
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
shahdivyank/GitFlow
66 files · 3.3 MB · @ 1b80a48
Structure
Interface
31 files · 47%Screens, components and styles rendered to the user.
API & routing
3 files · 5%Request entry points: routes, handlers and controllers.
Application logic
12 files · 18%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- JavaScript84%
- TypeScript9%
- Markdown5%
- CSS2%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
package.json
npm · 29- @hookform/resolvers
- @octokit/rest
- @radix-ui/react-dialog
- @radix-ui/react-label
- @radix-ui/react-select
- @radix-ui/react-slot
- @radix-ui/react-toast
- @radix-ui/react-tooltip
- @uiw/codemirror-theme-atomone
- @uiw/react-codemirror
- class-variance-authority
- clsx
- convex
- lucide-react
- next
- octokit
- react
- react-dom
- +11 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.