Remote, read-only provider

Connect VCSAdmin Git

Browse and synchronize one VCSAdmin Git repository through API v1 without a clone, mirror, checkout, temporary directory, or local Git command.

Connect the repository

  1. Enable VcsadminGit in Redmine's repository settings.
  2. Open the target project's repository settings.
  3. Enter the complete repository-detail URL ending in /api/v1/scm/repositories/ID.
  4. Enter the VCSAdmin Basic Authentication username and password.
  5. Test the connection, then create the Redmine repository registration.

SCM Creator extracts the stable numeric repository ID, stores the normalized API base URL, and validates the identified repository directly. The repository name is display metadata; the numeric ID remains the mapping key.

Credential storage: configure Redmine's database encryption before saving provider passwords. SCM Creator uses Redmine's encrypted credential mechanism; do not place a password in the repository URL or in source-controlled configuration.
VCSAdmin Git repository API URL and credentials in Redmine settings with the server URL redacted
Connection setupEnter the complete repository URL, encrypted credentials and test the connection. The example URL is intentionally obscured.

Set conservative client limits

The shared vcsadmin_git section in config/scm.yml controls timeouts and bounded synchronization. Start with the shipped defaults, then change them only after comparing the Redmine error with the matching VCSAdmin API request.

production:
  vcsadmin_git:
    open_timeout: 5
    read_timeout: 20
    page_size: 25
    sync_batch_size: 25
    initial_import_batch_size: 50
    max_pages_per_sync: 3
    max_response_bytes: 6291456
    max_file_bytes: 1048576
    retry_count: 1
    verify_tls: true

Keep verify_tls: true in production. If an internal certificate is not trusted, install the correct CA certificate for the Redmine service instead of disabling verification. Restart all Redmine processes after changing this file.

Synchronization status

Redmine imports default-branch changesets in bounded, cursor-persisted batches. A database lock prevents overlapping synchronization. The repository settings show the current phase, last successful run, remote head and most recent error.

Verify the synchronized repository

After a successful synchronization, open the project Repository tab and confirm that the expected repository, branch, revision and latest changesets are available. The repository URL in the example is intentionally obscured.

Synchronized VCSAdmin Git repository displayed in Redmine with the server URL redacted
VerificationConfirm repository contents and latest revisions without exposing the remote server URL.
API limits are intentional. Large commits, trees or responses can be rejected by VCSAdmin resource limits. Use the request ID, repository ID and sanitized repository name from Redmine logs to correlate failures with VCSAdmin's private API log.

Interpret synchronization failures

401 / 403

Credentials are invalid or the API user lacks access.

Action: Retest Basic Authentication and the repository permission in VCSAdmin.

404

The URL, API version or numeric repository ID does not identify an accessible repository.

Action: Copy the complete API v1 repository-detail URL again.

413 commit_too_large

The commit contains more changed files than VCSAdmin permits for one API response.

Action: Use the request ID to confirm the limit in VCSAdmin. Raise scmApi.maxChangedFiles only after reviewing memory and response-size impact; the commit is not silently skipped.

TLS error

The certificate cannot be validated by the Redmine host.

Action: Install the correct CA chain and keep TLS verification enabled.

Timeout or response limit

The API did not respond within the client budget or returned too much data.

Action: Check VCSAdmin performance first, then adjust the narrowest applicable timeout or size limit.

Version 2.3.5 logs the sanitized remote repository display name together with the Redmine repository ID, stable remote repository ID, status, error code and request ID. This makes repeated scheduler failures attributable without exposing the API password.

Supported and unsupported operations

Available

  • Tree, history and text-file browsing
  • Branches, tags, commits and unified diffs
  • Bounded default-branch changeset import

Not available

  • Write operations or repository administration
  • Blame, archives or repository statistics
  • Binary download or arbitrary comparisons

For lock, migration and repeated-error checks, use the VCSAdmin troubleshooting checklist.