WARNING: These changes are live in HEAD of `master`, but still very rough.
Repositories in Diffusion have received some substantial changes around the editing/management UI, the APIs, and how URIs are configured.
These changes generally do not require any action unless you use the old APIs (see below), but they are fairly sweeping, so you should be aware of them and keep an eye out for possible issues even if you are not directly impacted.
Editing and Management UIs
The old create flow and edit page have been updated. The new create flow has fewer steps and the new edit page is divided more clearly into sections:
Functionally, the new UIs are fairly similar the old UIs. The only major change here is that any user who can view the repository can now view the "Manage" UI to review edit history, check policies, etc (they can't actually edit anything, of course).
NOTE: Some instructional text and workflow instructions haven't come to the new UI yet. These will be migrated forward shortly, as the changes stabilize.
The repository APIs have changed substantially. See T10748 for the primary task. In particular:
- `repository.create`, which barely worked, has been removed.
- `diffusion.repository.edit` replaces it. This endpoint can create and modify repositories.
- `diffusion.uri.edit` supplements `diffusion.repository.edit`, and allows you to create and modify repository URIs via the API.
- `repository.query` is now on its last legs and will be deprecated soon.
- `diffusion.repository.search` replaces it.
The new API endpoints are full-power modern endpoints. For an introduction of these kinds, see:
- [[ https://secure.phabricator.com/book/phabricator/article/conduit_edit/ | Conduit API: Using Edit Endpoints ]]
- [[ https://secure.phabricator.com/book/phabricator/article/conduit_search/ | Conduit API: Using Search Endpoints ]]
Additionally, `bin/repository edit` has been removed. Since introduction, this was slated for removal once Conduit supported its features.
If you make use of the old APIs, particularly `repository.create`, you should update your code to use `diffusion.repository.edit` instead.
Repository URI management has been reworked to be more flexible. See T10366 for the primary task. Broadly, repositories now have a list of associated URIs and you can configure fetch, push, serve, and display behaviors for each URI independently:
This supports various new use cases like proxying reads through Phabricator so you can apply permissions or cloning from one location but showing users a different clone URI, generally makes URI management more explicit, and simplifies internal URI management.
This document walks through use cases and configuration:
- [[ https://secure.phabricator.com/book/phabricator/article/diffusion_uris/ | Diffusion User Guide: URIs ]]