Completed
Pull Request — master (#563)
by
unknown
03:08
created

LatestReleaseAction   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 31
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 31
rs 10
wmc 2

1 Method

Rating   Name   Duplication   Size   Complexity  
B run() 0 30 2
1
2
import time
3
import datetime
4
5
from lib.base import BaseGithubAction
6
7
8
class LatestReleaseAction(BaseGithubAction):
9
    def run(self, api_user, repository):
10
11
        if api_user:
12
            self.token = self._get_user_token(api_user)
13
14
        release = self._request("GET",
15
                                "/repos/{}/releases/latest".format(repository),
16
                                None,
17
                                self.token)
18
19
        ts_published_at = time.mktime(
20
            datetime.datetime.strptime(
21
                release['published_at'],
22
                "%Y-%m-%dT%H:%M:%SZ").timetuple())
23
24
        results = {'author': release['author']['login'],
25
                   'avatar_url': release['author']['avatar_url'],
26
                   'html_url': release['html_url'],
27
                   'tag_name': release['tag_name'],
28
                   'target_commitish': release['target_commitish'],
29
                   'name': release['name'],
30
                   'body': release['body'],
31
                   'draft': release['draft'],
32
                   'prerelease': release['prerelease'],
33
                   'created_at': release['created_at'],
34
                   'published_at': release['published_at'],
35
                   'ts_published_at': ts_published_at,
36
                   'total_assets': len(release['assets'])}
37
38
        return results
39