Skip to content
GitLab Next
  • Menu
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • GitLab GitLab
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 44,288
    • Issues 44,288
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 1,283
    • Merge requests 1,283
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GitLab.orgGitLab.org
  • GitLabGitLab
  • Issues
  • #326775
Closed
Open
Issue created Apr 01, 2021 by Paul Slaughter@pslaughter💬Maintainer1 of 12 checklist items completed1/12 checklist items

[Feature flag] Remove `reject_unsigned_commits_by_gitlab` and relevant code

Feature

The feature flag :reject_unsigned_commits_by_gitlab is used to temporarily meet the intention of administrators using reject_unsigned_commits push rule. The best solution to this problem is summarized in this issue 👇

  • Automated/web commits (merge or web IDE commits) should be OpenPGP signed

Once this ☝ is done, we won't need to reject unsigned commits by GitLab since all commits will be signed. This means we can remove this feature flag and the relevant code.

PLEASE NOTE: This is different than normal feature flags, since it's removal also implies the removal of the relevant code.

Why even have a feature flag for this?

  • This way we can relate all code that needs to be removed
  • Some customers have requested the ability to control this behavior while we're in this awkward inbetween stage (see #213581 (comment 537289348)).

Owners

  • Team: groupeditor
  • Most appropriate slack channel to reach out to: #g_create_editor
  • Best individual to reach out to: @pslaughter
  • PM: @ericschurter

The Rollout Plan

  • Enabled by default since this feature flag is introduced retro-actively
  • Remove feature flag and relevant code when #19185 is completed

Expectations

What are we expecting to happen?

  • Nothing should change since feature flag should be enabled by default
  • In a self-hosted instance, if the feature flag is set to off, we are expecting users to be able to use the Web IDE on projects with the reject_unsigned_commits push rule.

What might happen if this goes wrong?

  • brainstorm: It's possible that we may have an off-by-one error, so we should double check this by modifying our existing rspec for both cases.

Rollout Timeline

Initial Rollout N/A

  • Enabled by default

Cleanup

This is an important phase, that should be either done in the next Milestone or as soon as possible. For the cleanup phase, please follow our documentation on how to clean up the feature flag.

  • This issue #19185 is resolved and any of it's relevant feature flags removed,

  • Remove :reject_unsigned_commits_by_gitlab feature flag

    • Remove all references to the feature flag from the codebase
    • Remove relevant code it was controlling from the codebase
    • Remove the YAML definitions for the feature from the repository
    • Create a Changelog Entry
  • Clean up the feature flag from all environments by running this chatops command in #production channel /chatops run feature delete reject_unsigned_commits_by_gitlab.

Final Step

  • Close this rollout issue for the feature flag after the feature flag is removed from the codebase.

Rollback Steps

  • This feature can be disabled by running the following Chatops command:
/chatops run feature set --project=gitlab-org/gitlab reject_unsigned_commits_by_gitlab false
Assignee
Assign to
Time tracking