Toggle navigation
Toggle navigation
This project
Loading...
Sign in
graykode
/
commit-autosuggestions
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
graykode
2020-11-07 01:36:20 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
fc398da131f0e9d5a475bd853de16c1aaa32500d
fc398da1
1 parent
438ede78
(remove) endline argument
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
14 additions
and
15 deletions
commit/commit.py
commit/commit.py
View file @
fc398da
...
...
@@ -26,14 +26,12 @@ def get_diff_from_project():
staged_files
=
[
f
.
decode
(
"utf-8"
)
for
f
in
staged_files
]
return
staged_files
def
commit_message_parser
(
messages
,
endline
=
1
):
message
=
""
def
commit_message_parser
(
messages
):
result
=
[]
for
idx
,
(
path
,
commit
)
in
enumerate
(
messages
.
items
()):
click
.
echo
(
" - "
+
" "
.
join
(
commit
[
"message"
]))
message
+=
" "
.
join
(
commit
[
"message"
])
if
len
(
messages
)
-
1
!=
idx
:
message
+=
(
"
\n
"
*
endline
)
return
message
result
.
append
(
" "
.
join
(
commit
[
"message"
]))
return
result
def
tokenizing
(
code
):
data
=
{
"code"
:
code
}
...
...
@@ -80,8 +78,11 @@ def commit_autosuggestions(diffs):
commit_message
[
example
.
header
.
new_path
]
=
commit
return
commit_message
def
commit
(
message
):
subprocess
.
Popen
([
"git"
,
"commit"
,
"-m"
,
message
],
stdout
=
subprocess
.
PIPE
)
def
commit
(
messages
):
m
=
[]
for
msg
in
messages
:
m
.
extend
([
"-m"
,
msg
])
subprocess
.
Popen
([
"git"
,
"commit"
]
+
m
,
stdout
=
subprocess
.
PIPE
)
@click.group
(
invoke_without_command
=
True
)
@click.pass_context
...
...
@@ -92,25 +93,23 @@ def commit(message):
help
=
'print suggested commit message more detail.'
)
@click.option
(
'--autocommit'
,
'-a'
,
is_flag
=
True
,
help
=
'automatically commit without asking if you want to commit'
)
@click.option
(
'--endline'
,
'-e'
,
type
=
int
,
default
=
1
,
help
=
'number of endlines for each commit message generated by the diff of each file'
)
def
cli
(
ctx
,
file
,
verbose
,
autocommit
,
endline
):
def
cli
(
ctx
,
file
,
verbose
,
autocommit
):
if
not
ctx
.
invoked_subcommand
:
staged_files
=
file
if
file
else
get_diff_from_project
()
staged_files
=
[
f
.
strip
()
for
f
in
staged_files
]
diffs
=
"
\n
"
.
join
(
staged_files
)
messages
=
commit_autosuggestions
(
diffs
=
diffs
)
result
=
commit_autosuggestions
(
diffs
=
diffs
)
if
verbose
:
click
.
echo
(
json
.
dumps
(
messages
,
indent
=
4
,
sort_keys
=
True
)
+
"
\n
"
json
.
dumps
(
result
,
indent
=
4
,
sort_keys
=
True
)
+
"
\n
"
)
click
.
echo
(
click
.
style
(
'[INFO]'
,
fg
=
'green'
)
+
" The generated message is as follows:"
)
message
=
commit_message_parser
(
messages
,
endline
=
endline
)
message
s
=
commit_message_parser
(
result
)
if
autocommit
or
click
.
confirm
(
'Do you want to commit this message?'
):
commit
(
message
)
commit
(
message
s
)
@cli.command
()
...
...
Please
register
or
login
to post a comment