GogsHelpers (gogs v0.9.0)
Helper functions that can be unit tested independently of the main functions. If you spot any way to make these better, please share: https://github.com/dwyl/gogs/issues
Link to this section Summary
Functions
api_base_url/0
returns the Gogs
Server REST API url for API requests.
get_org_name_from_url/1
extracts the organisation name from a .git url.
ssh://git@gogs-server.fly.dev:10022/theorg/myrepo.git
get_repo_name_from_url/1
extracts the repository name from a .git url.
Feel free to refactor/simplify this function if you want.
local_git_repo/2
returns the %Git.Repository{}
(struct) for an org
and repo
on the localhost
. This is used by the Git
module to perform operations.
local_repo_path/2
returns the full system path for the cloned repo
on the localhost
i.e. the Elixir/Phoenix server that cloned it.
make_url/2
constructs the URL based on the supplied git url
and TCP port
.
If the port
is set it will be a custom Gogs instance.
remote_url/3
returns the git remote url.
remote_url_ssh/2
returns the remote ssh url for cloning.
temp_dir/1
returns the Current Working Directory (CWD).
Made this a function in case we want to change the location of the
directory later e.g. to a temporary directory.
Link to this section Functions
api_base_url()
@spec api_base_url() :: String.t()
api_base_url/0
returns the Gogs
Server REST API url for API requests.
examples
Examples
iex> GogsHelpers.api_base_url() "https://gogs-server.fly.dev/api/v1/"
get_org_name_from_url(url)
get_org_name_from_url/1
extracts the organisation name from a .git url.
ssh://git@gogs-server.fly.dev:10022/theorg/myrepo.git
get_repo_name_from_url(url)
get_repo_name_from_url/1
extracts the repository name from a .git url.
Feel free to refactor/simplify this function if you want.
local_git_repo(org, repo)
@spec local_git_repo(String.t(), String.t()) :: Git.Repository.t()
local_git_repo/2
returns the %Git.Repository{}
(struct) for an org
and repo
on the localhost
. This is used by the Git
module to perform operations.
local_repo_path(org, repo)
local_repo_path/2
returns the full system path for the cloned repo
on the localhost
i.e. the Elixir/Phoenix server that cloned it.
make_url(git_url, port \\ 0)
make_url/2
constructs the URL based on the supplied git url
and TCP port
.
If the port
is set it will be a custom Gogs instance.
examples
Examples
iex> GogsHelpers.make_url("gogs-server.fly.dev", "10022") "ssh://git@gogs-server.fly.dev:10022/"
iex> GogsHelpers.make_url("github.com") "git@github.com:"
remote_url(base_url, org, repo)
remote_url/3
returns the git remote url.
remote_url_ssh(org, repo)
remote_url_ssh/2
returns the remote ssh url for cloning.
temp_dir(dir \\ nil)
temp_dir/1
returns the Current Working Directory (CWD).
Made this a function in case we want to change the location of the
directory later e.g. to a temporary directory.