decaporg / decaporg/decap-cms

Collaboration that integrates with GitHub/GitLab issues

Open
#3,934 2 comments 0 reactions 0 assignees View on GitHub
area: collaboration area: extensions/backends type: feature
Dominant language
JavaScript
Stars
19.4k
Forks
3.1k
Avg merge
1d 14h
Merged PRs (30d)
9

Description

This is a feature request to bring some of the collaborative benefits of GitHub/GitLab to the Netlify CMS process. The idea is that a CMS user can add comments to an edit or a new page. These show up as comments in a GitHub/GitLab issue created in the repo for that edit. Each issue could automatically be tagged with something like `cms-edit`. Comments can include `@mentions` to pull in other reviewers or authors.

There are a number of packages for adding comment systems to web pages that are backed by issues:

* [Vssue](https://vssue.js.org/): Based on Vue; supports GitHub, GitLab, Bitbucket, Gitee, and Gitea.
* [Gitalk](https://gitalk.github.io/): Based on Preact; supports GitHub.
* [Utterances](https://utteranc.es/): Based on vanilla TypeScript; supports GitHub.

One easy way to add collaboration would be to add one of these widgets to the Netlify CMS edit page template. Options for deeper integration could include:

* In the main Contents page, add an "open issue" link or icon next to each content item.
* In the Workflow page, show the number of comments for that edit. Show whether it's approved on the GitHub side.
* In edit page, include the ability to comment on a specific page element. The idea is to replicate the feel of a PR review when commenting on a particular line or section. (This one might be pretty hard, both to design and to implement.)
* Automatically add an issue comment when the state of an edit is changed to "In Review" or "Ready". A tag on the GitHub/GitLab side could be added/changed to reflect the same.

Contributor guide

Open the contributing guide

Research direction

Review the edit page template and the Contents and Workflow page entry points first, then compare the listed Vssue, Gitalk, and Utterances options. Narrow the request to one collaboration flow and define done around its issue creation, comments, mentions, and any workflow-status display; the current issue lists several larger alternatives without naming files or tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
github, gitlab, javascript, react
Domain
api, frontend, web-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.