Skip to content

Latest commit

 

History

1,765 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Galaxy NG

Maintainability Rating Build Status Coverage

A Pulp plugin to support hosting your very own Ansible Galaxy server.

Our mission is to help organizations share Ansible automation and promote a culture of collaboration around Ansible automation development. We'll be providing features that make it easy to create, discover, use and distribute Ansible automation content.

Tech Stack

  • Framework: Django + Django REST Framework, running as a Pulp plugin
  • Async Tasks: Pulp tasking system (RQ workers with resource locking)
  • Database: PostgreSQL
  • Configuration: Dynaconf (settings loaded from multiple sources with PULP_ env var prefix)
  • Access Control: Dual RBAC system (legacy Pulp access policies + django-ansible-base DAB RBAC)

To learn more about Pulp, view the Pulp project page.

Project Structure

galaxy_ng/
  app/
    models/              # Galaxy-native models (Namespace, User, Organization, etc.)
    api/
      v1/                # Legacy roles API
      v3/                # Main Galaxy API (collections, namespaces, EE, tasks)
      ui/v1/, ui/v2/     # UI-optimized endpoints
    access_control/      # Access policies and RBAC statements
    tasks/               # Async Pulp tasks (publishing, signing, sync, etc.)
    auth/                # Authentication backends
    settings.py          # Settings fragment (merged via Dynaconf)
    dynaconf_hooks.py    # Post-load conditional settings
  tests/
    unit/                # Unit tests (real DB, DRF APIClient)
    integration/         # Integration tests (require running compose stack)

For the full structure and architectural details, see AGENTS.md.

Documentation

Project documentation is hosted on Read The Docs.

OpenAPI Spec

View the latest version of the spec at https://galaxy.ansible.com/api/v3/swagger-ui/. (Directlink to JSON or YAML)

Static OpenAPI Spec for AAP

This repository provides a static, curated OpenAPI specification (galaxy.json) that contains user-facing endpoints with AI-friendly metadata.

The static spec differs from the dynamically generated spec above in that it:

  • Includes only user-facing endpoints (87 paths vs. 559 in the full spec)
  • Contains x-ai-description fields for AI/MCP tool integration
  • Serves as the source of truth for Hub's API specification in AAP

Code Coverage

This project uses both SonarCloud and Codecov for code coverage tracking:

SonarCloud

  • Public Coverage: Available at SonarCloud
  • Badge Integration: Coverage metrics displayed in README badges above
  • Configuration: Managed through sonar-project.properties

Codecov

  • Purpose: Internal coverage tracking
  • Coverage Configuration: codecov.yml (aligned with sonar-project.properties exclusions)
  • CI Integration: Coverage uploads automatically on main branch pushes
  • Flags: unit-tests flag tracks unit test coverage separately

Communication

Refer to the Communication section of the Contributor Guide to find out how to get in touch with us.

You can also find more information in the Ansible communication guide.

Documentation for AI Agents

This repository includes structured guidance for AI coding agents in AGENTS.md, covering architecture, conventions, and common pitfalls. Domain-specific guidelines live in docs/:

Guide Topics
Security Access policies, RBAC, authentication, input validation
API Contracts API versions, viewsets, serializers, backward compatibility
Database Model patterns, migrations, query conventions
Error Handling Exception handler, ValidationError usage, logging
Performance Task dispatch, resource locking, query optimization
Testing Unit/integration test structure, fixtures, markers
Integration Pulp tasks, signal handlers, external services

Contributing

Run it

$ docker compose -f dev/compose/standalone.yaml up

more details

Code of Conduct

Please see the official Ansible Community Code of Conduct.

License

GNU General Public License v2. View LICENSE for full text.

Releases

Used by

Contributors

Languages