Jump to >

attach

rbt attach is used to upload file attachments to a review request. The provided file will be attached to the review request matching review-request-id.

Usage

$ rbt attach [options] <review-request-id> <file>

JSON Output

New in version 3.0.

When running with --json, the results of the attachment will be outputted as JSON. This can be used by programs that wrap RBTools in order to automate attaching changes to review requests.

Successful Payloads

When attachment is successful, the results are in the form of:

{
    "status": "success",

    // Absolute path to the local attached file.
    "attached_file": "<string>",

    // The ID of the attachment history record.
    "attachment_history_id": <int>,

    // The provided or generated caption.
    "caption": "<string>",

    // The filename recorded for the attachment.
    "filename": "<string>",

    // The ID of the file attachment.
    "id": <int>,

    // The stored mimetype of the attachment.
    "mimetype": "<string>",

    // The ID of the review request.
    "review_request_id": <int>,

    // The URL of the review request.
    "review_request_url": "<string>",

    // The URL of the review UI for the attachment.
    "review_url": "<string>",

    // The ID of the attachment revision.
    "revision": <int>
}

For example:

$ rbt attach --json --caption "My Screenshot" 123 ./screenshot.png
{
    "attached_file": "/home/user/src/project/screenshot.png",
    "attachment_history_id": 132,
    "caption": "My Screenshot",
    "download_url": "https://example.com/media/uploaded/files/2022/03/17/94c05e13-de20-43e4-a0f8-bbb9b403af6f__screenshot.png",
    "filename": "screenshot.png",
    "id": 289,
    "mimetype": "image/png",
    "review_request_id": 123,
    "review_request_url": "https://example.com/r/123/",
    "review_url": "https://example.com/r/123/file/289/",
    "revision": 1,
    "status": "success"
}

Error Payloads

When there’s an error attaching a file, the results will be in the form of:

{
    "status": "failed",

    // A list of errors from the operation.
    "errors": [
        "<string>",
        ...
    ]
}

For example:

$ rbt attach --json 123 ./screenshorts.png
{
    "errors": [
        "/home/user/src/project/screenshorts.png is not a valid file."
    ],
    "status": "failed"
}

Options

--filename

Custom filename for the file attachment.

--caption

Caption for the file attachment.

--attachment-history-id <id>

The ID of an existing file attachment history record to append this attachment to. This will replace the existing attachment, and enable diffing for files that support it.

New in version 3.0.

-d, --debug

Displays debug output.

This information can be valuable when debugging problems running the command.

The default can be set in DEBUG in .reviewboardrc.

--json

Output results as JSON data instead of text.

The default can be set in JSON_OUTPUT in .reviewboardrc.

New in version 3.0.

Review Board Server Options

Options necessary to communicate and authenticate with a Review Board server.

--server <url>

Specifies the Review Board server to use.

The default can be set in REVIEWBOARD_URL in .reviewboardrc.

--username <username>

The user name to be supplied to the Review Board server.

The default can be set in USERNAME in .reviewboardrc.

--password <password>

The password to be supplied to the Review Board server.

The default can be set in PASSWORD in .reviewboardrc.

--ext-auth-cookies <ext auth cookies>

Use an external cookie store with pre-fetched authentication data. This is useful with servers that require extra web authentication to access Review Board, e.g. on single sign-on enabled sites.

The default can be set in EXT_AUTH_COOKIES in .reviewboardrc.

New in version 0.7.5.

--api-token <token>

The API token to use for authentication, instead of using a username and password.

The default can be set in API_TOKEN in .reviewboardrc.

New in version 0.7.

--disable-proxy

Prevents requests from going through a proxy server.

The default can be set in ENABLE_PROXY in .reviewboardrc.

--disable-ssl-verification

Disable SSL certificate verification. This is useful with servers that have self-signed certificates.

The default can be set in DISABLE_SSL_VERIFICATION in .reviewboardrc.

New in version 0.7.3.

Use an in-memory cookie store instead of writing them to a file. No credentials will be saved or loaded.

The default can be set in SAVE_COOKIES in .reviewboardrc.

New in version 0.7.3.

--disable-cache

Disable the HTTP cache completely. This will result in slower requests.

The default can be set in DISABLE_CACHE in .reviewboardrc.

New in version 0.7.3.

--disable-cache-storage

Disable storing the API cache on the filesystem, instead keeping it in memory temporarily.

The default can be set in IN_MEMORY_CACHE in .reviewboardrc.

New in version 0.7.3.

--cache-location <file>

The file to use for the API cache database.

The default can be set in CACHE_LOCATION in .reviewboardrc.

New in version 0.7.3.

--ca-certs <file>

Additional TLS CA bundle.

The default can be set in CA_CERTS in .reviewboardrc.

--client-key <file>

Key for TLS client authentication.

The default can be set in CLIENT_KEY in .reviewboardrc.

--client-cert <file>

Certificate for TLS client authentication.

The default can be set in CLIENT_CERT in .reviewboardrc.

--proxy-authorization <proxy authorization>

Value of the Proxy-Authorization header to send with HTTP requests.

The default can be set in PROXY_AUTHORIZATION in .reviewboardrc.

Repository Options

--repository <name>

The name of the repository configured on Review Board that matches the local repository.

The default can be set in REPOSITORY in .reviewboardrc.

--repository-url <url>

The URL for a repository.

When generating diffs, this can be used for creating a diff outside of a working copy (currently only supported by Subversion with specific revisions or --diff-filename, and by ClearCase with relative paths outside the view).

For Git, this specifies the origin URL of the current repository, overriding the origin URL supplied by the client.

The default can be set in REPOSITORY_URL in .reviewboardrc.

Changed in version 0.6: Prior versions used the REPOSITORY setting in .reviewboardrc, and allowed a repository name to be passed to --repository-url. This is no longer supported in 0.6 and higher. You may need to update your configuration and scripts appropriately.

--repository-type <type>

The type of repository in the current directory. In most cases this should be detected automatically, but some directory structures containing multiple repositories require this option to select the proper type. The rbt list-repo-types command can be used to list the supported values.

The default can be set in REPOSITORY_TYPE in .reviewboardrc.