-
Notifications
You must be signed in to change notification settings - Fork 815
feat: add Tailwind CSS pipeline, tag-aware cloning & CI/CD #352
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
71f99ec
to
f5c2d42
Compare
ix-56h
reviewed
Jul 2, 2025
ix-56h
reviewed
Jul 2, 2025
ix-56h
reviewed
Jul 2, 2025
ix-56h
reviewed
Jul 2, 2025
ix-56h
reviewed
Jul 2, 2025
93c30fe
to
625cd19
Compare
625cd19
to
4180ae0
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Introduces a Tailwind CSS build pipeline, adds tag-aware clone and parsing logic, and enhances CI/CD workflows.
- Integrates Tailwind CSS into the frontend, extracts inline scripts into static JS modules, and sets up a Docker multi-stage build.
- Extends URL parsing and clone utilities to recognize Git tags alongside branches and commits.
- Revamps GitHub Actions and Docker workflows to build CSS, cache dependencies, publish artifacts, and deploy the Python package.
Reviewed Changes
Copilot reviewed 37 out of 51 changed files in this pull request and generated 1 comment.
Show a summary per file
File(s) | Description |
---|---|
tests/query_parser/*.py | Updated tests for tag field; removed outdated branch-fallback tests |
tests/conftest.py | Updated mocks to use new fetch_remote_branches_or_tags |
src/static/js/ | Extracted inline scripts into dedicated modules; added PostHog, navbar, git form, and git logic |
src/static/css/tailwind.css | Added custom utility classes and components |
src/server/templates/**/*.jinja | Moved inline JS to static files; updated layout for badges, favicons, and scripts |
src/server/query_processor.py | Changed error handling to return raw exception text |
src/gitingest/utils/git_utils.py | Renamed and enhanced branch/tag fetch with ref_type |
src/gitingest/utils/compat_func.py | Added Python 3.8 compatibility helpers (readlink , removesuffix ) |
src/gitingest/query_parser.py | Tag-aware URL parsing and new _configure_branch_or_tag |
src/gitingest/clone.py & entrypoint.py | Context-managed cloning with tag support |
src/gitingest/schemas/*.py | Extended models to include tag field |
src/gitingest/output_formatter.py | Updated symlink handling to use compatibility helper |
Dockerfile | Multi-stage build: CSS, Python build, and runtime image |
pyproject.toml & package.json | Updated dev dependencies, package-data, and build scripts |
.github/workflows/{ci,publish,scorecard}.yml | Enhanced caching, CSS build, artifact publishing, and security checks |
CONTRIBUTING.md & README.md | Documentation updates for CSS pipeline and contribution guide |
.pre-commit-config.yaml & dependabot.yml | Streamlined pre-commit config; added Dependabot grouping |
Comments suppressed due to low confidence (2)
tests/query_parser/test_query_parser.py:379
- The test for handling failed git fetch (test_parse_repo_source_with_failed_git_command) was removed, leaving fallback logic untested. Consider adding tests for branch and tag fallback when remote fetch fails.
@pytest.mark.asyncio
src/server/query_processor.py:105
- [nitpick] Returning raw exception messages may expose internal details and can be confusing. Consider sanitizing the message or mapping known errors to user-friendly messages.
return IngestErrorResponse(error=str(exc), repo_url=short_repo_url)
Frontend * introduce Tailwind CSS (package.json, tailwind.config.js, input CSS) * build site.css on-the-fly (removed tracked artefact; added .gitignore) * new favicon/icon assets & template cleanup * split JS into modular files Docker * replace single-stage image with 3-stage build • css-builder (Node 20 alpine) → compiles Tailwind • python-builder installs project with PEP 621 metadata • runtime image copies site-packages + compiled CSS, runs as uid 1000 CI/CD * ci.yml: cache by pyproject.toml, install with `pip -e .[dev]` * new frontend job builds/archives CSS after tests * publish.yml: build CSS first, then wheel/sdist; trusted OIDC upload * tidy scorecard workflow Core library * clone.py, parser & utils now resolve tags in addition to branches/commits * fallback branch/tag discovery when `git ls-remote` fails * compat\_func.py back-ports Path.readlink / str.removesuffix for Py 3.8 Tooling & docs * add `[dev]` extra, drop requirements-dev.txt & its pre-commit fixer * refreshed CONTRIBUTING.md with Node/Tailwind instructions * updated tests for new tag logic Large squash commit that wires a proper frontend asset pipeline, modernises the container & release workflows, and expands repository-ingest features to understand Git tags.
4180ae0
to
084f45f
Compare
cyclotruc
approved these changes
Jul 2, 2025
BareninVitalya
pushed a commit
to BareninVitalya/gitingest
that referenced
this pull request
Jul 6, 2025
…oderamp-labs#352) Frontend * introduce Tailwind CSS (package.json, tailwind.config.js, input CSS) * build site.css on-the-fly (removed tracked artefact; added .gitignore) * new favicon/icon assets & template cleanup * split JS into modular files Docker * replace single-stage image with 3-stage build • css-builder (Node 20 alpine) → compiles Tailwind • python-builder installs project with PEP 621 metadata • runtime image copies site-packages + compiled CSS, runs as uid 1000 CI/CD * ci.yml: cache by pyproject.toml, install with `pip -e .[dev]` * new frontend job builds/archives CSS after tests * publish.yml: build CSS first, then wheel/sdist; trusted OIDC upload * tidy scorecard workflow Core library * clone.py, parser & utils now resolve tags in addition to branches/commits * fallback branch/tag discovery when `git ls-remote` fails * compat\_func.py back-ports Path.readlink / str.removesuffix for Py 3.8 Tooling & docs * add `[dev]` extra, drop requirements-dev.txt & its pre-commit fixer * refreshed CONTRIBUTING.md with Node/Tailwind instructions * updated tests for new tag logic
BareninVitalya
pushed a commit
to BareninVitalya/gitingest
that referenced
this pull request
Jul 6, 2025
…oderamp-labs#352) Frontend * introduce Tailwind CSS (package.json, tailwind.config.js, input CSS) * build site.css on-the-fly (removed tracked artefact; added .gitignore) * new favicon/icon assets & template cleanup * split JS into modular files Docker * replace single-stage image with 3-stage build • css-builder (Node 20 alpine) → compiles Tailwind • python-builder installs project with PEP 621 metadata • runtime image copies site-packages + compiled CSS, runs as uid 1000 CI/CD * ci.yml: cache by pyproject.toml, install with `pip -e .[dev]` * new frontend job builds/archives CSS after tests * publish.yml: build CSS first, then wheel/sdist; trusted OIDC upload * tidy scorecard workflow Core library * clone.py, parser & utils now resolve tags in addition to branches/commits * fallback branch/tag discovery when `git ls-remote` fails * compat\_func.py back-ports Path.readlink / str.removesuffix for Py 3.8 Tooling & docs * add `[dev]` extra, drop requirements-dev.txt & its pre-commit fixer * refreshed CONTRIBUTING.md with Node/Tailwind instructions * updated tests for new tag logic
ix-56h
pushed a commit
to ix-56h/gitingest
that referenced
this pull request
Jul 7, 2025
…oderamp-labs#352) Frontend * introduce Tailwind CSS (package.json, tailwind.config.js, input CSS) * build site.css on-the-fly (removed tracked artefact; added .gitignore) * new favicon/icon assets & template cleanup * split JS into modular files Docker * replace single-stage image with 3-stage build • css-builder (Node 20 alpine) → compiles Tailwind • python-builder installs project with PEP 621 metadata • runtime image copies site-packages + compiled CSS, runs as uid 1000 CI/CD * ci.yml: cache by pyproject.toml, install with `pip -e .[dev]` * new frontend job builds/archives CSS after tests * publish.yml: build CSS first, then wheel/sdist; trusted OIDC upload * tidy scorecard workflow Core library * clone.py, parser & utils now resolve tags in addition to branches/commits * fallback branch/tag discovery when `git ls-remote` fails * compat\_func.py back-ports Path.readlink / str.removesuffix for Py 3.8 Tooling & docs * add `[dev]` extra, drop requirements-dev.txt & its pre-commit fixer * refreshed CONTRIBUTING.md with Node/Tailwind instructions * updated tests for new tag logic
filipchristiansen
added a commit
that referenced
this pull request
Jul 9, 2025
…352) Frontend * introduce Tailwind CSS (package.json, tailwind.config.js, input CSS) * build site.css on-the-fly (removed tracked artefact; added .gitignore) * new favicon/icon assets & template cleanup * split JS into modular files Docker * replace single-stage image with 3-stage build • css-builder (Node 20 alpine) → compiles Tailwind • python-builder installs project with PEP 621 metadata • runtime image copies site-packages + compiled CSS, runs as uid 1000 CI/CD * ci.yml: cache by pyproject.toml, install with `pip -e .[dev]` * new frontend job builds/archives CSS after tests * publish.yml: build CSS first, then wheel/sdist; trusted OIDC upload * tidy scorecard workflow Core library * clone.py, parser & utils now resolve tags in addition to branches/commits * fallback branch/tag discovery when `git ls-remote` fails * compat\_func.py back-ports Path.readlink / str.removesuffix for Py 3.8 Tooling & docs * add `[dev]` extra, drop requirements-dev.txt & its pre-commit fixer * refreshed CONTRIBUTING.md with Node/Tailwind instructions * updated tests for new tag logic
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
•
site.css
compiled in CI• New icon set + favicon pack
• Splits huge inline JS into
/static/js/*.js
modulesnode:20-alpine ➜ python:3.12-slim ➜ runtime
)• Copies compiled CSS into final layer
• Compat helpers for Py 3.8 (
readlink
,removesuffix
)ci.yml
caches by pyproject.toml, installs withpip -e .[dev]
• New frontend job builds & uploads CSS artefact
•
publish.yml
builds Tailwind ➜ wheel/sdist ➜ PyPI upload[dev]
replacesrequirements-dev.txt