1
1
import os
2
2
3
+ try :
4
+ import requests
5
+ except ImportError :
6
+ pass
7
+
3
8
from alabaster import _version as version
4
9
5
10
@@ -14,6 +19,45 @@ def get_path():
14
19
def update_context (app , pagename , templatename , context , doctree ):
15
20
context ["alabaster_version" ] = version .__version__
16
21
22
+ set_up_travis_context (context )
23
+
24
+
25
+ def set_up_travis_context (context ):
26
+ """Add complete Travis URLs to Jinja2 context."""
27
+ github_slug = "/" .join ((context ["theme_github_user" ], context ["theme_github_repo" ]))
28
+
29
+ travis_button = str (context ["theme_travis_button" ]).lower ()
30
+ travis_button_enabled = travis_button == "true"
31
+
32
+ travis_slug = github_slug if travis_button_enabled else travis_button
33
+
34
+ travis_tld = context ["theme_travis_tld" ].lower ()
35
+ if travis_button_enabled and travis_tld == "auto" :
36
+ try :
37
+ travis_api_response = requests .get (
38
+ "https://api.travis-ci.com/repo/{}" .format (
39
+ travis_slug .replace ("/" , "%2F" )
40
+ ),
41
+ headers = {
42
+ "Travis-API-Version" : "3" ,
43
+ "User-Agent" : "Sphinx-Alabaster-Theme/{version} "
44
+ "(+https://github.com/bitprophet/alabaster)" .format (
45
+ version = version .__version__
46
+ ),
47
+ },
48
+ )
49
+ is_travis_com_repo = 200 <= travis_api_response .status_code < 300
50
+ travis_tld = "com" if is_travis_com_repo else "org"
51
+ except NameError :
52
+ travis_tld = "com"
53
+ elif travis_tld != "com" :
54
+ travis_tld = "org"
55
+ travis_base_uri = "travis-ci.{}/{}" .format (travis_tld , travis_slug )
56
+ context ["theme_travis_build_url" ] = "https://{}" .format (travis_base_uri )
57
+ context ["theme_travis_badge_url" ] = "https://api.{}.svg?branch={}" .format (
58
+ travis_base_uri , context ["theme_badge_branch" ]
59
+ )
60
+
17
61
18
62
def setup (app ):
19
63
# add_html_theme is new in Sphinx 1.6+
0 commit comments