mirror of
https://github.com/ets-labs/python-dependency-injector.git
synced 2024-11-24 10:34:01 +03:00
fa469618dd
* Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Add files via upload * Update README.rst * Rename Blank Diagram (1).svg to di-map.svg * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Add files via upload * Rename Blank Diagram (2).svg to di-map2.svg * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Add files via upload * Add files via upload * Rename README.svg to di-map3.svg * Update README.rst * Add files via upload * Rename README - Page 3.svg to di-map4.svg * Update README.rst * Add files via upload * Rename README - Copy of Page 3.svg to di-map5.svg * Update README.rst * Delete di-map.svg * Delete di-map2.svg * Delete di-map3.svg * Delete di-map4.svg * Update README.rst * Update README.rst * Add Github Navigator - Flask application * Do more refactoring for ghnav-flask * More refactoring * Update README * Add tests * Update readme * Add Flask extension * Add Factory.provides attribute * Add Flask extension module * User flask extension in githubnavigator example * Add README for ghnav-flask * Update ghnav-flask README * Update ghnav-flask README * Update README with ghnav container example * Move ghnav-flask to miniapps/ folder * Fix auth token reading from env for ghnav-flask * Update readme * Fix ghnav-flask linter errors * Add downloads and wheel badge * Add tests for flask extension * Fix flask tests * Add requirements-ext.txt installation to tox.ini * Add API docs for ext.flask module * Update setup.py * Add Flask to the list of keywords * Update badges on docs README * Update docs README title * Fix ext.flask tests * Fix syntax of ext.flask for Python 2.7, 3.4, 3.5 * Fix syntax of ext.flask for Python 2.7, 3.4, 3.5 * Fix imports in ext.flask for Python 2.7, 3.4, 3.5 * Update ghfnav-flask README * Update ghfnav-flask README * Remove setting of empty github token * Add flask extras * Update requirements * Update requirements * Add flask extra to python 3.4 tox.ini * Update changelog * Update changelog
42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
"""Services module."""
|
|
|
|
from github import Github
|
|
from github.Repository import Repository
|
|
from github.Commit import Commit
|
|
|
|
|
|
class SearchService:
|
|
"""Search service performs search on Github."""
|
|
|
|
def __init__(self, github_client: Github):
|
|
self._github_client = github_client
|
|
|
|
def search_repositories(self, term, limit):
|
|
"""Search for repositories and return formatted data."""
|
|
repositories = self._github_client.search_repositories(term, **{'in': 'name'})
|
|
return [
|
|
self._format_repo(repository)
|
|
for repository in repositories[:limit]
|
|
]
|
|
|
|
def _format_repo(self, repository: Repository):
|
|
return {
|
|
'url': repository.html_url,
|
|
'name': repository.name,
|
|
'owner': {
|
|
'login': repository.owner.login,
|
|
'url': repository.owner.html_url,
|
|
'avatar_url': repository.owner.avatar_url,
|
|
},
|
|
'created_at': repository.created_at,
|
|
'latest_commit': self._format_commit(repository.get_commits()[0]),
|
|
}
|
|
|
|
def _format_commit(self, commit: Commit):
|
|
return {
|
|
'sha': commit.sha,
|
|
'url': commit.html_url,
|
|
'message': commit.commit.message,
|
|
'author_name': commit.commit.author.name,
|
|
}
|