Upgrading: New Repository UI, APIs, and URI management
Closed, ResolvedPublic


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:

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:

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:

For a general overview of creating repositories with the new API, see:

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:

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:

epriestley moved this task from Backlog to v3 on the Diffusion board.May 4 2016, 10:25 PM
epriestley edited projects, added Diffusion (v3); removed Diffusion.
epriestley updated the task description. (Show Details)May 4 2016, 11:45 PM
epriestley updated the task description. (Show Details)May 11 2016, 11:21 PM
avivey updated the task description. (Show Details)May 15 2016, 12:15 AM

Good time of day palls.
How to add tag (respectively connect repo to project) in that new style ?
I'm asking because till now all our commits to HG repo was referenced to task with keywords like "ref" or "closes" etc.
All our repos is organized and setup like that. Today I must create new repo attached to new project and the problem....
Can't reference or act to any task/project with commits?
Or I miss something but can't find even add tag command.
Please advice, thanks in advance !

To edit project tags for a repository, navigate to the repository main page, then click Manage RepositoryEdit Basic Information and add project tags to the "Tags" field.

Start here, on the repository main page, and click Manage Repository on the right:

On the "Manage" screen, make sure you're in the "Basics" section (on the left), then click "Edit Basic Information" (on the right):

Here, you can add or remove project tags using the "Tags" control. After making changes, click Save Changes.

Your changes will appear in the UI on the repository's main screen:

Thank you very much !

epriestley closed this task as Resolved.Jun 16 2016, 6:03 PM

There don't appear to be any major outstanding issues here.