Skip to content

Commit

Permalink
Automatically resolve repo default branch
Browse files Browse the repository at this point in the history
This removes the need to specify the :ref if the default branch is not
`master`
  • Loading branch information
julienvincent committed Aug 2, 2024
1 parent fc9d1fb commit 4ff9158
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 8 deletions.
3 changes: 2 additions & 1 deletion docs/module-spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ containers | map? | A docker-compose [`services`](https://docs.docker.com/compos
Field | Type | Description
-|-|-
url | string | The github repo identifier of a remote module in the form `<owner>/<repo>`. Currently this is the only supported value but in future this will be expanded to support additional remote sources.
ref | string? | A git ref that the remote module should be resolved against. Defaults to `master`
ref | string? | A git ref that the remote module should be resolved against. Defaults to the default branch of the repo
or`master`
sha | string? | An exact sha that should be used instead of dynamically resolving it from a ref. Exclusive with ref.
subdir | string? | A directory path within the remote repository that the `module` config file should be resolved from. Defaults to `.kl`

Expand Down
20 changes: 13 additions & 7 deletions src/k16/kl/api/resolver.clj
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,23 @@

(:sha data)))

(defn- get-default-branch [identifier]
(let [res (api.github/request {:path (str "/repos/" identifier)})
data (json/read-value (:body res) json/keyword-keys-object-mapper)]

(when (not= 200 (:status res))
(log/info (str "Failed to resolve default branch for " identifier))
(cli.util/exit! (:message data) 1))

(or (:default_branch data)
"master")))

(defn- resolve-module-ref [{:keys [url sha ref subdir]}]
(when-not sha
(log/debug (str "Resolving " url (if subdir (str "/" subdir) ""))))

(let [sha (if sha sha (get-commit-for-ref url ref))]
(let [ref (if ref ref (get-default-branch url))
sha (if sha sha (get-commit-for-ref url ref))]
(cond-> {:url url :sha sha :ref ref}
subdir (assoc :subdir subdir))))

Expand All @@ -45,12 +57,6 @@
(let [lock-entry (get lock submodule-name)
current-reference (:ref lock-entry)

ref (when (and (not (:sha partial-ref))
(not (:ref partial-ref)))
"master")
partial-ref (cond-> partial-ref
ref (assoc :ref ref))

should-resolve?
(or (not (:sha current-reference))

Expand Down

0 comments on commit 4ff9158

Please sign in to comment.