Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-platform
Commits
619f72f3
Commit
619f72f3
authored
Aug 08, 2014
by
David Baumgold
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #4767 from edx/release-script-validation-failed
Improvements to the release.py script
parents
b9a285f1
f4bfe464
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
61 additions
and
6 deletions
+61
-6
scripts/release.py
+61
-6
No files found.
scripts/release.py
View file @
619f72f3
...
...
@@ -4,19 +4,26 @@ a release-master multitool
"""
from
__future__
import
print_function
,
unicode_literals
import
sys
from
path
import
path
from
git
import
Repo
,
Commit
from
git.refs.symbolic
import
SymbolicReference
import
argparse
from
datetime
import
date
,
timedelta
from
dateutil.parser
import
parse
as
parse_datestring
import
re
import
collections
import
functools
import
textwrap
import
requests
import
json
import
getpass
try
:
from
path
import
path
from
git
import
Repo
,
Commit
from
git.refs.symbolic
import
SymbolicReference
from
dateutil.parser
import
parse
as
parse_datestring
import
requests
except
ImportError
:
print
(
"Error: missing dependencies! Please run this command to install them:"
)
print
(
"pip install path.py requests python-dateutil GitPython==0.3.2.RC1"
)
sys
.
exit
(
1
)
try
:
from
pygments.console
import
colorize
except
ImportError
:
...
...
@@ -149,10 +156,58 @@ def create_github_creds():
headers
=
headers
,
data
=
json
.
dumps
(
payload
),
)
if
not
response
.
ok
:
raise
requests
.
exceptions
.
RequestException
(
response
.
json
()[
"message"
])
message
=
response
.
json
()[
"message"
]
if
message
!=
"Validation Failed"
:
raise
requests
.
exceptions
.
RequestException
(
message
)
else
:
# A token called "edx-release" already exists on Github.
# Delete it, and try again.
token_id
=
get_github_auth_id
(
username
,
password
,
"edx-release"
)
if
token_id
:
delete_github_auth_token
(
username
,
password
,
token_id
)
response
=
requests
.
post
(
"https://api.github.com/authorizations"
,
auth
=
(
username
,
password
),
headers
=
headers
,
data
=
json
.
dumps
(
payload
),
)
if
not
response
.
ok
:
message
=
response
.
json
()[
"message"
]
raise
requests
.
exceptions
.
RequestException
(
message
)
return
(
username
,
response
.
json
()[
"token"
])
def
get_github_auth_id
(
username
,
password
,
note
):
"""
Return the ID associated with the Github auth token with the given note.
If no such auth token exists, return None.
"""
response
=
requests
.
get
(
"https://api.github.com/authorizations"
,
auth
=
(
username
,
password
),
headers
=
{
"User-Agent"
:
"edx-release"
},
)
if
not
response
.
ok
:
message
=
response
.
json
()[
"message"
]
raise
requests
.
exceptions
.
RequestException
(
message
)
for
auth_token
in
response
.
json
():
if
auth_token
[
"note"
]
==
"edx-release"
:
return
auth_token
[
"id"
]
return
None
def
delete_github_auth_token
(
username
,
password
,
token_id
):
response
=
requests
.
delete
(
"https://api.github.com/authorizations/{id}"
.
format
(
id
=
token_id
),
auth
=
(
username
,
password
),
headers
=
{
"User-Agent"
:
"edx-release"
},
)
if
not
response
.
ok
:
message
=
response
.
json
()[
"message"
]
raise
requests
.
exceptions
.
RequestException
(
message
)
def
ensure_github_creds
(
attempts
=
3
):
"""
Make sure that we have Github OAuth credentials. This will check the user's
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment