Skip to main content

Git-Based Code Delivery Channel

Overview

Ship code directly from GitHub or GitLab instead of uploading files. When you submit work through a repository, the platform automatically runs quality checks - linting, security scans, and tests - so clients see verified code before they accept. This delivery channel keeps your development workflow intact while proving quality to clients.

Step-by-Step Guide

Submitting Code via Repository

  1. Navigate to Expert Submission - Go to /delivery/expertsubmission when you’ve completed work on a job.
  2. Choose Git Delivery - Select “Submit via Git Repository” instead of the traditional file upload option.
  3. Provide Repository Details - Enter your GitHub or GitLab repository URL. Specify either a branch name (like main or feature/mvp) or a specific commit SHA. For private repositories, you’ll provide a personal access token or deploy key.
  4. Wait for Quality Checks - The system clones your repository and runs automated checks. You’ll see real-time results for linting, security scanning, and any configured tests. Green indicators mean all checks passed.
  5. Client Reviews Your Code - The client can browse your repository structure and view code files through the platform interface at /review/clientreview. They see your quality check results before making an acceptance decision.
  6. Acceptance and Payment - When the client accepts your deliverable, escrow funds release to your account - identical to file-based deliveries.

Setting Up Private Repository Access

  1. Generate Access Token - In GitHub or GitLab, create a personal access token with read permissions for repositories.
  2. Provide Credentials - During submission, paste your access token when prompted. The platform encrypts and stores it securely.
  3. Manage Stored Credentials - View and revoke stored credentials at any time through your expert dashboard.

Handling Updates and Resubmissions

  1. Branch Submissions Auto-Update - If you submitted a branch reference, new commits automatically trigger re-cloning and fresh quality checks. Both you and the client receive notifications.
  2. Commit SHA Submissions Stay Locked - Submissions via specific commit SHA never auto-update. This creates immutable delivery snapshots.
  3. Resubmit After Rejection - If a client requests changes, create a resubmission with an updated branch or commit reference. The platform treats this as a fresh submission with new quality checks.

Common Questions

What repositories can I submit?
Both GitHub and GitLab repositories work. Public repositories need no special setup. Private repositories require you to provide a personal access token or deploy key with read permissions.
Do quality checks block my submission?
No. Failed quality checks don’t prevent submission - they provide transparency. The client sees all check results when reviewing your code. You can resubmit with fixes if needed.
What happens when I push new commits to a submitted branch?
The platform receives a webhook notification, automatically re-clones your repository, re-runs all quality checks, and notifies both you and the client. This only applies to branch submissions, not commit SHA submissions.
Can I submit a pull request instead of a full repository?
Yes. Provide a PR URL from GitHub or GitLab. The platform syncs PR metadata (title, description, comments) and displays it in the review interface. When the PR merges or closes, both parties receive notifications.
What if my repository gets deleted or credentials expire?
The platform gracefully handles access failures and notifies you immediately. You’ll need to provide updated credentials or a new repository reference to proceed.

Troubleshooting

“Repository clone failed” error
Check that your repository URL is correct and accessible. For private repositories, verify your access token has read permissions and hasn’t expired. Generate a fresh token if needed.
Quality checks taking too long
Checks longer than 10 minutes typically indicate large repositories or complex test suites. The system handles this automatically, but consider reducing repository size or optimizing test execution.
Webhook updates not triggering
Verify you submitted via branch reference, not commit SHA. Check that your submission hasn’t already been accepted by the client (accepted submissions lock and don’t auto-update). The platform enforces rate limits of 100 webhooks per minute per repository.
“Repository too large” rejection
The platform enforces a 500MB repository size limit to prevent resource exhaustion. Remove large binary files, use Git LFS for assets, or provide a smaller repository containing only deliverable code.
Client Review - Clients use this interface to browse your code, view quality check results, and make acceptance decisions. Understanding this flow helps you prepare better submissions. Escrow Dashboard - Track payment status for Git-based deliverables just like file uploads. Funds release automatically when clients accept your code submission. Time Tracking - Log hours spent on repository-based work. Time entries integrate with Git submissions to provide clients complete visibility into your development effort.