All notable changes to src-cli
are documented in this file.
- Extension publishing will now add a
gitHead
property to the extension's manifest. #500 src batch [apply|preview]
now ignore repositories in which a.batchignore
file exists. The-force-override-ignore
flag can be used to turn that behaviour off. #509src search
now supports streaming search. Ifsrc search
is called with the flag-stream
,src-cli
will stream back search results as they are found. In conjunction with-stream
you can also specify-display <integer>
to limit the number of results that will be displayed. For example, use-display 0
if you are interested in the search statistics, such as number of results, but don't need to see the actual matches.
- Extension publishing will now add a
gitHead
property to the extension's manifest. #500 src batch [apply|preview]
now ignore repositories in which a.batchignore
file exists. The-force-override-ignore
flag can be used to turn that behaviour off. #509
- Publishing of Docker images for
src
was broken after release 3.24.3. This has been fixed, andsourcegraph/src-cli
images are available once again. #501
- Directly applying a batch change with
src batch apply
against Sourcegraph 3.25 or older would fail in 3.26.0. This has been fixed. #495
- Two new templating variables have been added:
batch_change.name
andbatch_change.description
. #491
- Campaigns are now known as Batch Changes! The
src campaign
set of commands have been renamed tosrc batch
; however,src campaign
andsrc campaigns
will be retained as aliases forsrc batch
until the next major version of Sourcegraph. There should be no breaking changes as a result of this change. #489
- The src login command now also properly respects the
-insecure-skip-verify
flag.
- The volume workspace Docker image is now only pulled if the volume workspace mode is in use. #477
- Using volume workspace mode could result in Git errors when used with Docker containers that do not run as root. These have been fixed. #478
- Added a flag
-insecure-skip-verify
to disable TLS certificate validation.
- Deprecated cache file formats are not read by
src campaign [apply|preview]
anymore.
src users delete
now asks for confirmation to delete all users when no user ID is provided. #470
- The homebrew recipe for
src-cli
contained the wrong binary name.
- Workspaces could sometimes fail with docker bind mount errors, due to a race condition of multiple workspaces accessing the same auxilliary files. #468
- Importing changesets was broken in the previous release and caused a SIGSEGV error.
- Experimental (requires Sourcegraph 3.25 or later):
workspaces
in campaign specs is now available to allow users to define multiple workspaces in a single repository. #442 and #462. - The
changesetTemplate.published
field can now also be used to address a specific changeset in a repository by adding@branch-of-changeset
at the end of the pattern. See #461 for an example and details.
- When
docker
becomes unresponsivesrc campaign [apply|preview]
would get stuck and ignore Ctrl-C signals. That is now fixed. - The
steps.files
attributes in campaign specs have been broken since 3.23.2 and now work again.
- 3.24.2 disabled the faster volume workspace on macOS when one or more non-root Docker images was used by a campaign to work around the bug in issue #432. This functionality has now been restored. #434
- Executing campaigns on macOS 11 with Docker 3.1 could fail when using a volume workspace. This has been fixed. #436
- Internal changes to the
src lsif upload
command. #430
steps
in campaign specs can now haveoutputs
that support templating. #424changesetTemplate
fields in campaign specs now also support templating. #424
- Add verbosity flag to
lsif upload
action. Supply-trace=1
,-trace=2
, or-trace=3
to the action to specify verbosity.
src campaign [apply|preview]
can now make use of Docker volumes, rather than bind-mounting the host filesystem. This is now the default on Intel macOS so long as the Docker images used in the campaign steps run as the same user, as volume mounts have generally better performance there. The optional-workspace
flag can be used to override the default. #412
src login
now defaults to validating againstSRC_ENDPOINT
if configured.
src config
now works correctly when provided a subject.
- The src version command didn't send any authentication headers before, which could have failed for some instance configurations. The authentication header is now properly set for the request done in this command. #411
- Experimental:
transformChanges
in campaign specs is now available as a feature preview to allow users to create multiple changesets in a single repository. #398
src campaign [apply|preview]
now show the current execution progress in numbers next to the progress bar. #396
- Two race conditions in the terminal UI of
src campaign [apply|preview]
have been fixed. #399 - A regression caused repositories on unsupported code host to not be skipped by
src campaign [apply|preview]
, regardless of whether-allow-unsupported
was set or not. #403 - Previously
src campaign [apply|preview]
would crash when executing a campaign spec that containedsteps
but nochangesetTemplate
. #406 src extensions copy
would copy an extension from the wrong Sourcegraph instance. #409
- Campaign steps may now include environment variables from outside of the campaign spec using array syntax. #392
- A new
-skip-errors
flag has been added tosrc campaign [apply|preview]
to allow users to continue execution of and upload a campaign spec even if execution failed in some repositories. #395
- The evaluation of the
repository.branch
attribute has been fixed to actually cause the correct version of the repository to be used. #393 - Normally, when one or more repositories in a campaign generate an empty diff, a changeset spec isn't created. From src-cli 3.21.9 to 3.22.3, inclusive, re-running a campaign would result in an empty changeset spec being created by mistake if the empty changeset spec was in the execution cache, which would result in errors on Sourcegraph when applying the campaign. This has been fixed, and empty changeset specs in the cache are now treated the same way as uncached changeset specs that are empty: they are skipped, and a message is displayed in
-v
mode indicating the repo that was skipped. #397
src campaign [apply|preview]
now prints more detailed information about the diffs produced in each repository when run in verbose mode with-v
. #390- The dependency
go-diff
has been upgraded to 0.6.1 to include sourcegraph/go-diff#55.
- If
src campaign [validate|apply|preview]
was aborted while it was downloading repository archives it could leave behind partial ZIP files that would produce an error on the next run. This is now fixed by deleting partial files on abort. #388 - A bug in
src campaign [apply|preview]
that would cause status bars in the TUI to not update has been fixed. #389
src campaign [validate|apply|preview]
now print an error and usage information if a user accidentally provides an additional argument. #384- Fix a regression that was introduced by #361 and caused the "Resolving repositories" step of
src campaign [apply|preview]
to crash when the search query in the campaign spec yielded file matches and repository matches from the same repository.
- Fixed a bug that could cause
src campaign [apply|preview]
to crash in rare circumstances when executing a campaign spec due to a bug in the logic for the progress bar. #378
- Commands for campaigns no longer require the
-namespace
parameter. If omitted, campaigns will use the currently authenticated user as the namespace. #372 src campaign [apply|preview]
now caches the result of running steps in a repository even if they didn't produce changes.
src campaign [apply|preview]
could fail to parse the produced diff in a repository whengit
was configured to use a customdiff
program. The fix is to ignore any localgit
configuration when runninggit
commands. #373
- Restored backward compatibility when creating campaigns against Sourcegraph 3.19, provided author details are not provided in the campaign spec. #370
- Campaign steps run in a container that does not run as root could fail on systems that do not map the running user ID to the container, most notably desktop Linux. This has been fixed: temporary files and workspaces mounted into the container now have sufficient permissions to allow the container user to execute the step. #366
- Executing campaigns on Windows would fail due to obscure
--cidfile
errors: namely, the temporary cidfile would not be removed beforedocker run
was invoked. This has been fixed. #368 - Unresponsive containers started by
src campaign [apply|preview]
can now be killed by hitting Ctrl-C. Previously the signal wasn't properly forwarded to the process in the container. #369
- EXPERIMENTAL: Templated campaign specs and file mounting. The campaign specs evaluated by
src campaign [preview|apply]
can now include template variables insteps.run
,steps.env
, and the newsteps.files
property, which allows users to create files inside the container in which the step is executed. The feature is marked as EXPERIMENTAL because it might change in the near future until we deem it non-experimental. See #361 for details.
- The
src lsif upload
command now respectsSRC_HEADER_
environment variables for multipart uploads. These environment variables are described here. #360
- The progress bar in
src campaign [preview|apply]
now shows when executing a step failed in a repository by styling the line red and displaying standard error output. #355 - The
src lsif upload
command will give more informative output when an unexpected payload (non-JSON or non-unmarshallable) is received from the target endpoint. #359
- The cache dir used by
src campaign [preview|apply]
is now created before trying to create files in it, fixing a bug where the first run of the command could fail with a "file doesn't exist" error message. #352
- The
published
flag in campaign specs may now be an array, which allows only specific changesets within a campaign to be published based on the repository name. #294 - A new
src campaign new
command creates a campaign spec YAML file with common values prefilled to make it easier to create a new campaign. #339 - New experimental command
src validate
validates a Sourcegraph installation. #200
- Error reporting by
src campaign [preview|apply]
has been improved and now includes more information about which step failed in which repository. #325 - The default behaviour of
src campaigns [preview|apply]
has been changed to retain downloaded archives of repositories for better performance across re-runs of the command. To use the old behaviour and delete the archives use the-clean-archives
flag. Repository archives are also not stored in the directory for temp data (see-tmp
flag) anymore but in the cache directory, which can be configured with the-cache
flag. To manually delete archives between runs, delete the*.zip
files in the-cache
directory (seesrc campaigns -help
for its default location). src campaign [preview|apply]
now check whethergit
anddocker
are available before trying to execute a campaign spec's steps. #326- The progress bar displayed by
src campaign [preview|apply]
has been extended by status bars that show which steps are currently being executed for each repository. #338 src campaign [preview|apply]
now shows a warning when no changeset specs have been created.- Requests sent to Sourcegraph by the
src campaign
commands now use gzip compression for the body when talking to Sourcegraph 3.21.0 and later. #336 and #343
- Log files created by
src campaigns [preview|apply]
are deleted again after successful execution. This was a regression and is not new behaviour. If steps failed to execute or the-keep-logs
flag is set the log files are not cleaned up. src campaign [preview|apply]
now correctly handle the interrupt signal (emitted in a terminal with Ctrl-C) and abort execution of campaign steps, cleaning up running Docker containers.
- The new
src login
subcommand helps you authenticatesrc
to access your Sourcegraph instance with your user credentials. #317
- Campaigns specs now include an optional
author
property. (If not included,src campaigns
generates default values for author name and email.)src campaigns
now includes the name and email in all changeset specs that it generates. - The campaigns temp directory can now be overwritten by using the
-tmp
flag withsrc campaigns [apply|preview]
or by settingSRC_CAMPAIGNS_TMP_DIR
. The directory is used to, for example, store log files and unzipped repository archives when executing campaign specs.
- Repositories without a default branch are skipped when applying/previewing a campaign spec. #312
- Log files produced when applying/previewing a campaign spec now have the
.log
file extension for easier opening. #315 - Campaign specs that apply to unsupported repositories will no longer generate an error. Instead, those repositories will be skipped by default and the campaign will be applied to the supported repositories only. #314
- Empty changeset specs without a diff are no longer uploaded as part of a campaign spec. #313
- The default branch for the
src-cli
project has been changed tomain
. #262
src campaigns
output has been improved in the Windows console. #274src campaigns
will no longer generate warnings ifuser.name
oruser.email
have not been set in the global Git configuration. #277
- Add
-dump-requests
as an option to all commands that interact with the Sourcegraph API. #266
- Reworked the
src campaigns
family of commands to align with the new spec-based workflow. Most notably, campaigns are now created and applied using the newsrc campaigns apply
command, and use the new YAML spec format. #260
- Add -upload-route to the lsif upload command.
- New command
src serve-git
which can serve local repositories for Sourcegraph to clone. This was previously in a command calledsrc-expose
. See serving local repositories in our documentation to find out more. #12363 - When used with Sourcegraph 3.18 or later, campaigns can now be created on GitLab. #231
- Fix inferred root for lsif upload command. #248
- Removed
clone-in-progress
flag. #246
- Add
--no-progress
flag to thelsif upload
command to disable verbose output in non-TTY environments. SRC_HEADER_AUTHORIZATION="Bearer $(...)"
is now supported for authenticatingsrc
with custom auth proxies. See auth proxy configuration docs for more information. #239- Pull missing docker images automatically. #191
- Searches that result in errors will now display any alerts returned by Sourcegraph, including suggestions for how the search could be corrected. #221