# 4d Publish Gitlab

> Publish a 4D project to GitLab using glab CLI. Use this skill when the user wants to publish, push, or share a 4D project to GitLab. Creates remote repository, initializes git, and pushes code. Supports gitlab.com and private/self-hosted GitLab instances with group/namespace support.

- Skill: `e-marchand/4d-publish-gitlab` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add e-marchand/4d-publish-gitlab`
- Raw SKILL.md: https://api.skillmd.com/api/skills/e-marchand/4d-publish-gitlab/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: Apache 2.0
- Author: e-marchand (https://skillmd.com/u/e-marchand)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/e-marchand/4d-publish-gitlab

---


# 4D Publish to GitLab

Publish a 4D project to GitLab with support for gitlab.com and self-hosted instances.

## Script

### publish.py - Publish to GitLab

Creates GitLab repository from 4D project.

**Interactive mode:**
```bash
python3 "<skill_path>/scripts/publish.py"
```

**Non-interactive mode (with arguments):**
```bash
python3 "<skill_path>/scripts/publish.py" --yes [options]
```

| Argument | Description |
|----------|-------------|
| `--yes`, `-y` | Non-interactive mode |
| `--public` | Create public repository (default: private) |
| `--description "..."`, `-d` | Repository description |
| `--hostname` | GitLab instance hostname (default: gitlab.com) |
| `--group`, `-g` | GitLab group/namespace for the repository |

**Examples:**
```bash
# Interactive
python3 publish.py

# Private repo on gitlab.com, no questions
python3 publish.py --yes

# Public repo with description
python3 publish.py --yes --public --description "My 4D component"

# Self-hosted GitLab instance
python3 publish.py --yes --hostname gitlab.example.com

# Under a group namespace
python3 publish.py --yes --group my-team

# Self-hosted + group
python3 publish.py --yes --hostname gitlab.example.com --group my-team --description "Shared component"
```

