Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • heptapod heptapod
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 163
    • Issues 163
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • heptapod
  • heptapodheptapod
  • Issues
  • #364

Closed
Open
Created Nov 02, 2020 by Georges Racinet@gracinet🦑Owner5 of 8 tasks completed5/8 tasks

Inner GitLab hooks for native Mercurial repositories

For the initial exposition of native (HGitaly) Mercurial repositories in Heptapod, we will need the inner hooks sent from the Mercurial processes to contain Mercurial Node IDs (SHAs) instead of their Git counterpart.

Since we are a long way to replace the existing hg-git backed repositories, we'll need it to be conditional. Overall this will all components, except HGitaly itself:

  • py-heptapod: introduce a new heptapod.native configuration item, defaulting to False. If True, send Mercurial SHAs in the hooks. In later milestones, the same configuration item will be used to bypass conversion to Git entirely
  • py-heptapod: introduce a special HTTP header (e.g., X-HEPTAPOD-HG-NATIVE and have the WSGI application interpret it to set the value of heptapod.native
  • py-heptapod: also react to the HEPTAPOD_HG_NATIVE environment variable to set the value of heptapod.native
  • Rails: make sure the internal API endpoint used by Shell provides the vcs_type information
  • Rails: provide a way to include vcs_type information in responses to Workhorse (probably will be a special header, could even be the same one as understood by py-heptapod)
  • Shell: read vcs_type from the internal API payload, and use it to pass --config heptapod.native on the command line set HEPTAPOD_HG_NATIVE environment variable
  • Workhorse: pass the appropriate X-HEPTAPOD-HG-NATIVE header to the Mercurial HTTP backend
  • Rails: pass --config heptapod.native on the command line or set HEPTAPOD_HG_NATIVE environment variable for all direct hg calls.
Edited Nov 15, 2020 by Georges Racinet
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking