NOTE: This task describes changes currently available in `master`. They will be available in `stable` in **2016 Week 20**.
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.
See T10923 for known errata.
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:
{F1258202}
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).
For an overview of the new management UI, see:
- @{article:Diffusion User Guide: Managing Repositories}
API Changes
=========
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 to endpoints 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 ]]
For a general overview of creating repositories with the new API, see:
- @{article:Diffusion User Guide: Repositories API}
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.
URI Changes
==========
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:
{F1258212}
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 ]]