

# Working with continuous modernization
<a name="ct-working-with"></a>

## Source management
<a name="ct-source-management"></a>

Use `atx ct source` commands to connect repositories. Supported providers: GitHub, GitLab, Bitbucket, local.

### GitHub organizations
<a name="ct-source-github"></a>

Token: personal access token (classic) with `repo` scope. Read-only for analysis, full repo for remediation.

```
atx ct source add --name {{name}} --provider github --org {{org}} --token {{pat}}
```

### GitLab groups and users
<a name="ct-source-gitlab"></a>

Token: personal access token with `api` scope.

```
atx ct source add --name {{name}} --provider gitlab --org {{group-or-user}} --token {{pat}}
# Self-hosted:
atx ct source add --name {{name}} --provider gitlab --org {{group-or-user}} --token {{pat}} --url https://{{gitlab.example.com}}
```

### Bitbucket workspaces and projects
<a name="ct-source-bitbucket"></a>

Bitbucket Cloud — scopes: `read:repository:bitbucket`, `write:repository:bitbucket`, `read:pullrequest:bitbucket`, `write:pullrequest:bitbucket`. Also needs `--email` and `--username`.

```
atx ct source add --name {{name}} --provider bitbucket --org {{workspace}} --token {{api-token}} --email {{email}} --username {{username}}
```

Bitbucket Data Center:

```
atx ct source add --name {{name}} --provider bitbucket --org {{project-key}} --token {{http-access-token}} --url https://{{bitbucket.example.com}}
```

### Local repositories
<a name="ct-source-local"></a>

```
atx ct source add --name {{name}} --provider local --path {{parent-directory}}
```

**Important**  
`--path` must point to a parent directory containing git repos as subdirectories, not to a single repo.

### Managing sources
<a name="ct-managing-sources"></a>

```
atx ct source list
atx ct source remove --name {{name}}
```

## Repository discovery and management
<a name="ct-repository-discovery"></a>

```
atx ct discovery scan --source {{name}}
atx ct discovery status --source {{name}}
atx ct discovery scan --source {{name}} --path {{new-directory}}
```

After discovery:

```
atx ct repository list
atx ct repository list --source {{name}}
atx ct repository list --labels "{{team:frontend,priority:high}}"
atx ct repository update --source {{name}} --repo "{{source}}::{{slug}}" --labels "{{team:frontend,priority:high}}"
atx ct repository update --source {{name}} --labels "{{migration:wave-1}}"
```

## Running analysis
<a name="ct-running-analysis"></a>

```
atx ct analysis run --type {{type}} --source {{name}} [--repo {{source}}::{{slug}}] [--wait]
atx ct analysis get --id {{id}} --json
atx ct analysis list --json
atx ct analysis list --status {{pending|running|complete|cancelled|failed}} --json
atx ct analysis list --type {{type}} --json
atx ct analysis cancel --id {{id}}
atx ct analysis delete --id {{id}} [--cascade-findings]
```

### Custom analysis
<a name="ct-custom-analysis"></a>

```
atx ct analysis run --type custom --transformation-name {{name}} --source {{source}} --repo {{source}}::{{slug}} --wait
```

Configuration with `-g` flag: key-value, JSON, or file path.

List TDs: `atx custom def list`

## Managing findings
<a name="ct-managing-findings"></a>

```
atx ct findings list --json
atx ct findings list --repo {{source}}::{{slug}} --source {{name}} --severity {{high|medium|low}} --type {{analysis-type}} --status {{open|dismissed|obsolete}} --analysis-id {{id}} --fix-transform {{transform-name}} --json
```

### Finding statuses
<a name="ct-finding-statuses"></a>
+ `open` — Active
+ `dismissed` — Manually dismissed (requires reason)
+ `obsolete` — System-set when re-analysis no longer produces the finding

```
atx ct findings update --id {{id}} --status dismissed --reason "{{reason}}"
atx ct findings update --id {{id}} --status open
atx ct findings batch-update --ids {{id1}},{{id2}} --status dismissed --reason "{{reason}}"
atx ct findings get --id {{id}}
atx ct findings delete --id {{id}}
```

### Finding obsolescence
<a name="ct-finding-obsolescence"></a>

Re-analysis marks resolved findings as obsolete. Cannot be re-opened. Retained for audit.

## Creating remediations
<a name="ct-creating-remediations"></a>

Three modes: findings-based, TD override, direct TD.

```
atx ct remediation create --ids {{id1}},{{id2}} --name "{{name}}"
atx ct remediation create --ids {{id1}},{{id2}} --transformation-name {{TD}}
atx ct remediation create --transformation-name {{TD}} --repo {{source}}::{{slug}}
```

Output by provider: GitHub PR, GitLab MR, Bitbucket PR, Local branch.

**Note**  
Token must have write access for PR/MR creation.

Local execution with `--local` flag.

```
atx ct remediation create --transformation-name {{TD}} --repo {{source}}::{{slug}} -g "{{additionalPlanContext=Upgrade to Node.js 22}}"
atx ct remediation list
atx ct remediation status --id {{id}}
atx ct remediation retry --id {{id}}
atx ct remediation delete --id {{id}}
```

## AWS Transform web application (Optional)
<a name="ct-web-application"></a>

The AWS Transform web application is an optional interface for monitoring continuous modernization analyses, findings, and remediations across your portfolio of code sources.

Before using the AWS Transform web application, you need to have a user identity enabled to access AWS Transform in your organization. For information about enabling AWS Transform, see [Setting up AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/transform-setup.html).

To use the AWS Transform web application:

1. Visit `https://aws.amazon.com/transform/` and sign in using AWS IAM Identity Center credentials.

1. If continuous modernization does not appear after you sign in, sign in with IAM credentials instead. To enable IAM credentials sign-in:

   1. In the AWS Management Console, open AWS Transform and choose **Settings**.

   1. In the **Access AWS Transform with IAM credentials** section, enable IAM credentials access.

   1. On the same settings page, copy the sign-in link shown under **Web application URL (with IAM)**.

   1. Paste the sign-in URL into the same browser window where the AWS Management Console is open. This ensures the web application uses the AWS credentials from that account.

1. Open the left navigation menu and choose **continuous modernization**. The Dashboard displays summary statistics including sources, repositories, total findings by severity, and analysis types.

1. Use the **Analyses**, **Findings**, and **Remediations** tabs to view detailed results.

1. Chat with AWS Transform directly from the web application to ask questions about your analyses, findings, or remediations.

The web application is designed for enterprise-scale operations where you need centralized visibility into continuous modernization analyses and remediations across multiple codebases.