# Application Configuration

### Repository User Management

Repository Users configured in Codice are those who have permissions to access and manage Git repositories. These users maintain the necessary credentials (SSH and tokens) to securely interact with different repository providers (GitLab, GitHub, Bitbucket).

**Available Operations:**

* Create new users through "Add User" button
* Edit existing users via action menu
* Delete users via action menu
* View user details

**User Properties:**

* **Username** (required)
* **SSH Key** (required): Private SSH key for repository authentication, you must set the public key in the repository provider to grant access to the user
* **Access Token** (required): Access token for GitLab/GitHub/Bitbucket with read/write repository permissions
* **Description** (optional): Additional user information

<div align="left"><figure><img src="https://213654131-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNhg86cpRjvQWb111C5o5%2Fuploads%2FBnfnDg53yrxornIIPZCo%2Fusers.png?alt=media&#x26;token=d8e0ffd4-831f-4406-9f7b-65f54e97557d" alt="" width="563"><figcaption></figcaption></figure></div>

### Repository Management

Repository management allows you to configure the Git repositories in which you want to use Codice.

**Available Operations:**

* Add new repositories through "Add Repository" button
* Edit repository details via action menu
* Delete repositories via action menu
* View repository information

**Repository Properties:**

* **Name** (required): Repository name
* **Repository Type** (required): GitLab/GitHub/Bitbucket
* **Repository ID** (required): Unique identifier
  * Bitbucket: owner/projectId (e.g., "myorg/myproject")
    * Obtained directly from repository URL \
      ![](https://213654131-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNhg86cpRjvQWb111C5o5%2Fuploads%2F8urQ83NoucP6bBQdnloD%2Fimage.png?alt=media\&token=b54f9c87-4d05-4c52-975d-668aad4e2c8c)
  * GitLab: Numeric project ID (e.g., "123456")
    * Visible in project's main page: Settings > General > Project ID \
      ![](https://213654131-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNhg86cpRjvQWb111C5o5%2Fuploads%2FSGCKGpdeMcl2ju2YCEV7%2Fgitlab_id.png?alt=media\&token=1300c820-b383-4a5c-959b-6a34158c34c5)
  *   GitHub: Project ID from API response

      * Can be obtained through API:\
        <img src="https://213654131-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNhg86cpRjvQWb111C5o5%2Fuploads%2FKawBNQlUQgEOU5iC0IVv%2Fgithub_id.png?alt=media&#x26;token=aefc6a30-1c50-41c0-965a-5b722ab65536" alt="" data-size="original">

      ```bash
      curl -H "Authorization: token YOUR_TOKEN" \
           -H "Accept: application/vnd.github.v3+json" \
           https://api.github.com/repos/owner/repo
      ```
* **Owner**: Repository owner
* **SSH URL** (required): SSH clone URL
* **HTTP URL** (required): API URL from repository provider
  * Bitbucket Cloud: https://api.bitbucket.org
  * GitLab Cloud: https://gitlab.com
  * GitHub: https://api.github.com
  * On-premise: Use your local installation base URL (e.g., https://gitlab.mycompany.com or whatever you have configured in the repository provider)
* **Associated User** (required): User from users list (with permissions to access and write to the repository)

<div align="left"><figure><img src="https://213654131-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNhg86cpRjvQWb111C5o5%2Fuploads%2F5mJQFwv3DCqj4UnqE54R%2Frepository.png?alt=media&#x26;token=e59e68c7-eed9-4e99-afa8-513d34df6a7b" alt="" width="563"><figcaption></figcaption></figure></div>

### Maven Settings

Maven settings configuration allows you to manage internal dependencies through a custom settings.xml file. This configuration is essential for:

* Accessing private artifact repositories
* Managing internal dependencies
* Authenticating with your organization's Maven repositories

**Key Points:**

* Configure custom Maven settings through XML editor
* The configured user inside the settings.xml file must have proper permissions to access artifact repositories
* Save/Update Maven configuration
* Empty configuration will use system defaults

<div align="left"><figure><img src="https://213654131-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNhg86cpRjvQWb111C5o5%2Fuploads%2FJRrimLqfKkHi4h4eEMEX%2Fmaven_settings.png?alt=media&#x26;token=b71bc828-ca90-4074-9329-d4c39604f9b2" alt="" width="563"><figcaption></figcaption></figure></div>
