- 
                Notifications
    
You must be signed in to change notification settings  - Fork 976
 
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.csscompiled in CI• New icon set + favicon pack
• Splits huge inline JS into
/static/js/*.jsmodulesnode:20-alpine ➜ python:3.12-slim ➜ runtime)• Copies compiled CSS into final layer
• Compat helpers for Py 3.8 (
readlink,removesuffix)ci.ymlcaches by pyproject.toml, installs withpip -e .[dev]• New frontend job builds & uploads CSS artefact
•
publish.ymlbuilds Tailwind ➜ wheel/sdist ➜ PyPI upload[dev]replacesrequirements-dev.txt