

Amazon CodeCatalyst is no longer open to new customers. Existing customers can continue to use the service as normal. For more information, see [How to migrate from CodeCatalyst](migration.md).

# Organize work with projects in CodeCatalyst
<a name="projects"></a>

You use projects in Amazon CodeCatalyst to establish a collaboration space where development teams can conduct development tasks with shared continuous integration/continuous delivery (CI/CD) workflows and repositories. When you create a project, you can add, update, or remove resources. You can also monitor the progress of your team's work. You can have multiple projects within a space.

Spaces in CodeCatalyst are made up of projects. You can see every project within your space, but you can only use the projects of which you are a member. When you create a project, default roles for your project are generated, which you assign to users that you invite to your project.
+ Anyone assigned to the project with a project role, such as the **Contributor role**, can access project resources, such as a source repository.
+ Anyone with the **Space administrator** or **Project administrator** role can send invitations to join a project. 
+ Users with the **Project administrator** role can track activity, status, and other settings across shared resources. 
+ Users with the **Limited access** role can manage project assignments for features, code fixes, and tests as part of CI/CD workflows. 

  Workflows are used to build, test, and release or update applications as a CI/CD pipeline. You can assemble workflows by adding actions that transfer and work on your source artifacts. When you run actions, your project cloud resources are used to provide on-demand compute ability for your workflow actions. You might configure more CI/CD workflows based on the activity and output you want to set up. For example, you might create a workflow for build and test actions only, where you can view test results and complete the workflow without a deployment while you fix bugs. Then, you might create another workflow to build and deploy your application to a staging environment.

When you create a project, you can use a blueprint to create a project that contains sample code and creates resources, or you can start with an empty project. If you create a project using a blueprint, the blueprint you choose determines which resources are added to your project and the tools that CodeCatalyst creates or configures so you can track and use your project resources. You can manually add or remove resources after you have created a project. 

Each project tracks project activity as a list of events by user, such as when a project is created or a resource is modified. Project activity is monitored and aggregated at the space level. For more information about working with activity data, see [Viewing all projects in a space](projects-view-overview.md).

If your project uses AWS resources, you can connect your CodeCatalyst account to an AWS account where you have administrative permissions to integrate resources for your project.

You can add source repositories, issues, and other resources to your project after you create it. You must have the **Space administrator** role to create projects.

# Creating a project
<a name="projects-create"></a>

With CodeCatalyst projects, you can conduct development tasks with shared continuous integration/continuous delivery (CI/CD) workflows and repositories, manage resources, track issues, and add users.

Before you create a project, you must have the **Space administrator** or **Power user** role.

**Topics**
+ [Creating an empty project in Amazon CodeCatalyst](#projects-create-empty)
+ [Creating a project with a linked third-party repository](#projects-create-3p-repo)
+ [Creating a project with a blueprint](#projects-create-console-template)
+ [Best practices when using Amazon Q to create projects or add functionality with blueprints](#projects-create-amazon-q)
+ [Best practices for using blueprints with projects](#projects-create-use-blueprints)
+ [Adding resources and tasks to created projects](#projects-create-after-steps)

## Creating an empty project in Amazon CodeCatalyst
<a name="projects-create-empty"></a>

You can create an empty project with no resources and manually add the resources you want at a later time.

Before you create a project, you must have the **Space administrator** or **Power user** role.

**To create an empty project**

1. Navigate to the space where you want to create a project.

1. On the space dashboard, choose **Create project**.

1. Choose **Start from scratch**.

1. Under **Give a name to your project**, enter the name that you want to assign to your project. The name must be unique within your space.

1. Choose **Create project**.

## Creating a project with a linked third-party repository
<a name="projects-create-3p-repo"></a>

You can keep your project's source code in a preferred third-party provider and still use all the CodeCatalyst features such as blueprints, lifecycle management, workflows, and more. To do this, you can create a new CodeCatalyst project that links to a GitHub repository, Bitbucket repository, or a GitLab project repository. You can then use your linked source repository in your CodeCatalyst project.

Before you create a CodeCatalyst project, you must have the **Space administrator** or **Power user** role. For more information, see [Creating a space](spaces-create.md) and [Inviting a user directly to a space](spaces-members-add-admin.md).

To create a project in CodeCatalyst that links to a source repository in your GitHub account, you'll need to complete the following three tasks:

1. Install the **GitHub repositories**, **Bitbucket repositories**, or **GitLab repositories** extension. You're prompted in an external site to connect and provide CodeCatalyst with access to your repository, which is done as part of the next step.
**Important**  
To install the **GitHub repositories**, **Bitbucket repositories**, or **GitLab repositories** extension to your CodeCatalyst space, you must be signed in with an account that has the **Space administrator** role in the space.

1. Connect your GitHub account or Bitbucket workspace, or GitLab user to CodeCatalyst.
**Important**  
To connect your GitHub account, Bitbucket workspace, GitLab user to your CodeCatalyst space, you must be both the third-party source's administrator and the CodeCatalyst **Space administrator**.
**Important**  
After you install a repository extension, any repositories you link to CodeCatalyst will have their code indexed and stored in CodeCatalyst. This will make the code searchable in CodeCatalyst. To better understand the data protection for your code when using linked repositories in CodeCatalyst, see [Data protection](https://docs.aws.amazon.com/codecatalyst/latest/userguide/data-protection.html) in the *Amazon CodeCatalyst User Guide*.

1. Create a CodeCatalyst project linked to your GitHub repository, Bitbucket repository, or GitLab project repository.
**Important**  
While you can link a GitHub repository, Bitbucket repository, or GitLab project repository as a **Contributor**, you can only unlink a third-party repository as the **Space administrator** or the **Project administrator**. For more information, see [Unlinking GitHub repositories, Bitbucket repositories, GitLab project repositories, and Jira projects in CodeCatalyst](extensions-unlink.md).
**Important**  
CodeCatalyst doesn't support detecting changes in the default branch for linked repositories. To change the default branch for a linked repository, you must first unlink it from CodeCatalyst, change the default branch, and then link it again. For more information, see [Linking GitHub repositories, Bitbucket repositories, GitLab project repositories, and Jira projects in CodeCatalyst](extensions-link.md).  
As a best practice, always make sure you have the latest version of the extension before you link a repository.
**Note**  
A GitHub repository, Bitbucket repository, or GitLab project repository can only be linked to one CodeCatalyst project in a space.
You can't use empty or archived GitHub repositories, Bitbucket repositories, or GitLab project repositories with CodeCatalyst projects. 
You can't link a GitHub repository, Bitbucket repository, or GitLab project repository that has the same name as a repository in a CodeCatalyst project.
The **GitHub repositories** extension isn't compatible with GitHub Enterprise Server repositories.
The **Bitbucket repositories** extension isn't compatible with Bitbucket Data Center repositories.
The **GitLab repositories** extension isn't compatible with GitLab self-managed project repositories.
You can't use the **Write description for me** or **Summarize comments** features with linked repositories. These features are only available in pull requests in CodeCatalyst.

For more information, see [Add functionality to projects with extensions in CodeCatalystAdd functionality to projects with extensions](extensions.md).

**To install the third-party extension**

1. Navigate to the space where you want to create a project.

1. On the space dashboard, choose **Create project**.

1. Choose **Bring your own code**.

1. Under **Link existing repository**, choose **GitHub repositories**, **Bitbucket repositories**, **GitLab repositories** depending on the third-party repository provider you want to use. You're prompted to connect your GitHub account, Bitbucket workspace, or GitLab account if you didn't do so previously. If the third-party extension of your choice isn't already installed, an install prompt displays.

1. If prompted, choose **Install**. Review the permissions required by the extension, and if you want to continue, choose **Install** again.

After you install the third-party extension, the next step is to connect your GitHub account, Bitbucket workspace, or GitLab user to your CodeCatalyst space.

**To connect your GitHub account, Bitbucket workspace, or GitLab user to CodeCatalyst**

Do one of the following depending on the third-party extension you chose to configure:
+ **GitHub repositories**: Connect to a GitHub account.

  1. Choose **Connect GitHub account** to go to the external site for GitHub.

  1. Sign in to your GitHub account using your GitHub credentials, and then choose the account where you want to install Amazon CodeCatalyst.
**Tip**  
If you have previously connected a GitHub account to the space, you will not be prompted to reauthorize. You will instead see a dialog box asking you where you would like to install the extension if you are a member or collaborator in more than one GitHub space, or the configuration page for the Amazon CodeCatalyst application if you only belong to one GitHub space. Configure the application for the repository access that you want to allow, and then choose **Save**. If the **Save** button is not active, make a change to the configuration, and then try again.

  1. Choose whether you want to allow CodeCatalyst to access all current and future repositories, or choose the specific GitHub repositories you want to use in CodeCatalyst. The default option is to include all GitHub repositories in the GitHub account, including future repositories that will be accessed by CodeCatalyst.

  1. Review the permissions given to CodeCatalyst, and then choose **Install**.

  After connecting your GitHub account to CodeCatalyst, you're taken to the **GitHub repositories** extension details page, where you can view and manage connected GitHub accounts and linked GitHub repositories.
+ **Bitbucket repositories**: Connect to a Bitbucket workspace.

  1. Choose **Connect Bitbucket workspace** to go to the external site for Bitbucket.

  1. Sign into your Bitbucket workspace using your Bitbucket credentials and review the permissions given to CodeCatalyst.

  1. From the **Authorize for workspace** dropdown menu, choose the Bitbucket workspace you want to provide CodeCatalyst access to, and then choose **Grant access**.
**Tip**  
If you have previously connected a Bitbucket workspace to the space, you will not be prompted to reauthorize. You will instead see a dialog asking you where you would like to install the extension if you're a member or collaborator in more than one Bitbucket workspace, or the configuration page for the Amazon CodeCatalyst application if you only belong to one Bitbucket workspace. Configure the application for the workspace access you want to allow, and then choose **Grant access**. If the **Grant access** button is not active, make a change to the configuration, and then try again.

  After connecting your Bitbucket workspace to CodeCatalyst, you're taken to the **Bitbucket repositories** extension details page, where you can view and manage connected Bitbucket workspaces and linked Bitbucket repositories.
+ **GitLab repositories**: Connect to a GitLab user.

  1. Choose **Connect GitLab user** to go to the external site for GitLab.

  1. Sign in to your GitLab user using your GitLab credentials and review the permissions given to CodeCatalyst.
**Tip**  
If you have previously connected a GitLab user to the space, you will not be prompted to reauthorize. You will instead be navigated back to the CodeCatalyst console.

  1. Choose **Authorize AWS Connector for GitLab**.

  After connecting your GitLab user to CodeCatalyst, you're taken to the **GitLab repositories** extension details page, where you can view and manage connected GitLab user and linked GitLab project repositories.

After connecting your third-party source to CodeCatalyst, you can link the third-party repositories to your CodeCatalyst projects.

**To create your project**

1. On the **Create project** page, choose the GitHub account you connected.

1. Depending on the third-party repository provider you connected, choose the **GitHub repositories**, **Bitbucket repositories**, or **GitLab repositories** repository dropdown menu to view the third-party repositories, and then choose the repository that you want to link to your project.

1. In the **Name your project** text input field, enter the name that you want to assign to your project. The name must be unique within your space.

1. Choose **Create project**.

After installing the **GitHub repositories**, **Bitbucket repositories**, or **GitLab repositories** extension, connecting your resource provider, and linking your third-party repository to your CodeCatalyst project, you can use it in CodeCatalyst workflows and Dev Environments. You can also create third-party repositories in the connected GitHub account, Bitbucket workspace, or GitLab user with code generated from a blueprint. You can also use the linked repositories with Amazon Q Developer, blueprints, and more. For more information, see [Automatically starting a workflow run after third-party repository events](extensions-workflow-repositories.md) and [Creating a Dev Environment](devenvironment-create.md).

## Creating a project with a blueprint
<a name="projects-create-console-template"></a>

You can provision all of your project resources and sample code with a project blueprint. For information about blueprints, see the [Creating a comprehensive project with CodeCatalyst blueprintsCreating a comprehensive project with blueprints](project-blueprints.md).

**To create a project with a blueprint**

1. In the CodeCatalyst console, navigate to the space where you want to create a project.

1. On the space dashboard, choose **Create project**.

1. Choose **Start with a blueprint**.
**Tip**  
You can choose to add a blueprint by giving **Amazon Q** your project requirements to have Amazon Q suggest a blueprint to you. For more information, see [Using Amazon Q to choose a blueprint when creating a project or adding functionality](getting-started-project-assistance.md#getting-started-project-assistance-create-apply-bp) and [Best practices when using Amazon Q to create projects or add functionality with blueprints](#projects-create-amazon-q). This feature is only available in the US West (Oregon) Region.  
This functionality requires that generative AI features are enabled for the space. For more information, see [Managing generative AI features](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-generative-ai-features.html).

1. From the **CodeCatalyst blueprints** or **Space blueprints** tab, choose a blueprint, and then choose **Next**.

1. Under **Name your project**, enter the name that you want to assign to your project and its associated resource names. The name must be unique within your space.

1. (Optional) By default, the source code created by the blueprint is stored in a CodeCatalyst repository. Alternatively, you can choose to store the blueprint's source code in a third-party repository. For more information, see [Add functionality to projects with extensions in CodeCatalystAdd functionality to projects with extensions](extensions.md).
**Important**  
CodeCatalyst doesn't support detecting changes in the default branch for linked repositories. To change the default branch for a linked repository, you must first unlink it from CodeCatalyst, change the default branch, and then link it again. For more information, see [Linking GitHub repositories, Bitbucket repositories, GitLab project repositories, and Jira projects in CodeCatalyst](extensions-link.md).  
As a best practice, always make sure you have the latest version of the extension before you link a repository.

   Do one of the following depending on the third-party repository provider you want to use:
   + **GitHub repositories**: Connect a GitHub account.

     Choose the **Advanced** dropdown menu, choose GitHub as the repository provider, and then choose the GitHub account where you want to store the source code created by the blueprint.
**Note**  
If you're connecting a GitHub account, you must create a personal connection to establish identity mapping between your CodeCatalyst identity and your GitHub identity. For more information, see [Personal connections](concepts.md#personal-connection-concept) and [Accessing GitHub resources with personal connections](ipa-settings-connections.md).
   + **Bitbucket repositories**: Connect a Bitbucket workspace.

     Choose the **Advanced** dropdown menu, choose Bitbucket as the repository provider, and then choose the Bitbucket workspace where you want to store the source code created by the blueprint.
   + **GitLab repositories**: Connect a GitLab user.

     Choose the **Advanced** dropdown menu, choose GitLab as the repository provider, and then choose the GitLab user where you want to store the source code created by the blueprint.

1. Under **Project resources**, configure the blueprint parameters. Depending on the blueprint, you may have the option to name the source repository name.

1. (Optional) To view definition files with updates based on the project parameter selections you made, choose **View code** or **View workflow** from **Generate project preview**.

1. (Optional) Choose **View details** from the blueprint's card to view specific details about the blueprint, such as an overview of the blueprint's architecture, required connections and permissions, and the kind of resources the blueprint creates.

1. Choose **Create project**.

## Best practices when using Amazon Q to create projects or add functionality with blueprints
<a name="projects-create-amazon-q"></a>

When you create a project or want to add new components to an existing project, you might be unsure about which blueprint to use or how to integrate capabilities. CodeCatalyst includes integration with a generative AI assistant called Amazon Q that can analyze your project requirements and suggest a blueprint that best fits your needs. 

You can use Amazon Q to help you create a project with a blueprint that creates components based on your requirements, or you can use Amazon Q to help you add a blueprint to an existing project. For example, to add resources for a web application or modern application to a project, specify your requirements and then the resources will be added with a recommended blueprint. Issues for remaining components can be created for you.

Amazon Q also creates issues for requirements that can't be addressed by a suggested blueprint. Additionally, you can assign those issues to Amazon Q. If you assign the issue to Amazon Q, it will attempt to create a draft solution for you to evaluate. This can help you and your team to focus and optimize work on issues that require your attention, while Amazon Q works on a solution for problems you don't have resources to address immediately.

**Note**  
**Powered by Amazon Bedrock**: AWS implements [automated abuse detection](https://docs.aws.amazon.com//bedrock/latest/userguide/abuse-detection.html). Because the **Write description for me**, **Create content summary**, **Recommend tasks**, **Use Amazon Q to create or add features to a project**, and **Assign issues to Amazon Q** feature with Amazon Q Developer Agent for software development features are built on Amazon Bedrock, users can take full advantage of the controls implemented in Amazon Bedrock to enforce safety, security, and the responsible use of artificial intelligence (AI).

The following are some best practices to help you create projects and add blueprints with Amazon Q.

**Important**  
Generative AI features are only available in the US West (Oregon) Region.
+ **Use the default prompts provided by Amazon Q **. Amazon Q does best with choosing blueprints from the provided prompts. 
+ **Use the configuration options suggested by Amazon Q to preview the blueprints**. Choose a blueprint to preview the sample code and resources that will be created by the blueprint. 
+ **Use a space that is enabled for Amazon Q **. To create a project with Amazon Q, or to add functionality to a project with blueprints using Amazon Q, use a space that is enabled for generative AI features. For more information, see [ Enabling or disabling generative AI features for a space](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-generative-ai-features.html#managing-generative-ai-features-enable-disable).
+ **Get more information about blueprints recommended by Amazon Q**. You might want to find out more about the kind of project resources, sample code, and components that are created with a specific recommended blueprint. For more information about available blueprints in CodeCatalyst, see [Creating a comprehensive project with CodeCatalyst blueprintsCreating a comprehensive project with blueprints](project-blueprints.md).
+ **Allow Amazon Q to work with issues**. Allow Amazon Q to create issues for you, assign those issues, and track them. For more information, see [Tutorial: Using CodeCatalyst generative AI features to speed up your development work](getting-started-project-assistance.md).
+ **Unassign Amazon Q from issues that are no longer worked on**. After you complete the example, unassign Amazon Q from any issues no longer being worked on. If Amazon Q has finished its work on an issue or could not find a solution, make sure to unassign Amazon Q to avoid reaching the maximum quota for generative AI features. For more information, see [Managing generative AI features](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-generative-ai-features.html) and [Pricing](https://codecatalyst.aws/explore/pricing). 
+ **View usage for Amazon Q**. You can view usage of generative AI features at the user level. Go to **My settings** to manage generative AI quotas and view usage by your Builder ID or single sign-on (SSO) identity. For more information, see [ Viewing usage of generative AI features in a space](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-generative-ai-features.html#managing-generative-ai-features-view-usage). 

**Important**  
The generative AI features in CodeCatalyst are subject to quotas. For more information, see [Amazon Q Developer Pricing](https://aws.amazon.com/q/developer/pricing/), [ Enabling or disabling generative AI features for a space](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-generative-ai-features.html#managing-generative-ai-features-enable-disable), and [ Billing](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-billing.html).

## Best practices for using blueprints with projects
<a name="projects-create-use-blueprints"></a>

The following are some best practices to help you create a project with blueprints or add blueprints.
+ **Use blueprints provided by CodeCatalyst to create or add to projects**. You can use blueprints to create a full project with source code and resources for developers. For example, the web application blueprint creates application and infrastructure resources and deploys a web application. You can create a project with a blueprint or add a custom blueprint to an existing project. For more information, see [Creating a project with a blueprint](create-project-with-bp.md). View any blueprint in CodeCatalyst to preview the sample code and resources that will be created by the blueprint.
+ **Use custom blueprints designed by your organization**. You can use custom blueprints to create a full project in your space. The custom blueprint designed by your organization can provide standardization and best practices, which can also help to cut down on efforts to set up a new project. As a custom blueprint author, you can view details about which projects are using your blueprint throughout your space. Lifecycle management allows you to centrally manage the software development lifecycle of every project, and blueprint users can utilize lifecycle management to regenerate a codebase from updated options or versions of a blueprint. For more information, see [Working with lifecycle management as a blueprint author](lifecycle-management-dev.md).
+ **Add the developer role or appropriate IAM roles to the account for your project**. During or after you complete the project creation steps, you can configure your blueprint permissions by choosing or creating IAM roles in an AWS account that is connected to the space.

## Adding resources and tasks to created projects
<a name="projects-create-after-steps"></a>

After your project is ready, you can add resources and tasks.
+ To learn about the CI/CD workflows created with your project, see [Getting started with workflows](workflows-getting-started.md).
+ To work with build actions similar to those in your new project that deploy build artifacts to an Amazon S3 bucket, see [Building with workflows](build-workflow-actions.md) and [Tutorial: Upload artifacts to Amazon S3](build-deploy.md).
+ To start with an empty project and work with deploying a similar serverless application with an CloudFormation stack deployment, see [Tutorial: Deploy a serverless application](deploy-tut-lambda.md).
+ To add an issues planning board, see [Track and organize work with issues in CodeCatalystTrack and organize work with issues](issues.md).
+ To view the project overview, project status, recent team activity, and assigned work, see [Getting a list of projects](projects-view.md).
+ To view source code or create a pull request, see [Store and collaborate on code with source repositories in CodeCatalystStore and collaborate on code with source repositories](source.md).
+ To set up notifications that send status alerts for workflow run success or failure, see [Sending Slack and email notifications from CodeCatalyst](notifications-manage.md). 
+ To invite members to your project, see [Granting users project permissions](projects-members.md).
+ To set up Dev Environments, see [Write and modify code with Dev Environments in CodeCatalystWrite and modify code with Dev Environments](devenvironment.md).

# Getting a list of projects
<a name="projects-view"></a>

From your CodeCatalyst space, you can view details of each project where you have project permissions.

To view a project, you must be a member of the project or have the **Space administrator** role for the space.

If you have not created a project yet, see [Creating a project](projects-create.md). You must have the **Space administrator** role for the space where you want to create a project.
+ On the project overview, you can view project members, source repositories, workflow runs, open pull requests, project Dev Environments, and issues.
+ Under project settings, you can view and manage project details, delete the project, invite new members to the project, manage project members, and configure notifications.

## Viewing project tasks and Dev Environments
<a name="projects-view-overview-tasks"></a>

To view a summary of project tasks, such as open issues and pull requests that are assigned to you or created by you, and the project's associated Dev Environments, use the console.

To view a project, you must be a member of the project or have the **Space administrator** role for the space.

**To view your source repositories, workflow runs, issues, pull requests, Dev Environments, and issues**

1. Open the CodeCatalyst console at [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Navigate to the space with the project you want to view. Under **Projects**, choose your project.

1. In the navigation pane, choose **Overview**.

1. View the project tasks assigned to you and created by you. 
   + View the **Members \$1 View all** list to view a list of the project members.
   + View the **Repositories** card to view the source repositories that are associated with the project.
   + View the **Workflow runs** card to view the workflows that are associated with the project.
   + View the **Open pull requests** card to view a summary of code repository status, in addition to pull requests assigned to you and created by you.
   + View the **My Dev Environments** card to view a summary of the Dev Environments associated with the project. 
   + View the **Issues** card to view a summary of your assigned tasks or tasks that you created.

# Viewing all projects in a space
<a name="projects-view-overview"></a>

In the **Projects** list for your space, you can view all projects where you have permissions.

To view a summary of project tasks, such as open issues and pull requests that are assigned to you or created by you, and the project's associated Dev Environments, use the console.

To view a project, you must be a member of the project or have the **Space administrator** role for the space.

**To view your source repositories, workflow runs, issues, pull requests, Dev Environments, and issues**

1. Open the CodeCatalyst console at [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Navigate to the space with the project you want to view. Under **Projects**, choose your project.

1. In the navigation pane, choose **Project settings**.

1. View the project name, path, project ID, and description.

## Viewing project settings
<a name="projects-view-settings"></a>

In the **Project settings**, you can view project members, source repositories, workflow runs, open pull requests, project Dev Environments, and issues.

To view a summary of project tasks, such as open issues and pull requests that are assigned to you or created by you, and the project's associated Dev Environments, use the console.

**To view your source repositories, workflow runs, issues, pull requests, Dev Environments, and issues**

1. Open the CodeCatalyst console at [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Navigate to the space with the project you want to view. Under **Projects**, choose your project.

1. In the navigation pane, choose **Project settings**.

1. View the project name, path, project ID, and description.

## Changing to a different project in CodeCatalyst
<a name="projects-view-switch"></a>

To change to a different project, use the console to choose from a list of projects you have access to.

**To change to a different project**

1. In the CodeCatalyst console, choose the project selector at the top.

1. Expand the drop-down and choose the project you want to navigate to.

# Deleting a project
<a name="projects-delete"></a>

You can delete a project to remove all access to the project's resources. You must have the Space administrator or Project administrator role to delete a project. Once you have deleted a project, project members will be unable to access project resources, and any workflows that are prompted by third-party source repositories will be stopped.

**To delete your project**

1. Open the CodeCatalyst console at [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Navigate to the space with the project you want to view. Under **Projects**, choose your project.

1. In the navigation pane, choose **Project settings**.

1. Choose **Delete project**.

1. Enter **delete** to confirm the deletion.

1. Choose **Delete project**.

# Granting users project permissions
<a name="projects-members"></a>

You can manage the members in your projects using the Amazon CodeCatalyst console. You can add or remove users, manage current members' roles, send invitations to join your project, and cancel invitations that have not yet been accepted.

On the members page for space and project users, users can have multiple roles. Users with multiple roles will show an indicator when they have multiple roles, and they will be displayed with the role with the most permissions first.

## Getting a list of members and their project roles
<a name="projects-members-view"></a>

When you add a user to your project, you assign a role that grants project permissions as follows:
+ The **Project administrator** role has all permissions in a project. Only assign this role to users who need to administer every aspect of a project, including editing project settings, managing project permissions, and deleting the project. For more information, see [Project administrator role](ipa-role-types.md#ipa-role-project-admin).
+ The **Contributor** role has the permissions required to work in a project. Assign this role to those users who need to work with code, workflows, issues, and actions in a project. For more information, see [Contributor role](ipa-role-types.md#ipa-role-contributor).
+ The **Reviewer** role has review permissions. For details, see [Reviewer role](ipa-role-types.md#ipa-role-reviewer).
+ The **Read only** role has read permissions. For details, see [Read only role](ipa-role-types.md#ipa-role-read-only).

You do not need to invite a user with the **Space administrator** role to your project because they already have implicit access to all projects in the space.

When you invite a user to your project (without assigning the **Space administrator** role), the user will show in the **Project members** table under projects and in the**Project members** table under spaces.

**To view users and roles in a space**

1. Open the CodeCatalyst console at [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Navigate to the space with the project you want to view. Under **Projects**, choose your project.

1. In the navigation pane, choose **Project settings**.

1. Choose the **Members** tab.

   The **Project members** table shows all members that have a role in a project. 
**Tip**  
If you have the **Space administrator** role, you can view which projects you have been directly invited to. Navigate to **Project settings** for the project, and then choose **My projects**.

   The **Space administrators** table shows users with the **Space administrator** role. These users are automatically (implicity) assigned to all projects in the space and do not have a role in a project.

   In the **Status** column, the following are valid values:
   + **Invited** – CodeCatalyst sent the invitation but the user has not yet accepted or declined.
   + **Member** – The user accepted the invitation.

**Topics**
+ [Getting a list of members and their project roles](#projects-members-view)
+ [Inviting a user to a project](#projects-members-add)
+ [Canceling an invitation](#projects-members-cancel-invite)
+ [Removing a user from your project](#projects-members-remove)
+ [Accepting or declining an invitation for a project](#w2aac27c19c15c25)

## Inviting a user to a project
<a name="projects-members-add"></a>

You can use the console to invite users to your project. You can invite members of your space or add names from outside your space.

To invite users to your project, you must be signed in with the **Project administrator** or **Space administrator** role.

You do not need to invite a user with the **Space administrator** role to your project because they already have implicit access to all projects in the space.

When you invite a user to your project (without assigning the **Space administrator** role), the user will show in the **Project members** table under projects and in the**Project members** table under spaces.

**To invite a member to your project from the Project settings tab**

1. Navigate to your project.
**Tip**  
You can choose which project to view in the top navigation bar.

1. In the navigation pane, choose **Project settings**.

1. Choose the **Members** tab.

1. In **Project members**, choose **Invite new member**.

1. Type the new member's email address, choose the role for this member, and then choose **Invite**. For more information about roles, see [Granting access with user roles](ipa-roles.md).

**To invite a member to your project from the Project overview page**

1. Navigate to your project.
**Tip**  
You can choose which project to view in the top navigation bar.

1. Choose the **Members \$1** button.

1. Type the new member's email address, choose the role for this member, and then choose **Invite**. For more information about roles, see [Granting access with user roles](ipa-roles.md).

## Canceling an invitation
<a name="projects-members-cancel-invite"></a>

If you recently sent an invitation, you can cancel it as long as the invitation hasn't yet been accepted. 

To manage project invitations, you must have the **Project administrator** or **Space administrator** role.

**To cancel a project member invitation**

1. Navigate to the project where you have sent an invitation that you want to cancel.

1. In the navigation pane, choose **Project settings**.

1. View the **Members** tab and verify that the member has a status of **Invited**.
**Note**  
You can only cancel an invitation that has not yet been accepted.

1. Choose the option next to the row with the invited member, and then choose **Cancel invitation**.

1. A confirmation window displays. Choose **Cancel invitation** to confirm.

## Removing a user from your project
<a name="projects-members-remove"></a>

You can use the console to remove a user from your project.

To remove a user from your project, you must be signed in with the **Project administrator** or **Space administrator** role.

**Note**  
Removing a user from all projects within a space automatically removes the user from that space.

**To remove a user from a project**

1. Open the CodeCatalyst console at [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Navigate to the space with the project you want to view. Under **Projects**, choose your project.

1. In the navigation pane, choose **Project settings**.

1. Choose the **Members** tab.

1. Choose the selector next to the profile you want to remove, and then choose **Remove**.

1. Confirm that you want to remove the user, and then choose **Remove**.

## Accepting or declining an invitation for a project
<a name="w2aac27c19c15c25"></a>

You might receive an email invitation to join an Amazon CodeCatalyst project. You can accept or decline the invitation.

**To accept or decline an invitation**

1. Open the invitation email.

1. Choose the project link in the email.

1. Choose **Accept** or **Decline**.

   If you choose **Decline**, an email is sent to the project management account notifying them that you declined the invitation.

# Allowing project access using teams
<a name="projects-teams"></a>

After you create a project, you can add teams. Teams allow you to group users so that they can share permissions and manage projects, issue tracking, roles, and resources in CodeCatalyst as project and space members.

You must have the **Project administrator** role to manage teams for your project.

Teams are also managed at the space level in CodeCatalyst. To learn more about teams in spaces, see [Allowing space access using teams](managing-teams.md). 

**Topics**
+ [Adding a team to a project](projects-teams-add.md)
+ [Granting project roles for a team](projects-teams-project-roles.md)
+ [Removing a project role for a team](projects-teams-remove.md)

# Adding a team to a project
<a name="projects-teams-add"></a>

You can manage teams where the team members can access resources in your project.

On the members page for space and project users, users can have multiple roles. Users with multiple roles will show an indicator when they have multiple roles, and they will be displayed with the role with the most permissions first.

**To add a team**

1. Open the CodeCatalyst console at [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Navigate to your project. Choose **Project settings**, and then choose **Teams**.

1. Choose **Add team**.

1. In **Team**, choose a team from the list of teams available.

1. Under **Project role**, choose a role from the list of project roles available in CodeCatalyst.
   + **Project administrator** — For details, see [Project administrator role](ipa-role-types.md#ipa-role-project-admin).
   + **Contributor** — For details, see [Contributor role](ipa-role-types.md#ipa-role-contributor).
   + **Reviewer** — For details, see [Reviewer role](ipa-role-types.md#ipa-role-reviewer).
   + **Read only** — For details, see [Read only role](ipa-role-types.md#ipa-role-read-only).

1. Choose **Add team**.

# Granting project roles for a team
<a name="projects-teams-project-roles"></a>

A team can have role permissions, such as **Power user**, in a space. You can change the space role for a team, but note that all members of the team will inherit those permissions.

**To add or change a project role**

1. Open the CodeCatalyst console at [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Navigate to your space. Choose **Project settings**, and then choose **Teams**.

1. To change a role, choose the selector next to the team in this list, and then choose **Change role**. To add a role, choose **Add project role**. In **Project**, choose the project you want to add and in **Role**, choose the role. Choose one of the available project roles:
   + **Project administrator** - For details, see [Project administrator role](ipa-role-types.md#ipa-role-project-admin).
   + **Contributor** - For details, see [Contributor role](ipa-role-types.md#ipa-role-contributor).
   + **Reviewer** - For details, see [Reviewer role](ipa-role-types.md#ipa-role-reviewer).
   + **Read only** - For details, see [Read only role](ipa-role-types.md#ipa-role-read-only).

1. Choose **Save**.

# Removing a project role for a team
<a name="projects-teams-remove"></a>

In CodeCatalyst, you can view the project roles for your team. You can also view the members in a team. You can remove the project role for a team.

**To remove a project role**

1. Open the CodeCatalyst console at [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Navigate to your space. Choose **Project settings**, and then choose **Teams**.

1. Choose the **Project roles** tab.

1. Choose the role you want to remove.
**Important**  
Removing a role from a team removes the associated permissions for all users in the team.

1. Choose **Save**.

# Allowing project access for machine resources
<a name="projects-machine-resources"></a>

Machine resources are specific resources in CodeCatalystthat are granted permissions for projects or spaces in CodeCatalyst. 

**Note**  
The term machine resource does not refer to cloud infrastructure such as an EC2 instance, but it is instead meant to refer to a blueprint or workflow resource with permissions for a space or project.

An example of working with machine resources in projects includes enabling a blueprint resource to access a project on your behalf.

A machine resource represents your identity from your authorized resource when accessing CodeCatalyst through SSO. Machine resources are used to grant permissions to resources in your project, such as **blueprints** and **workflows**. You can view the machine resources in your project, and you can choose to enable or disable machine resources for your project. For example, you might want to disable a machine resource to manage access and then re-enable it later.

These operations are available for machine resources in cases where a machine resource needs to be revoked or disabled. For example, if you suspect credentials might have been compromised, you can disable the machine resource. Generally, these operations will not need to be used.

You must have the **Space administrator** role or the **Project administrator** role to view this page and to manage machine resources at the project level.

Machine resources are also managed at the space level in CodeCatalyst. To learn more about teams in spaces/projects, see [Allowing space access for machine resources](managing-machine-resources.md).

**Topics**
+ [Viewing project access for machine resources](projects-machine-resources-view.md)
+ [Disabling project access for machine resources](projects-machine-resources-disable.md)
+ [Enabling project access for machine resources](projects-machine-resources-enable.md)

# Viewing project access for machine resources
<a name="projects-machine-resources-view"></a>

You can view a listing of the machine resources that are in use in your project.

You must have the **Space administrator** role or the **Project administrator** role.

**To view machine resources**

1. Open the CodeCatalyst console at [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Navigate to your project, and then choose **Project settings**. Choose **Machine resources**.

1. In the drop-down, choose **Workflow action** to view only the machine resources for workflows. Choose **Blueprint** to view only the machine resources for blueprints.

   You can also filter on a name using the **Filter** field.

# Disabling project access for machine resources
<a name="projects-machine-resources-disable"></a>

You can choose to disable machine resources that are in use in your project. 

**Important**  
Disabling machine resources will remove all permissions to all associated blueprints or workflows in the space.

You must have the **Space administrator** role or the **Project administrator** role.

**To disable machine resources**

1. Open the CodeCatalyst console at [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Navigate to your project, and then choose **Project settings**. Choose **Machine resources**.

1. Choose one of the following.
**Important**  
Disabling machine resources will remove all permissions to all associated blueprints or workflows in the space.
   + To disable individually, choose the selector next to one or more machine resources you want to disable. Choose **Disable**, and then choose **This resource**. 
   + To disable all resources, choose **Disable**, and then choose **All resources**. 
   + To disable all workflow actions, choose **Disable**, and then choose **All workflow actions**. 
   + To disable all blueprints, choose **Disable**, and then choose **All blueprints**. 

# Enabling project access for machine resources
<a name="projects-machine-resources-enable"></a>

You can choose to enable machine resources that are in use in your project and that have been disabled. 

You must have the **Space administrator** role or the **Project administrator** role.

**To enable machine resources**

1. Open the CodeCatalyst console at [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Navigate to your project, and then choose **Project settings**. Choose **Machine resources**.

1. Choose one of the following.
   + To enable individually, choose the selector next to one or more machine resources you want to enable. Choose **Enable**, and then choose **This resource**. 
   + To enable all resources, choose **Enable**, and then choose **All resources**. 
   + To enable all workflow actions, choose **Enable**, and then choose **All workflow actions**. 
   + To enable all blueprints, choose **Enable**, and then choose **All blueprints**. 

# Quotas for projects
<a name="projects-quotas"></a>

The following table describes quotas and limits for projects in Amazon CodeCatalyst. For more information about quotas in Amazon CodeCatalyst, see [Quotas for CodeCatalyst](quotas.md).


|  |  | 
| --- |--- |
| Maximum number of projects per space | 100 | 
| Maximum number of projects to which a user can belong | 1,000 | 
| Maximum number of members that can belong to a project. | 10,000 | 
| Project names |  Project names must be unique within a space. Names must be between 3 and 63 characters. Names are case sensitive. Project names must begin with an alphanumeric character. Valid characters: **A-Z, a-z, 0-9, spaces,** and **. , \$1 (underscore) - (hyphen)** Project names cannot contain any of the following characters: `! ? @ # $ % ^ & * ( ) + = { } [ ] \| \ / > < ~ ` ' " ; : `  | 
| Project descriptions |  Project descriptions can be up to 200 characters. Valid characters: **A-Z, a-z, 0-9, spaces,** and **. , \$1 (underscore) - (hyphen)**. Project descriptions are optional.  | 

# Sending notifications from CodeCatalyst
<a name="notifications"></a>

You can set up notifications to monitor your projects and resources in CodeCatalyst. Users can choose the project events about which they want to receive emails in any project where they are a member. You can also choose to configure notifications sent to an entire team in a team messaging application, such as Slack, by configuring access between a CodeCatalyst space and a Slack workspace, and then configuring notifications for a project to be sent to one or more channels in that Slack workspace. Once you've configured access between a CodeCatalyst space and a Slack workspace, project members will also have the option to add their own Slack member IDs so that they can be notified directly about CodeCatalyst events in connected Slack workspaces and channels.

**Note**  
The set of project events that can be sent to Slack are not the same set of events that users can choose to be notified about in email. 

**Topics**
+ [How do notifications work?](notifications-concepts.md)
+ [Getting started with Slack notifications](getting-started-notifications.md)
+ [Sending Slack and email notifications from CodeCatalyst](notifications-manage.md)

# How do notifications work?
<a name="notifications-concepts"></a>

You can set up your project to provide notifications to your team messaging application, such as Slack. 



## What permissions are necessary for notifications?
<a name="notifications-concepts-permissions"></a>

Any project member can configure, view, update, or delete notification settings for a channel in CodeCatalyst. However, only users with the **Space administrator** role can add or delete Slack workspaces. All users can configure what project events they want to receive emails about for the projects they belong to in CodeCatalyst.

## What CodeCatalyst events can I configure notifications about?
<a name="notifications-concepts-events"></a>

You can configure CodeCatalyst to deliver notifications to one or more Slack channels about workflow events. Once notifications have been configured between a CodeCatalyst project and Slack, project users can choose to add their own Slack member ID in order to receive direct messages in Slack channels about CodeCatalyst events. Users who add their Slack member IDs will receive direct mentions to their IDs in the Slack channels configured for their projects, helping raise awareness about events they care about.

You can also choose what events you want to receive emails about. These emails are sent to the email address configured for your AWS Builder ID.

## How are notifications surfaced?
<a name="notifications-concepts-delivery"></a>

You can configure CodeCatalyst to deliver notifications to one or more Slack channels. You need to authorize CodeCatalyst to grant permissions to access your Slack workspace. Once the authorization is provided, CodeCatalyst can deliver notifications to the Slack channels you configure. If a project member chooses to add their Slack member ID, they can receive mentions about CodeCatalyst events in the Slack channels configured for that project.

## How do I set up notifications?
<a name="notifications-concepts-setup"></a>

Email notifications are configured as part of CodeCatalyst. Project users can choose what events they'd like to receive emails about in their **My settings** page. 

To set up Slack notifications for your project resources, you must complete the following high-level tasks. 

**To set up notifications (high-level tasks)**

1. In CodeCatalyst, you **set up a connection** between CodeCatalyst and a messaging client, such as Slack. Once a Slack workspace is connected, it will be available to all projects in the space. 
**Note**  
Only users with a Space administrator role can add or delete a Slack workspace.

1. In your project in CodeCatalyst, **add the channel** where you want your team to receive notifications.

1. In CodeCatalyst, you **turn on notifications** for various events, such as workflow run failure, and specify the channel where you want them sent.

For detailed steps, see [Getting started with Slack notifications](getting-started-notifications.md).

Once notifications have been configured between a CodeCatalyst space and Slack, users can choose to add their own Slack member IDs to receive direct messages about CodeCatalyst events in the Slack channels configured for their projects,

# Getting started with Slack notifications
<a name="getting-started-notifications"></a>

After you create a project, you can set up Slack notifications that help your team to monitor project resources. 

These steps walk you through setting up Slack notifications for the first time in CodeCatalyst. If you have already configured notifications, see [Sending Slack and email notifications from CodeCatalyst](notifications-manage.md). 

**Note**  
The set of project events that can be sent to notification channels are not the same set of events that users can choose to be notified about in email. For more information, see [Sending Slack and email notifications from CodeCatalyst](notifications-manage.md).

**Topics**
+ [Prerequisites](#getting-started-notifications-prerequisites)
+ [Step 1: Connect CodeCatalyst to your Slack workspace](#getting-started-notifications-connect-slack)
+ [Step 2: Add your Slack channel to CodeCatalyst](#getting-started-notifications-add-slack-channel)
+ [Step 3: Test notifications from CodeCatalyst to Slack](#getting-started-notifications-next-steps)
+ [Step 4: Next steps](#getting-started-notifications-test)

## Prerequisites
<a name="getting-started-notifications-prerequisites"></a>

Before you begin, you need the following:
+ A CodeCatalyst space. For information about creating a CodeCatalyst space and signing in for the first time, see [Set up and sign in to CodeCatalystSet up and sign in to CodeCatalyst](setting-up-topnode.md).
+ A CodeCatalyst project. For more information, see [Creating a project](projects-create.md).
+ A CodeCatalyst account with the **Project administrator** or **Space administrator** role. For more information, see [Granting access with user roles](ipa-roles.md).
+ A Slack account and Slack workspace that can be accessed by CodeCatalyst.
+ A Slack channel where CodeCatalyst will send notifications. The channel can be public or private.

## Step 1: Connect CodeCatalyst to your Slack workspace
<a name="getting-started-notifications-connect-slack"></a>

Only users with the **Space administrator** role can add or delete Slack workspaces. Adding or deleting a Slack workspace affects all projects in the space. To establish the connection between CodeCatalyst and Slack, CodeCatalyst performs a secure OAuth authentication handshake with your Slack workspace. 

Use the following instructions to connect CodeCatalyst to your Slack workspace.

**Note**  
This only needs to be done once for each Slack workspace. You can then set up notifications by Slack channel.

**To connect CodeCatalyst to your Slack workspace**

1. Open the CodeCatalyst console at [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Navigate to your project.

1. In the navigation pane, choose **Project settings**.

1. Choose the **Notifications** tab.

1. Choose **Configure notifications**.

1. Choose **Connect to Slack workspace**.

1. Read the dialog box contents, and then choose **Connect to Slack workspace**.

1. On the **Amazon Q Developer in chat applications** message:

   1. In the upper right, choose the Slack workspace that contains your channel.

   1. Choose **Allow**.

   You are returned to the CodeCatalyst console.

1. Continue to [Step 2: Add your Slack channel to CodeCatalyst](#getting-started-notifications-add-slack-channel).

## Step 2: Add your Slack channel to CodeCatalyst
<a name="getting-started-notifications-add-slack-channel"></a>

You need the Slack channel ID to add your channel to CodeCatalyst.

**To get your Slack channel ID**

1. Sign in to Slack. For more information, see [Sign in to Slack](https://slack.com/help/articles/212681477-Sign-in-to-Slack).

1. Go to the Slack workspace that contains the channel where you want notifications to go. For more information, see [Switch between Slack workspaces](https://slack.com/help/articles/1500002200741-Switch-between-workspaces) or [Sign in to additional Slack workspaces](https://slack.com/help/articles/212681477-Sign-in-to-Slack).

1. In the navigation pane, open the context (right click) menu for the channel where you want notifications to go, and choose **Open channel details**.

   The channel ID is displayed at the bottom of the dialog box. 

1. Copy the **Channel ID** value. You'll need it in the next step.

Using the channel ID you just copied, you can now connect your Slack channel to CodeCatalyst.

**To add your Slack channel to CodeCatalyst**

1. Before you begin, if your Slack channel is private, add the Amazon Q Developer in chat applications app to the channel as follows:

   1. In your Slack channel’s message box, enter **@aws** and choose **aws app** from the dialog box.

   1. Press Enter.

      A Slackbot message appears, indicating that Amazon Q Developer in chat applications is not in the private channel. 

   1. Choose **Invite Them** to invite Amazon Q Developer in chat applications to the channel.

1. In the CodeCatalyst console, choose **Next**.

1. In **Channel ID**, paste the Slack channel ID you obtained earlier.

1. In **Channel name**, enter a name. We recommend using the Slack channel name.

1. Choose **Next**.

1. In **Select notification events**, choose the type of event you want to receive notifications for.

1. Choose **Finish**.

## Step 3: Test notifications from CodeCatalyst to Slack
<a name="getting-started-notifications-next-steps"></a>



After your project is configured to send notifications for workflow status, you can view your notifications in Slack.

**To view your notifications in Slack**

1. In your CodeCatalyst project, [start a workflow manually](workflows-manually-start.md) in order to complete a workflow run and receive a status notification when the run finishes.

1. In Slack, view the channel you set up for notifications. Your notifications show the latest status from each workflow run, and whether it failed or succeeded.

## Step 4: Next steps
<a name="getting-started-notifications-test"></a>

Once a Slack workspace is configured for your CodeCatalyst space, you can add additional Slack channels existing CodeCatalyst projects, and add them for new projects after you create them. You can also let project users know that they can configure personal Slack notifications for their Slack member IDs, and configure the events for which they'll receive emails. For more information, see [Sending Slack and email notifications from CodeCatalyst](notifications-manage.md).

# Sending Slack and email notifications from CodeCatalyst
<a name="notifications-manage"></a>

You can configure CodeCatalyst to send notifications about events that occur in your project. CodeCatalyst can send notifications to messaging clients such as Slack channels. Having CodeCatalyst send messages to Slack channels helps to ensure that your entire team is aware of important events, such as workflow failures. Optionally, you can choose to have CodeCatalyst @mention you in the Slack messages it sends out so that you receive a corresponding direct message (DM).

CodeCatalyst can also send notifications directly to you in an email. Email notifications will be sent about events in any project where you are a member. These emails will be sent to the email address configured in your AWS Builder ID.

**Note**  
The events that can be sent to Slack channels can be different from those sent by email. 

**Topics**
+ [Configuring email notifications](notifications-personal.md)
+ [Sending notifications to Slack channels](notifications-projects.md)
+ [Configuring Slack direct messages](notifications-personal-slack.md)
+ [Editing notifications for a notification channel](notifications-edit.md)
+ [Removing a channel](notifications-remove-channel.md)

# Configuring email notifications
<a name="notifications-personal"></a>

You can choose to have email notifications sent to you about events in any project where you are a member. These emails will be sent to the email address configured in your AWS Builder ID. By default, you will receive emails about all project events for which emails can be sent.<a name="notifications-personal-email"></a>

**To configure email notifications for project events**

1. Open the CodeCatalyst console at [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. In the top menu bar, choose your profile badge, and then choose **My settings**. The CodeCatalyst **My settings** page opens.
**Tip**  
You can also find your user profile by going to the members page for a project or space and choosing your name from the members list.

1. In **Email notifications**, find the project in the list where you want to configure email notifications, and choose **Edit**.

1. Select the events for which you want to receive emails, and then choose **Save**.

# Sending notifications to Slack channels
<a name="notifications-projects"></a>

You can configure CodeCatalyst to send notifications about project events to your team's Slack channels. By doing this, you can help ensure that your entire team is aware of important events, such as when a workflow run fails.

**Note**  
Any member of a project can manage notifications sent to channels for that project. However, only users with the **Space administrator** role can add or delete Slack workspaces. 

Use the following instructions to add a Slack channel to which notifications will be sent.

**To add a Slack channel for notifications**

1. If you're adding your first Slack channel, see instead [Getting started with Slack notifications](getting-started-notifications.md).

   After setting up your first channel, return to this procedure to set up additional channels.

1. Open the CodeCatalyst console at [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Navigate to your project.

1. In the navigation pane, choose **Project settings**.

1. Choose the **Notifications** tab.

1. Choose **Add channel**.

1. Choose **Choose workspace**, and then select the Slack workspace that contains the channel where you want to send notifications.

   If your Slack workspace is not in the list, you can add it by following the instructions in [Getting started with Slack notifications](getting-started-notifications.md).

1. Before entering a **Channel ID**, if the Slack channel you want to add is private, complete these steps:

   1. In your Slack channel’s message box, enter **@aws** and choose **aws app** from the pop-up.

   1. Press Enter.

      A Slackbot message appears, indicating that Amazon Q Developer in chat applications is not in the private channel. 

   1. Choose **Invite Them** to invite Amazon Q Developer in chat applications to the channel.

1. In CodeCatalyst's **Channel ID** field, enter the Slack channel ID. To find the ID, go to Slack, and in the navigation pane, right-click the channel and choose **Open channel details**.

   The channel ID is displayed at the bottom of the dialog box. 

1. In **Channel name**, enter a name. We recommend using the Slack channel name.

1. In **Select notification events**, choose the type of event you want to receive notifications for.

1. Choose **Add**.

# Configuring Slack direct messages
<a name="notifications-personal-slack"></a>

If a CodeCatalyst project has been configured to [send notifications to a Slack channel](notifications-projects.md), those notifications can also be sent as direct messages (DMs). Having notifications sent to you directly as DMs can help raise awareness of events happening in the projects where you have a role. To enable DMs, you must add your Slack member ID to CodeCatalyst. 

**To configure Slack direct messages**

1. Open the CodeCatalyst console at [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. In the top menu bar, choose your profile badge, and then choose **My settings**. The CodeCatalyst **My settings** page opens.
**Tip**  
You can also find your user profile by going to the members page for a project or space and choosing your name from the members list.

1. In **Personal Slack notifications**, choose **Connect Slack ID**, and then choose **Connect to Slack workspace**. A separate window will open.
**Tip**  
This option is not configurable unless a user with the **Space administrator** role has added a Slack workspace for your CodeCatalyst space. For more information, see [Getting started with Slack notifications](getting-started-notifications.md) and [Sending notifications to Slack channels](notifications-projects.md).

1. In the permissions request window, make sure that the name of the workspace matches the Slack workspace configured for the CodeCatalyst space. Choose **Allow** to allow Amazon Q Developer in chat applications access to the workspace. The window will close, and the Slack workspace will show the **Connnection status** as **Connected**.
**Tip**  
If the connection status does not change, check to see if an error occurred connecting the Slack workspace. You might have to scroll up to see the error. 

1. To stop receiving personal Slack notifications, choose the connected Slack workspace, and then choose **Disconnect Slack ID**.

# Editing notifications for a notification channel
<a name="notifications-edit"></a>

You can change which channels notifications go to, and you can turn off specific notifications altogether.

**To edit notifications**

1. Open the CodeCatalyst console at [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Navigate to your project.

1. In the navigation pane, choose **Project settings**.

1. Choose the **Notifications** tab.

1. Choose **Edit notifications**.

1. Do one of the following:
   + To send a notification to a specific channel, choose the channel from the drop-down list.
   + To turn off a notification globally, choose the toggle next to the notification.
   + To stop sending a notification to a specific channel, choose the **X** on the channel.

1. Choose **Save**.

# Removing a channel
<a name="notifications-remove-channel"></a>

You can remove a Slack channel from Amazon CodeCatalyst. By removing a Slack channel, notifications about a chosen CodeCatalyst project will no longer be sent to the channel. 

**To remove a channel**

1. Open the CodeCatalyst console at [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Navigate to your project. In the navigation pane, choose **Project settings**.

1. On the **Project settings** page, choose the **Notifications** tab.

1. Choose the indicator next to the channel you want to remove and then choose **Remove channel**. Choose **Ok** in the confirmation window.