A CLI to generate Flutter projects with DDD architecture
Project description
๐ Flutterator
A CLI to generate and manage Flutter projects with DDD (Domain-Driven Design) architecture
๐ Table of Contents
- What is Flutterator?
- Installation
- Quick Start
- Available Commands
create- Create new projectadd-domain- Add domain entity (model + infrastructure)add-page- Add simple pageadd-component- Add reusable component (form, list, single)list- List project resourcesconfig- Manage configuration
- Global Flags
- Configuration
- Generated Architecture
- Testing
- Troubleshooting
๐ What is Flutterator?
Flutterator is a command-line tool that automates Flutter project creation following Domain-Driven Design (DDD) architecture best practices.
Instead of manually creating dozens of files for each new feature (entity, repository, bloc, page, dto...), Flutterator generates them automatically with a consistent and professional structure.
๐ฏ Problem It Solves
Creating a new feature in a Flutter DDD project requires:
- ๐ Creating 4+ folders (model, infrastructure, application, presentation)
- ๐ Creating 10+ Dart files (entity, failure, repository interface, dto, bloc, event, state, page...)
- โ๏ธ Writing boilerplate code for each file
- ๐ Updating the router with new routes
- โฑ๏ธ Estimated time: 30-60 minutes per feature
With Flutterator:
flutterator add-domain --name todo --fields "title:string,done:bool"
flutterator add-component --name todo_list --type list
Time: 5 seconds โก
๐ก Who It's For
- Flutter developers using DDD/Clean Architecture
- Teams wanting to standardize code structure
- Freelancers wanting to speed up new project development
- Students wanting to learn DDD architecture with practical examples
๐ฆ Installation
Requirements
- Python 3.8+
- Flutter SDK (for generated projects)
Installation from Source (Recommended)
# 1. Clone the repository
git clone https://github.com/lorenzobusi/flutterator.git
cd flutterator
# 2. Create virtual environment
python -m venv venv
source venv/bin/activate # Linux/Mac
# or: venv\Scripts\activate # Windows
# 3. Install dependencies
pip install -e .
# 4. Verify installation
flutterator --help
Installation via pip (when published)
pip install flutterator
Verify Installation
flutterator --help
Expected output:
Usage: flutterator [OPTIONS] COMMAND [ARGS]...
๐ Flutterator - Flutter DDD Project Generator
...
๐ Quick Start
Scenario 1: New Project
# 1. Create a new Flutter project with DDD structure
flutterator create --name my_app
# 2. Enter the project
cd my_app
# 3. Add a complete feature
flutterator add-domain --name todo --fields "title:string,done:bool,priority:int"
flutterator add-component --name todo_list --type list
# 5. Run the project
flutter run
Scenario 2: Existing Project
# 1. Go to your existing Flutter project
cd my_existing_flutter_app
# 2. Add features
flutterator add-domain --name user --fields "name:string,email:string"
flutterator add-component --name user_list --type list
Scenario 3: Preview Before Creating
# Use --dry-run to see what will be created without modifying anything
flutterator add-domain --name product --fields "name:string,price:double" --dry-run
๐ Available Commands
| Command | Description | Typical Use |
|---|---|---|
create |
Create new Flutter DDD project | Project start |
add-domain |
Add domain entity (model, infrastructure) | New functionality |
add-component |
Add component (form, list, single) | New functionality |
add-page |
Add simple page | Static pages |
list |
List project resources | Overview |
config |
Manage configuration | Customization |
๐ง Command Details
flutterator create
Creates a new Flutter project with complete DDD architecture.
Syntax
flutterator create [OPTIONS]
Options
| Option | Type | Required | Default | Description |
|---|---|---|---|---|
--name |
string | โ | - | Project name (snake_case) |
--login |
flag | โ | false |
Include authentication |
Usage Modes
1. Complete command line:
flutterator create --name my_app --login
2. Interactive mode (if you don't specify --name):
flutterator create
Project name: my_app
Does the project have login? [y/N]: y
Examples
# Basic project
flutterator create --name my_app
# Project with authentication
flutterator create --name my_app --login
# Interactive mode (asks for name and options)
flutterator create
Generated Structure
my_app/
โโโ lib/
โ โโโ core/
โ โ โโโ model/ # Value objects, failures, errors
โ โ โ โโโ value_objects.dart
โ โ โ โโโ value_failures.dart
โ โ โ โโโ value_validators.dart
โ โ โโโ infrastructure/ # Firebase modules, helpers
โ โ โ โโโ firebase_injectable_module.dart
โ โ โ โโโ utils.dart
โ โ โโโ presentation/ # Common widgets
โ โ โโโ app_widget.dart
โ โโโ domain/ # Domain entities (shared business entities)
โ โโโ features/ # Features (use cases)
โ โ โโโ home/
โ โ โ โโโ presentation/
โ โ โ โโโ home_page.dart
โ โ โโโ splash/
โ โ โโโ presentation/
โ โ โโโ splash_page.dart
โ โโโ main.dart # Entry point
โ โโโ injection.dart # Dependency injection setup
โ โโโ router.dart # Routing with auto_route
โโโ pubspec.yaml # Flutter dependencies
โโโ analysis_options.yaml
โโโ ...
flutterator add-domain
Adds a domain entity (model + infrastructure only).
Domain entities are shared business entities that can be used by multiple features. They do NOT include application or presentation layers.
Syntax
flutterator add-domain [OPTIONS]
Options
| Option | Type | Required | Default | Description |
|---|---|---|---|---|
--name |
string | โ | - | Domain entity name |
--fields |
string | โ | - | Fields as name:type,name:type |
--folder |
string | โ | from config | Domain folder (default: "domain") |
--dry-run |
flag | โ | false |
Preview without creating |
--no-build |
flag | โ | false |
Skip flutter pub get |
--project-path |
string | โ | . |
Project path |
Usage Modes
Command line:
flutterator add-domain --name todo --fields "title:string,done:bool,priority:int"
Interactive mode:
flutterator add-domain --name todo
Domain entity name: todo
Fields (name:type,name:type): title:string,done:bool,priority:int
Examples
# Domain entity with fields
flutterator add-domain --name todo --fields "title:string,done:bool,priority:int"
# Interactive mode (will prompt for fields)
flutterator add-domain --name user
# Preview what will be created
flutterator add-domain --name product --fields "name:string,price:double" --dry-run
# Custom domain folder
flutterator add-domain --name note --fields "title:string" --folder shared/domain
Generated Structure
lib/domain/todo/
โโโ model/
โ โโโ todo.dart
โ โโโ todo_failure.dart
โ โโโ i_todo_repository.dart
โ โโโ value_objects.dart
โ โโโ value_validators.dart
โโโ infrastructure/
โโโ todo_dto.dart
โโโ todo_service.dart
โโโ todo_mapper.dart
โโโ todo_repository.dart
flutterator add-page
Adds a simple page without business logic.
Ideal for static pages like About, Settings, Privacy Policy, etc.
Syntax
flutterator add-page [OPTIONS]
Options
| Option | Type | Required | Default | Description |
|---|---|---|---|---|
--name |
string | โ | - | Page name |
--folder |
string | โ | from config | Destination folder |
--dry-run |
flag | โ | false |
Preview without creating |
--no-build |
flag | โ | false |
Skip flutter pub get |
--project-path |
string | โ | . |
Project path |
Usage Modes
Command line:
flutterator add-page --name settings
Interactive mode:
flutterator add-page
Page name: settings
Examples
# Settings page
flutterator add-page --name settings
# About page with preview
flutterator add-page --name about --dry-run
# Page in specific folder
flutterator add-page --name privacy --folder pages
Generated Structure
lib/features/settings/
โโโ settings_page.dart
Also updates:
lib/router.dart- Adds the new route
flutterator add-component
Adds a reusable component with optional BLoC.
Supports three types: single (single item), list (list with CRUD), and form (form with validation).
Syntax
flutterator add-component [OPTIONS]
Options
| Option | Type | Required | Default | Description |
|---|---|---|---|---|
--name |
string | โ | - | Component name |
--type |
choice | โ | - | Type: form, list, or single |
--fields |
string | โ | - | Form fields (requires --type form) |
--folder |
string | โ | features/components |
Destination folder |
--dry-run |
flag | โ | false |
Preview without creating |
--no-build |
flag | โ | false |
Skip flutter pub get |
Three Component Types
1. Single Component (--type single or default) - Widget that displays a single item loaded by ID:
flutterator add-component --name user_card
# or
flutterator add-component --name user_card --type single
2. List Component (--type list) - Widget that displays a list of items with complete CRUD operations:
flutterator add-component --name todo_list --type list
3. Form Component (--type form) - Form with validation and field management:
flutterator add-component --name login --type form --fields "email:string,password:string"
Usage Modes
Command line:
# Single component (default)
flutterator add-component --name user_card
# List component
flutterator add-component --name todo_list --type list
# Form component
flutterator add-component --name login --type form --fields "email:string,password:string"
Interactive mode:
flutterator add-component
Component name: todo_list
Select component type:
1. Single item (loads one item by ID)
2. List (shows all items with CRUD operations)
3. Form (form with validation)
Type (1-3): 2
Examples
# Single component (default)
flutterator add-component --name user_card
# List component with complete CRUD
flutterator add-component --name todo_list --type list
# Form component with fields
flutterator add-component --name login --type form --fields "email:string,password:string"
# Component in specific folder
flutterator add-component --name search_bar --folder shared/widgets
# Registration form
flutterator add-component --name registration --type form --fields "name:string,email:string,password:string"
Generated Structure
Single Component:
lib/user_card/
โโโ application/
โ โโโ user_card_bloc.dart
โ โโโ user_card_event.dart
โ โโโ user_card_state.dart
โโโ presentation/
โโโ user_card_component.dart
List Component:
lib/todo_list/
โโโ application/
โ โโโ todo_list_bloc.dart # BLoC with getAll, create, update, delete
โ โโโ todo_list_event.dart # loadRequested, createRequested, updateRequested, deleteRequested
โ โโโ todo_list_state.dart # initial, loading, loaded(List<Model>), error
โโโ presentation/
โโโ todo_list_component.dart # Widget with ListView and CRUD operations
Form Component:
lib/login/
โโโ application/
โ โโโ login_form_bloc.dart
โ โโโ login_form_event.dart
โ โโโ login_form_state.dart
โโโ presentation/
โโโ login_component.dart
flutterator list
Lists pages and domain models in the project.
Shows all pages parsed from router.dart and all domain models from the domain/ folder.
Syntax
flutterator list [OPTIONS]
Options
| Option | Type | Required | Default | Description |
|---|---|---|---|---|
--project-path |
string | โ | . |
Project path |
Examples
# List pages and models
flutterator list
Example Output
โญโโโโโโโโโโโโโโโโโโโโโโโฎ
โ ๐ Project: my_app โ
โฐโโโโโโโโโโโโโโโโโโโโโโโฏ
๐ Pages:
/home โ HomePage (lib/features/home/home_page.dart)
/ โ SplashPage (lib/features/splash/splash_page.dart)
/settings โ SettingsPage (lib/features/settings/settings_page.dart)
๐ฆ Domain Models:
todo (lib/domain/todo/model/todo.dart)
user (lib/domain/user/model/user.dart)
๐ฆ Features: todo/ โโโ model/ โ โโโ todo โ โโโ todo_failure โโโ application/ โ โโโ todo_bloc โโโ presentation/ โโโ todo_page
user/ โโโ model/ โ โโโ user โ โโโ user_failure ...
๐ Pages: settings/ (1 file) about/ (1 file)
๐งฉ Components: user_card/ (standard) login/ (form)
๐ค๏ธ Routes: /home โ HomePage /todo โ TodoPage /settings โ SettingsPage /user โ UserPage
---
### `flutterator config`
**Manages Flutterator configuration.**
Allows viewing or creating the configuration file.
#### Syntax
```bash
flutterator config [OPTIONS]
Options
| Option | Type | Description |
|---|---|---|
--show |
flag | Show current configuration |
--init |
flag | Create configuration file |
--project-path |
string | Project path |
Examples
# Show current configuration
flutterator config --show
# Create configuration file
flutterator config --init
Output --show
โญโโโโโโโโโโโโโโโโโโโโโโโ โ๏ธ Configuration โโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ โโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโ โ
โ โ Setting โ Value โ โ
โ โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ โ
โ โ Feature Folder โ features โ โ
โ โ Component Folder โ components โ โ
โ โ Page Folder โ โ โ
โ โ Use BLoC โ โ
โ โ
โ โ Use Freezed โ โ
โ โ
โ โ Auto Build Runner โ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโ โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
๐ Project config: /path/to/project/flutterator.yaml
๐ Global Flags
These flags are available for all add-* commands:
| Flag | Description | Example |
|---|---|---|
--dry-run |
Preview without creating files | --dry-run |
--no-build |
Skip flutter pub get and build_runner |
--no-build |
--project-path |
Specify project path | --project-path ../app |
--dry-run Example
$ flutterator add-domain --name todo --fields "title:string" --dry-run
$ flutterator add-component --name todo_list --type list --dry-run
Output:
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ ๐ DRY-RUN MODE โ
โ No files will be created โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
๐ง Would add feature: todo
Fields: id:string
๐ lib/todo/
โโโ ๐ model/
โ โโโ ๐ todo.dart
โ โโโ ๐ todo_failure.dart
โ โโโ ๐ i_todo_repository.dart
โ โโโ ...
โโโ ๐ infrastructure/
โ โโโ ...
โโโ ๐ application/
โ โโโ ...
โโโ ๐ presentation/
โโโ ๐ todo_page.dart
๐ Would update: lib/router.dart
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โน๏ธ Run without --dry-run to create these files
--no-build Example
# Faster: skip pub get and build_runner
flutterator add-domain --name todo --fields "title:string" --no-build
flutterator add-component --name todo_list --type list --no-build
# Then run manually when you want
flutter pub get
dart run build_runner build --delete-conflicting-outputs
โ๏ธ Configuration
Configuration Priority
Flutterator loads configuration from multiple sources (in priority order):
- ๐ด CLI Flags (highest priority) -
--folder features - ๐
flutterator.yamlin project - ๐ก
~/.flutteratorrcglobal (home directory) - ๐ข Defaults (lowest priority)
Create Configuration
# Create flutterator.yaml in project
flutterator config --init
flutterator.yaml Example
# ๐ Default folders for generated code
defaults:
feature_folder: "features" # lib/features/todo/
domain_folder: "domain" # lib/domain/note/ (shared entities)
component_folder: "features/components" # lib/features/components/user_card/
auto_run_build_runner: true # Runs build_runner after generation
# ๐จ UI Configuration (for future reference)
styling:
primary_color: "#2196F3"
secondary_color: "#FF9800"
~/.flutteratorrc Example (Global)
# Global configuration for all projects
defaults:
feature_folder: "features"
auto_run_build_runner: false # Disable for all projects
๐๏ธ Generated Architecture
Flutterator generates projects following DDD (Domain-Driven Design) architecture with layer separation:
lib/
โโโ core/ # ๐ง CORE - Shared code
โ โโโ model/ # Value objects, common failures
โ โ โโโ value_objects.dart
โ โ โโโ value_failures.dart
โ โ โโโ value_validators.dart
โ โโโ infrastructure/ # DI modules, helpers
โ โ โโโ firebase_injectable_module.dart
โ โโโ presentation/ # Common widgets
โ โโโ app_widget.dart
โ
โโโ domain/ # ๐๏ธ DOMAIN ENTITIES - Shared entities
โ โโโ auth/ # Auth entity (shared)
โ โ โโโ model/ # Entity, failures, repository interface
โ โ โ โโโ user.dart
โ โ โ โโโ user_profile.dart
โ โ โ โโโ i_auth_facade.dart
โ โ โโโ infrastructure/ # Repository implementation, DTOs
โ โ โโโ firebase_auth_facade.dart
โ โ โโโ user_profile_repository.dart
โ โ
โ โโโ note/ # Example: Note entity (shared)
โ โโโ model/
โ โ โโโ note.dart
โ โ โโโ i_note_repository.dart
โ โโโ infrastructure/
โ โโโ note_repository.dart
โ
โโโ features/ # ๐ฆ FEATURES - Specific use cases
โ โโโ auth/ # Auth feature (complete use case)
โ โ โโโ application/ # โ๏ธ APPLICATION LAYER
โ โ โ โโโ auth_bloc.dart
โ โ โ โโโ auth_event.dart
โ โ โ โโโ auth_state.dart
โ โ โโโ presentation/ # ๐จ PRESENTATION LAYER
โ โ โโโ login_page.dart
โ โ
โ โโโ notes/ # Example feature "note management"
โ โ # (uses domain/note)
โ โโโ application/ # โ๏ธ APPLICATION LAYER
โ โ โโโ notes_bloc.dart # BLoC (logic)
โ โ โโโ notes_event.dart # Events
โ โ โโโ notes_state.dart # States
โ โ
โ โโโ presentation/ # ๐จ PRESENTATION LAYER
โ โโโ notes_page.dart # UI
โ
โโโ shared/ # ๐งฉ SHARED - Shared components
โ โโโ widgets/
โ
โโโ main.dart # Entry point
โโโ injection.dart # ๐ Dependency Injection
โโโ router.dart # ๐ค๏ธ Routing (auto_route)
Why DDD?
| Benefit | Description |
|---|---|
| Testability | Each layer is isolated and testable |
| Maintainability | Organized and predictable code |
| Scalability | Easy to add new features |
| Team | Multiple developers can work in parallel |
๐ Flutter Generated Dependencies
Generated projects use these standard Flutter dependencies:
| Package | Purpose | Link |
|---|---|---|
flutter_bloc |
State management | pub.dev |
freezed |
Immutable classes | pub.dev |
injectable |
Dependency injection | pub.dev |
auto_route |
Declarative routing | pub.dev |
dartz |
Functional programming | pub.dev |
json_annotation |
JSON serialization | pub.dev |
๐งช Testing
# Activate virtual environment
source venv/bin/activate
# Run all tests
pytest tests/ -v
# Only fast tests (without E2E)
pytest tests/test_basic.py tests/test_integration.py -v
# Only E2E tests (requires Flutter SDK installed)
pytest tests/test_e2e_flutter.py -v
# With coverage
pytest tests/ --cov=. --cov-report=html
๐ง Troubleshooting
"Command not found: flutterator"
# Make sure you installed correctly
pip install -e .
# Or use python directly
python flutterator.py --help
flutterator --help shows only "create" (no add-domain, add-page, etc.)
You are using an old or different installation of Flutterator that only exposes the create command. The full CLI is a group of commands: create, add-domain, add-page, add-component, list, config.
Fix:
- Check which executable runs:
which flutterator - Use the CLI from this repo:
cd /path/to/flutterator # this repo root python3 flutterator.py --help
You should see "Usage: flutterator [OPTIONS] COMMAND [ARGS]..." and the list of commands. - Either:
- Option A: Remove or rename the old
flutteratorfrom your PATH, then install from this repo:pip install -e .(requires pip โฅ 21.3), or - Option B: Add an alias so the repoโs CLI wins:
alias flutterator='python3 /path/to/flutterator/flutterator.py'
(Replace/path/to/flutteratorwith the real path to this repo.)
- Option A: Remove or rename the old
"Not a valid Flutter project"
# Flutterator requires pubspec.yaml and lib/
# Make sure you're in a valid Flutter project
ls pubspec.yaml lib/
"rich import error" in IDE
The IDE might not recognize the virtual environment. Solution:
Cmd+Shift+Pโ "Python: Select Interpreter"- Select
./venv/bin/python
build_runner slow
# Use --no-build to skip build_runner
flutterator add-domain --name todo --fields "title:string" --no-build
flutterator add-component --name todo_list --type list --no-build
# Run build_runner once at the end
dart run build_runner build --delete-conflicting-outputs
Dart compilation errors
After generating code, run:
flutter pub get
dart run build_runner build --delete-conflicting-outputs
๐ค Contributing
- Fork the repository
- Create branch:
git checkout -b feature/new-feature - Commit:
git commit -m 'Add new feature' - Push:
git push origin feature/new-feature - Open Pull Request
Project Structure
flutterator/
โโโ flutterator.py # Main CLI
โโโ generators/
โ โโโ helpers/ # Helper functions
โ โ โโโ config.py # Configuration management
โ โ โโโ project.py # Project validation
โ โโโ static/templates/ # Jinja2 templates
โโโ tests/ # Test suite
โโโ docs/ # Documentation
๐ License
MIT License - see LICENSE
๐จโ๐ป Author
Lorenzo Busi - GetAutomation
๐ Acknowledgments
- Click - CLI framework
- Jinja2 - Template engine
- Rich - Terminal formatting
- Flutter - UI framework
- Reso Coder - DDD architecture inspiration
Generated with โค๏ธ by Flutterator
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file flutterator-3.1.4.tar.gz.
File metadata
- Download URL: flutterator-3.1.4.tar.gz
- Upload date:
- Size: 242.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
365b2c76608dd7393aa6faef77e778a69e8a50e7c6f138f934faebf856034876
|
|
| MD5 |
03c41c9d84387b18e49b57c4c200e1a2
|
|
| BLAKE2b-256 |
cf8c5bd92276d1f7d05e30652cd4da5167f20c16fcb699ddc5c12c392b64d7e2
|
Provenance
The following attestation bundles were made for flutterator-3.1.4.tar.gz:
Publisher:
publish-pypi.yml on lorenzo9598/flutterator
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
flutterator-3.1.4.tar.gz -
Subject digest:
365b2c76608dd7393aa6faef77e778a69e8a50e7c6f138f934faebf856034876 - Sigstore transparency entry: 1317590845
- Sigstore integration time:
-
Permalink:
lorenzo9598/flutterator@f0ef06013611f37734df5471ba129e704a7edc09 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/lorenzo9598
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@f0ef06013611f37734df5471ba129e704a7edc09 -
Trigger Event:
push
-
Statement type:
File details
Details for the file flutterator-3.1.4-py3-none-any.whl.
File metadata
- Download URL: flutterator-3.1.4-py3-none-any.whl
- Upload date:
- Size: 259.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
13f19a6837669086e8ce8195289c93feb4f1e4e26cf86f197ace5d867552ae7f
|
|
| MD5 |
f19a44eab4ee2ef769b872b6c153ec2b
|
|
| BLAKE2b-256 |
deb37431423cfde0dd85a6635620980676d3446bf53f0108a9190bd74adfc0e0
|
Provenance
The following attestation bundles were made for flutterator-3.1.4-py3-none-any.whl:
Publisher:
publish-pypi.yml on lorenzo9598/flutterator
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
flutterator-3.1.4-py3-none-any.whl -
Subject digest:
13f19a6837669086e8ce8195289c93feb4f1e4e26cf86f197ace5d867552ae7f - Sigstore transparency entry: 1317590935
- Sigstore integration time:
-
Permalink:
lorenzo9598/flutterator@f0ef06013611f37734df5471ba129e704a7edc09 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/lorenzo9598
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@f0ef06013611f37734df5471ba129e704a7edc09 -
Trigger Event:
push
-
Statement type: