---
title: "Examples for AddRepository Action"
canonical: "https://support.appfire.com/space/SUPPORT/89135082/Examples%20for%20AddRepository%20Action"
format: markdown
---
There are 3 ways to use the **addRepository** action:

1. Add a repository directly to a plan - see the discussion below and make sure you specify the **plan** parameter.
2. Add a linked (global) repository - see the discussion below and do **not** specify the **plan** parameter.
3. Associating a linked repository to a plan - see [How to add a linked repository to a plan](https://appfire.atlassian.net/wiki/spaces/SUPPORT/pages/89139137).


> ✅ **Best Practice is to Use Linked Repositories**
> ✅ 
> ✅ We strongly recommend using globally configured linked repositories. This make plan configuration easier and more maintainable. Adopt a good naming convention to make configuration easier. Linked repositories are easily created with **addRepository**. Internally, we script defining (and updating) all our repositories to ensure consistency and make updates easier. Linked repositories are easily referenced in build plans including simple name references in plan scripting with the **addRepository** action for a plan.

> ✅ **Best Practice is to Use Shared Credentials**
> ✅ 
> ✅ More recent versions of Bamboo support shared credentials for **Git**, **Mercurial**, and **Bitbucket Cloud** repositories. This centralizes password or SSH maintenance and makes adding repositories and add repository scripting significantly easier by avoiding having confidential information in your scripts. CLI [release 7.1](https://appfire.atlassian.net/wiki/spaces/ACLI/pages/60558442) includes support for managing credentials and for referencing them on **addRepository**. Note **Bitbucket Server** authorization is done via application links, so it doesn't need specific shared credentials.

The [addRepository](https://appfire.atlassian.net/wiki/display/BCLI/Reference#Reference-addRepository) action can be used to add source repositories to a plan or as a linked repository. However, you must know the parameter fields that each repository uses and needs. The following gives some examples. If the repository you want is not one of the examples, the parameters can be discovered similar to the following: [How to determine fields for addRepository](https://appfire.atlassian.net/wiki/spaces/SUPPORT/pages/89136085). If you get errors, you will need to debug the field problem by using the **url** used by the CLI tool in a browser so the errors are more prevalent. Run the action with **--verbose** and look for url that is being used and failing. This is the best that can be done until Bamboo provides proper REST APIs to help with this scenario.

> Macro (include)