Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 2d41ec9

Browse files
committed
GIT-6062 add/edit nested repository
1 parent 12c20c7 commit 2d41ec9

6 files changed

+313
-0
lines changed
64.1 KB
Loading[フレーム]
42 KB
Loading[フレーム]
94.4 KB
Loading[フレーム]
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
---
2+
3+
title: Edit repository settings
4+
description:
5+
taxonomy:
6+
category: git-integration-for-jira-data-center
7+
8+
---
9+
10+
![](/wp-content/uploads/gij-gitcfg-actions-edit-repository-settings.png)
11+
12+
Click <img src='/wp-content/uploads/actions-icon.png' /> Action ➜ **Edit repository settings** to open the **Git Repository - Advanced** page where you can change the settings of the selected connected repository: `HOSTED`, `EXTERNAL` or `FOLDER`.
13+
14+
Utilize the options below for configuring repository settings:
15+
16+
| Option | Description | Integration |
17+
| :--- | :--- | :--- |
18+
| _**Display Name**_ | This is the alias that will appear in the Repository/Integration column. | HOSTED EXTERNAL FOLDER |
19+
| _**Key**_ | This is the key name for this repository connection. | HOSTED |
20+
21+
&nbsp;
22+
23+
#### Cloned repository root
24+
25+
| Option | Description | Integration |
26+
| :--- | :--- | :--- |
27+
| _**Absolute Repository Root**_ | This is the calculated absolute path of the clone repository root on the same machine as Jira. | HOSTED EXTERNAL FOLDER |
28+
| _**Clone root location**_ | Set to automatically managed or manually configured by Jira admin. | HOSTED EXTERNAL FOLDER |
29+
| _**Repository Root**_ | This is the path to a clone of the repository. | HOSTED EXTERNAL |
30+
31+
&nbsp;
32+
33+
#### Repository Settings
34+
35+
| Option | Description | Integration |
36+
| :--- | :--- | :--- |
37+
| _**Folder depth**_ | The default tracked folder depth value is 1. For GitLab hashed storage support, our recommended setting is 3.<br><br>See [GitLab docs on Hashed Storage](https://docs.gitlab.com/ee/administration/repository_storage_paths.html) for detailed information. | FOLDER |
38+
| _**Enable Fetches**_ | Set to either hosted at remote server or hosted on the same server as Jira. | EXTERNAL |
39+
| _**Main Branch**_ | Set the main branch. Default is `master`. | HOSTED EXTERNAL |
40+
| _**Use HTTP(S) Authentication**_ | If this repository connection supports HTTP(S) authentication, turn on this feature and enter the required username and password credentials here. | EXTERNAL |
41+
| _**SSL Verify**_ | Enable/Disable. If set to `Disabled`, the Git Integration for Jira app will ignore verification of SSL certificates when connecting to a remote Git server. | EXTERNAL |
42+
| _**TrustFolderStat**_ | When this setting is set to `False`, the objects/pack folder will always be scanned to check for new pack files. If set to `True`, the `last-modified` attribute of the folder will be used instead to check the folder for modifications.<br><div class="bbb-callout bbb--info"><div class="irow"><div class="ilogobox"> <span class="logoimg"></span></div><div class="imsgbox">The default value for Jira Server is <code>True</code>. For Jira Data Center, it's <code>False</code>.</div></div></div> <div class="bbb-callout bbb--note"><div class="irow"><div class="ilogobox"><span class="logoimg"></span></div><div class="imsgbox">If your repository is stored on a network share, it is highly recommended to set this option to <code>False</code>.</div></div></div> | HOSTED EXTERNAL FOLDER |
43+
| _**Advanced: Revision Indexing and Fetch refspec**_ | Set Revision Indexing and Fetch refspec settings as desired.<br><br>**Revision indexing** <br>This option turns on the memory cache which is used when list of commits are displayed. Select if revision indexing will index and link to any mentioned issue keys in the revision history or not.<br><br>**Fetch refspec** <br>Git refspecs contain patterns mapped as references from the remote to the local repository. The first two refspec options are required. The rest of the options are optional.<br><br>For more information, see <a href='https://git-scm.com/book/en/v2/Git-Internals-The-Refspec' target='_blank'><b>Git Internals – The Refspec</b></a>. | EXTERNAL FOLDER |
44+
| _**Repository Browser**_ | Enabled/Disabled. When `Enabled`, it allows users to view Git repositories of configured projects. For more information, see [Repository Browser](/git-integration-for-jira-data-center/repository-browser-gij-self-managed). | HOSTED EXTERNAL FOLDER |
45+
| _**Tags**_ | Set whether to show all tags or show on tags with matching regex pattern. For more information on git tags, see [Git tags](/git-integration-for-jira-data-center/git-tags-gij-self-managed). | HOSTED EXTERNAL FOLDER |
46+
| _**Project Permissions: Restrict to projects**_ | The default setting is **Associate with all projects**. You can restrict access to the Repository Browser and Git Commit tabs (Advanced) for the selected repository by setting the project associations. | HOSTED EXTERNAL FOLDER |
47+
| _**Source Code Diff Viewing**_ | Allows users to view the diff by commit and file. | HOSTED EXTERNAL FOLDER |
48+
| _**Smart Commits**_ | Allows the users to use the smart commits feature. | HOSTED EXTERNAL FOLDER |
49+
| _**Commit Message Validation**_ | Turn this setting `On` to reject/ignore any commit that does not reference a valid Jira issue key. | HOSTED |
50+
| _**Commit Notification Emails**_ | Enable/disable this setting to allow sending of commit notification emails.<br><br>Set the **Max commit age (in minutes)** as desired. Commit notifications will be e-mailed if the age of the commit is less than or equal to this value. | HOSTED EXTERNAL FOLDER |
51+
| _**Web Linking**_ | _Optional._<br><br>The web linking feature adds links to your git hosting provider directly into the Git Commits tab. For special integrations (Auto-Connect), this feature is configured automatically. For more information on about this topic, see [Web linking](/git-integration-for-jira-data-center/web-linking-gij-self-managed). | EXTERNAL |
52+
53+
&nbsp;
54+
* * *
55+
56+
[**Prev:** Edit integration feature settings](/git-integration-for-jira-data-center/edit-integration-feature-settings-gij-self-managed)
57+
58+
[**Next:** SSL verify](/git-integration-for-jira-data-center/ssl-verify-gij-self-managed)
59+
60+
Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
---
2+
3+
title: Adding a nested repository
4+
description:
5+
taxonomy:
6+
category: git-integration-for-jira-data-center
7+
8+
---
9+
10+
A nested repository is a Git repository that exists inside the working directory of another Git repository. In other words, it’s a repository within a repository. Each nested repository functions independently, with its own commit history, branches, and remote configurations.
11+
12+
&nbsp;
13+
14+
## Permissions
15+
16+
### GitHub
17+
18+
To use GitHub submodules, you need at least read access to the "Contents" and "Metadata" of the repository itself, as well as any submodule repositories. This ensures that you can clone and update the submodules properly.
19+
20+
### GitLab
21+
22+
Managing permissions for nested repositories (projects within groups and subgroups) involves assigning roles to users or groups, which determine their access levels. For this case, the minimum role is Reporter – which can view code and issues, but cannot create or edit them.
23+
24+
### Azure DevOps
25+
26+
To access Git submodules in Azure DevOps, the minimum permissions required are for the build service account to have access to both the main repository and the submodule repository. If the "Protect access to repositories in YAML pipelines" setting is enabled, you may need to explicitly reference the submodule in your pipeline to avoid permission errors.
27+
28+
### Bitbucket
29+
30+
To access a Bitbucket submodule, the minimum permissions required are read access to the submodule repository for the user or SSH key being used. Ensure that the user has the appropriate permissions set in Bitbucket for both the parent and submodule repositories.
31+
32+
### AWS CodeCommit
33+
34+
To work with AWS submodules, you need to ensure that the IAM user or role has the necessary permissions to access the repositories and perform actions like cloning and updating submodules. This typically includes permissions for Git operations and access to the specific resources involved in your project.
35+
36+
&nbsp;
37+
38+
## How Nested Repositories Work
39+
40+
When a Git repository is placed inside another repository’s directory, it does not automatically become part of the parent repository. The parent repository does not track the nested repo’s files unless they are plainly added, which can sometimes cause confusion in version control workflows.
41+
42+
&nbsp;
43+
44+
## Practical Use for Developers
45+
46+
Nested repositories can be useful in some specific development scenarios:
47+
48+
- **Develop modular projects**
49+
50+
Developers working on large projects can organize their code into separate repositories while still keeping them inside a main project folder.
51+
52+
- **Manage Third-Party Dependencies**
53+
54+
Developers can include third-party projects or libraries as nested repositories rather than manually copying their source code. This helps in maintaining dependencies up to date by pulling changes from the external repository when needed.
55+
56+
- **Standalone Version Control**
57+
58+
Each nested repository keeps its own history and branches. This will allow teams to work on different components independently. This is useful in cases where sub-teams or external collaborators need full control over a specific module.
59+
60+
- **Custom Development Environments**
61+
62+
Some teams maintain separate repositories for configuration files, infrastructure scripts, or experimental features inside their main project repository. This allows for quick testing and switching between configurations without affecting the core project.
63+
64+
&nbsp;
65+
66+
## Some Challenges with Using Nested Repositories
67+
68+
While nested repositories offer some benefits, they also come with challenges. For instance:
69+
70+
- **Files are not tracked**
71+
72+
The parent repository does not automatically track the nested repository’s files unless they are manually added.
73+
74+
- **Conflicts on merging can occur**
75+
76+
If multiple developers work on both the parent and nested repositories, conflicts can arise when merging changes.
77+
78+
- **Requires extra steps on deploying projects**
79+
80+
Deploying projects with nested repositories may require extra steps to ensure all repositories sync correctly.
81+
82+
&nbsp;
83+
84+
## Nested Repository as a Formal Feature
85+
86+
Various Git hosting services and platforms implement distinct policies for managing nested repositories. Although Git does not natively support "nested repositories" as a formal feature, certain services offer equivalent functionality under different name or terms.
87+
88+
For example:
89+
90+
- **GitHub:** Supports submodules with .gitmodules file tracking.
91+
92+
- **GitLab:** Provides UI support for managing submodules.
93+
94+
- **Bitbucket:** Supports submodules with limited UI visibility.
95+
96+
- **Azure DevOps:** Allows working with submodules inside projects.
97+
98+
&nbsp;
99+
100+
## Adding a nested repository example
101+
102+
While, GitHub does not allow nested repositories (Git doesn't allow this for bare repositories), you can use submodules to nest repositories on the "client side" in the working tree:
103+
104+
1. Clone the parent directory.
105+
106+
2. Add the sub-repository as a submodule:
107+
108+
`git submodule add https://github.com/\<username\>/\<sub_repo\>.git`
109+
110+
The `\<sub_repo\>` module will then be linked to the parent repo and can be found in the `\<sub_repo\>` directory.
111+
112+
3. Commit (`.gitmodules` and `\<sub_repo\>`), push and you're done.
113+
114+
<div class="bbb-callout bbb--tip">
115+
<div class="irow">
116+
<div class="ilogobox">
117+
<span class="logoimg"></span>
118+
</div>
119+
<div class="imsgbox">
120+
The <code>git submodule add</code> command works on most Git services that supports it. Check with your Git service documentation on how to add a submodule.
121+
</div>
122+
</div>
123+
</div>
124+
125+
&nbsp;
126+
* * *
127+
128+
[**Prev:** Edit repository settings](/git-integration-for-jira-data-center/edit-repository-settings-gij-self-managed)
129+
130+
[**Next:** SSL verify](/git-integration-for-jira-data-center/ssl-verify-gij-self-managed)
131+
132+
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
---
2+
3+
title: Edit nested repository settings
4+
description:
5+
taxonomy:
6+
category: git-integration-for-jira-data-center
7+
8+
---
9+
10+
## How to edit a nested repository with Git Integration for Jira app?
11+
12+
### Pre-GIJ version 5.x.x
13+
14+
Go to the Manage integrations configuration page and choose an integration with the nested repository to manage.
15+
16+
1. Click &nbsp;<img src='/wp-content/uploads/actions-icon.png' /> Action ➜ **Show integration repositories**.
17+
18+
![](/wp-content/uploads/gij-datacenter-pre-5x-actions-show-repos.png)
19+
20+
2. Navigate or look for the nested repository that you want to edit. When found, click the repository name to take you to it’s git configuration page.
21+
22+
![](/wp-content/uploads/gij-datacenter-pre-5x-show-integration-repos.png)
23+
24+
3. With screens similar to the Edit repository settings page (see next section), make some necessary changes to the selected nested repository and then click Save to save your changes.
25+
26+
### GIJ version 5.x
27+
28+
Go to the Manage repositories configuration page and navigate to the nested repository you want to manage.
29+
30+
1. For that nested repository, Click <img src='/wp-content/uploads/actions-icon.png' /> Actions ➜ **Edit repository**.
31+
32+
![](/wp-content/uploads/gij-datacenter-5x-manage-repos-nested.png)
33+
34+
2. On the **Settings for Repository** page, make the necessary changes as desired (see next section). Click **Save** to save the changes.
35+
36+
<div class="bbb-callout bbb--info">
37+
<div class="irow">
38+
<div class="ilogobox">
39+
<span class="logoimg"></span>
40+
</div>
41+
<div class="imsgbox">
42+
For Azure DevOps Server and GitHub Enterprise, by default, only PAT is available for editing. Regardless of whether the integration was previously installed with user/password or not.
43+
</div>
44+
</div>
45+
</div>
46+
47+
<div class="bbb-callout bbb--note">
48+
<div class="irow">
49+
<div class="ilogobox">
50+
<span class="logoimg"></span>
51+
</div>
52+
<div class="imsgbox">
53+
When adding a nested repository to an integration - no SSH key is inherited from the integration because it does not carry the SSH key.
54+
</div>
55+
</div>
56+
</div>
57+
58+
<div class="bbb-callout bbb--info">
59+
<div class="irow">
60+
<div class="ilogobox">
61+
<span class="logoimg"></span>
62+
</div>
63+
<div class="imsgbox">
64+
The login credentials are not inherited with nested repositories to interact with external APIs and .git is based on the integration's credentials.
65+
</div>
66+
</div>
67+
</div>
68+
69+
&nbsp;
70+
71+
## Edit nested repository settings
72+
73+
Utilize the options below for configuring repository settings:
74+
75+
| Option | Description | Type |
76+
| :--- | :--- | :--- |
77+
| _**Display Name**_ | This is the alias that will appear in the Repository/Integration column. | HOSTED<br>EXTERNAL |
78+
79+
&nbsp;
80+
81+
### Cloned repository root
82+
83+
| Option | Description | Type |
84+
| :--- | :--- | :--- |
85+
| _**Absolute Repository Root**_ | This is the calculated absolute path of the clone repository root on the same machine as Jira. | HOSTED<br>EXTERNAL |
86+
| _**Clone root location**_ | Set to automatically managed or manually configured by Jira admin. | EXTERNAL |
87+
| _**Repository Root**_ | This is the path to a clone of the repository. | EXTERNAL |
88+
89+
&nbsp;
90+
91+
### Repository Settings
92+
93+
| Option | Description | Type |
94+
| :--- | :--- | :--- |
95+
| _**Enable Fetches**_ | Set to either hosted at remote server or hosted on the same server as Jira. | EXTERNAL |
96+
| _**Repository origin**_ | Full URL to the Git origin from where the repository was cloned. | HOSTED<br>EXTERNAL |
97+
| _**Main Branch**_ | Set the main branch. Default is `master`. | HOSTED<br>EXTERNAL |
98+
| _**Use HTTP(S) Authentication**_ | If this repository connection supports HTTP(S) authentication, turn on this feature and enter the required username and password credentials here. | EXTERNAL |
99+
| _**SSL Verify**_ | If set to `Disabled`, the Git Integration for Jira app will ignore verification of SSL certificates when connecting to a remote Git server. | EXTERNAL |
100+
| _**TrustFolderStat**_ | When this setting is set to `False`, the objects/pack folder will always be scanned to check for new pack files. If set to `True`, the `last-modified` attribute of the folder will be used instead to check the folder for modifications.<br><div class="bbb-callout bbb--info"><div class="irow"><div class="ilogobox"> <span class="logoimg"></span></div><div class="imsgbox">The default value for Jira Server is <code>True</code>. For Jira Data Center, it's <code>False</code>.</div></div></div> <div class="bbb-callout bbb--note"><div class="irow"><div class="ilogobox"><span class="logoimg"></span></div><div class="imsgbox">If your repository is stored on a network share, it is highly recommended to set this option to <code>False</code>.</div></div></div> | HOSTED<br>EXTERNAL |
101+
102+
### Other settings
103+
| Option | Description | Type |
104+
| :--- | :--- | :--- |
105+
| _**Repository Browser**_ | When `Enabled`, it allows users to view Git repositories of configured projects. For more information, see [Repository Browser](/git-integration-for-jira-data-center/repository-browser-gij-self-managed). | HOSTED<br>EXTERNAL |
106+
| _**Tags**_ | Set whether to show all tags or show on tags with matching regex pattern. For more information on git tags, see [Git tags](/git-integration-for-jira-data-center/git-tags-gij-self-managed). | HOSTED<br>EXTERNAL |
107+
| _**Pull requests**_ | Set whether to show all pull requests or show on pull requests with matching regex pattern. | HOSTED |
108+
| _**Project Permissions: Restrict to projects**_ | The default setting is **Associate with all projects**. You can restrict access to the Repository Browser and Git Commit tabs (Advanced) for the selected repository by setting the project associations. | HOSTED<br>EXTERNAL |
109+
| _**Source Code Diff Viewing**_ | Allows or disallows users to view the diff by commit and file. | HOSTED<br>EXTERNAL |
110+
| _**Smart Commits**_ | Allows or disallows users to use the smart commits feature. | HOSTED<br>EXTERNAL |
111+
| _**Commit Notification Emails**_ | Allow or disallow sending of commit notification emails.<br><br>Set the **Max commit age (in minutes)** as desired. Commit notifications will be e-mailed if the age of the commit is less than or equal to this value. | HOSTED<br>EXTERNAL |
112+
| _**Web Linking**_ | _Optional._<br><br>The web linking feature adds links to your git hosting provider directly into the Git Commits tab. For special integrations (Auto-Connect), this feature is configured automatically. For more information on about this topic, see [Web linking](/git-integration-for-jira-data-center/web-linking-gij-self-managed). | HOSTED<br>EXTERNAL |
113+
114+
&nbsp;
115+
* * *
116+
117+
[**Prev:** Adding a nested repository](/git-integration-for-jira-data-center/adding-a-nested-repository-gij-self-managed)
118+
119+
[**Next:** SSL verify](/git-integration-for-jira-data-center/edit-nested-repository-settings-gij-self-managed)
120+
121+

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /