@@ -28,12 +28,24 @@ defmodule Gogs do
28
28
def inject_poison , do: @ httpoison
29
29
30
30
@ doc """
31
- returns the remote url for cloning
31
+ `remote_url/3` returns the remote url for cloning
32
32
"""
33
33
def remote_url ( base_url , org , repo ) do
34
34
"#{ base_url } #{ org } /#{ repo } .git"
35
35
end
36
36
37
+
38
+ @ doc """
39
+ `remote_url_ssh/2` returns the remote ssh url for cloning.
40
+ """
41
+ def remote_url_ssh ( org , repo ) do
42
+ url = Envar . get ( "GOGS_URL" )
43
+ port = Envar . get ( "GOGS_SSH_PORT" )
44
+ git_url = GogsHelpers . make_url ( url , port )
45
+ remote_url ( git_url , org , repo )
46
+ end
47
+
48
+
37
49
@ doc """
38
50
`parse_body_response/1` parses the response returned by the Gogs Server
39
51
so your app can use the resulting JSON.
@@ -87,7 +99,8 @@ defmodule Gogs do
87
99
params = % {
88
100
name: repo_name ,
89
101
private: private ,
90
- description: repo_name
102
+ description: repo_name ,
103
+ readme: repo_name
91
104
}
92
105
post ( url , params )
93
106
end
@@ -98,7 +111,7 @@ defmodule Gogs do
98
111
"""
99
112
@ spec delete ( String . t ( ) ) :: { :ok , map } | { :error , any }
100
113
def delete ( url ) do
101
- inject_poison ( ) . delete ( url )
114
+ inject_poison ( ) . delete ( url <> "?token= #{ @ access_token } " )
102
115
|> parse_body_response ( )
103
116
end
104
117
@@ -108,12 +121,13 @@ defmodule Gogs do
108
121
by the environment variable `GOGS_URL`.
109
122
"""
110
123
def remote_repo_delete ( org_name , repo_name ) do
111
- url = @ api_base_url <> "repos/#{ org_name } /#{ repo_name } ?token= #{ @ access_token } "
112
- IO . inspect ( url , label: "remote_repo_delete url" )
124
+ url = @ api_base_url <> "repos/#{ org_name } /#{ repo_name } "
125
+ # IO.inspect(url, label: "remote_repo_delete url")
113
126
delete ( url )
114
127
end
115
128
116
129
130
+
117
131
@ doc """
118
132
`clone/1` clones a remote git repository based on `git_repo_url`
119
133
returns the path of the _local_ copy of the repository.
@@ -122,7 +136,7 @@ defmodule Gogs do
122
136
# IO.inspect("git clone #{git_repo_url}")
123
137
case Git . clone ( git_repo_url ) do
124
138
{ :ok , % Git.Repository { path: path } } ->
125
- # IO.inspect(path)
139
+ IO . inspect ( path )
126
140
path
127
141
{ :error , % Git.Error { message: _message } } ->
128
142
# IO.inspect("Attempted to clone #{git_repo_url}, got: #{message}")
@@ -143,15 +157,21 @@ defmodule Gogs do
143
157
`local_repo_path/1` returns the full system path for the cloned repo
144
158
on the `localhost` i.e. the Elixir/Phoenix server that cloned it.
145
159
"""
146
- def local_repo_path ( repo ) do
147
- temp_dir ( ) <> "/" <> repo
160
+ def local_repo_path ( repo_name ) do
161
+ temp_dir ( ) <> "/" <> repo_name
148
162
end
149
163
150
164
# Made this a function in case we want to
151
165
defp temp_dir do
152
166
File . cwd!
153
167
end
154
168
169
+ def local_branch_create ( repo_name , _branch_name \\ "draft" ) do
170
+ path = local_repo_path ( repo_name )
171
+ repo = % Git.Repository { path: path }
172
+ Git . checkout ( repo , ~w( -b draft) ) # ["-b", branch_name])
173
+ end
174
+
155
175
156
176
# def commit do
157
177
0 commit comments