How to protect branches?

We would like to enforce that our development team follow a branching workflow:

  1. Create a feature branch in Git
  2. Push changes to sources to a new branch in Crowdin (conventionally, named the same as the Git branch)
  3. Pull translations from that branch back into the feature branch and commit changes
  4. Open a pull request, merge changes to main
  5. In CI, synchronize the new data in main to the Master branch in Crowdin, and delete the feature branch

To support this workflow, we would like to be able to protect the Crowdin Master branch so that push/pull is only allowed in CI (using a dedicated CI user). Is this possible? Is there an alternative workflow that is recommended?

Very interesting question.

Probably all of this can done natively by default integration, with “branches to synch automatically” and sometimes pause/resume button usage, but can’t say for sure, would be better to read a guide from knowledge base.

What else comes to mind is playing with PC as a buffer zone to use API (Crowdin → PC → GitHub) and vice verse, or GitHub actions, or both actions + API for different branches, here’s some info, API reference should also be somewhere within that portal

Still, as for me it’s better to have 2 stand alone users and 2 stand alone projects, where 1 would be “working” another would be private with only master/main inside and only an owner who would be also holding the integration or CI.