Class: GemContribute::Operations::Fork
- Inherits:
-
Object
- Object
- GemContribute::Operations::Fork
- Defined in:
- lib/gem_contribute/operations/fork.rb
Overview
Bootstrap step 1: ensure the viewer owns a fork of ‘project` (creating one if needed). Returns a `Result` describing what happened, or a tagged `Failure` for the caller to render. Does no filesystem work — that’s ‘Operations::Clone`’s job. Does no I/O — that’s the caller’s job (per ADR-0012).
Defined Under Namespace
Classes: Result
Instance Method Summary collapse
Instance Method Details
#call(adapter:, project:) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/gem_contribute/operations/fork.rb', line 17 def call(adapter:, project:) fork = adapter.fork(project) Success( Result.new( clone_url: fork.clone_url, fork_url: fork.fork_url, upstream_url: adapter.repo_url(project.owner, project.repo), viewer: fork.viewer, reused: fork.reused ) ) rescue GemContribute::AuthRequired Failure(:unauthenticated) rescue GemContribute::AdapterError => e Failure([:adapter_error, e.]) end |