Update description file during PUT /projects/{name}/config
The web UI uses /config to update the project description. This needs to be written out to the $GIT_DIR/description file so external tools like gitweb or cgit can read the description. Change-Id: I28f9d178f3aa2db72eb201b6fa0af40205ad5922
This commit is contained in:
@@ -25,6 +25,7 @@ import com.google.gerrit.reviewdb.client.Project;
|
|||||||
import com.google.gerrit.reviewdb.client.Project.InheritableBoolean;
|
import com.google.gerrit.reviewdb.client.Project.InheritableBoolean;
|
||||||
import com.google.gerrit.reviewdb.client.Project.SubmitType;
|
import com.google.gerrit.reviewdb.client.Project.SubmitType;
|
||||||
import com.google.gerrit.server.CurrentUser;
|
import com.google.gerrit.server.CurrentUser;
|
||||||
|
import com.google.gerrit.server.git.GitRepositoryManager;
|
||||||
import com.google.gerrit.server.git.MetaDataUpdate;
|
import com.google.gerrit.server.git.MetaDataUpdate;
|
||||||
import com.google.gerrit.server.git.ProjectConfig;
|
import com.google.gerrit.server.git.ProjectConfig;
|
||||||
import com.google.gerrit.server.git.TransferConfig;
|
import com.google.gerrit.server.git.TransferConfig;
|
||||||
@@ -51,7 +52,7 @@ public class PutConfig implements RestModifyView<ProjectResource, Input> {
|
|||||||
|
|
||||||
private final MetaDataUpdate.User metaDataUpdateFactory;
|
private final MetaDataUpdate.User metaDataUpdateFactory;
|
||||||
private final ProjectCache projectCache;
|
private final ProjectCache projectCache;
|
||||||
private final Provider<CurrentUser> self;
|
private final GitRepositoryManager gitMgr;
|
||||||
private final ProjectState.Factory projectStateFactory;
|
private final ProjectState.Factory projectStateFactory;
|
||||||
private final TransferConfig config;
|
private final TransferConfig config;
|
||||||
private final DynamicMap<RestView<ProjectResource>> views;
|
private final DynamicMap<RestView<ProjectResource>> views;
|
||||||
@@ -60,14 +61,14 @@ public class PutConfig implements RestModifyView<ProjectResource, Input> {
|
|||||||
@Inject
|
@Inject
|
||||||
PutConfig(MetaDataUpdate.User metaDataUpdateFactory,
|
PutConfig(MetaDataUpdate.User metaDataUpdateFactory,
|
||||||
ProjectCache projectCache,
|
ProjectCache projectCache,
|
||||||
Provider<CurrentUser> self,
|
GitRepositoryManager gitMgr,
|
||||||
ProjectState.Factory projectStateFactory,
|
ProjectState.Factory projectStateFactory,
|
||||||
TransferConfig config,
|
TransferConfig config,
|
||||||
DynamicMap<RestView<ProjectResource>> views,
|
DynamicMap<RestView<ProjectResource>> views,
|
||||||
Provider<CurrentUser> currentUser) {
|
Provider<CurrentUser> currentUser) {
|
||||||
this.metaDataUpdateFactory = metaDataUpdateFactory;
|
this.metaDataUpdateFactory = metaDataUpdateFactory;
|
||||||
this.projectCache = projectCache;
|
this.projectCache = projectCache;
|
||||||
this.self = self;
|
this.gitMgr = gitMgr;
|
||||||
this.projectStateFactory = projectStateFactory;
|
this.projectStateFactory = projectStateFactory;
|
||||||
this.config = config;
|
this.config = config;
|
||||||
this.views = views;
|
this.views = views;
|
||||||
@@ -129,8 +130,8 @@ public class PutConfig implements RestModifyView<ProjectResource, Input> {
|
|||||||
md.setMessage("Modified project settings\n");
|
md.setMessage("Modified project settings\n");
|
||||||
try {
|
try {
|
||||||
projectConfig.commit(md);
|
projectConfig.commit(md);
|
||||||
(new PerRequestProjectControlCache(projectCache, self.get()))
|
projectCache.evict(projectConfig.getProject());
|
||||||
.evict(projectConfig.getProject());
|
gitMgr.setProjectDescription(projectName, p.getDescription());
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
if (e.getCause() instanceof ConfigInvalidException) {
|
if (e.getCause() instanceof ConfigInvalidException) {
|
||||||
throw new ResourceConflictException("Cannot update " + projectName
|
throw new ResourceConflictException("Cannot update " + projectName
|
||||||
|
|||||||
Reference in New Issue
Block a user