Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Download upstream tarballs and fetch changes from the github API
Python
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
.travis.yml
LICENSE
README.rst
github_tarballs
github_tarballs.service
pip-requires
test-requires
test_github_tarballs.py

README.rst

OBS service for downloading tarballs and commit information from github

https://travis-ci.org/mapleoin/obs-service-github_tarballs.png

This is an Open Build Service source service. It downloads a tarball from a remote URL and updates the .spec and .changes files with git commit information from the github API.

How It Works

The Version field will be set to %(tarball_version)s+git.%(timestamp)s.%(commit_sha)s. Where tarball_version is the version as read from the parent directory inside the downloaded tarball - everything after the last dash (-) in the directory's name. timestamp is the current seconds from the UNIX epoch when the source service was run. commit_sha is the latest commit sha hash from the git repository.

On the first run, github_tarballs will just set the spec file's Version field to the latest git commit. The .changes file will only be updated with commit message information when newer commits (compared to the one now set in Version) are found.

The github_tarballs service will also change the specfile's Source: to the filename argument of the service and the %setup -q line to match the parent folder name in the tarball.

Rate Limiting

The github API rate limits requests. The limit can be extended by using github credentials to access the API. obs-service-github_tarballs will read and use these credentials from the .github_tarballs_credentials file in the current user's home directory if it can. The file should contain one line with the standard in standard HTTP BasicAuth format username:password.

Dependencies

Requires argparse which is part of python2.7, but available as a third-party dependency in python2.6.

The tests require python-mock. To run them, just use nosetests or python -m unittest discover (on python2.7).

Contributing

You can submit or ask for improvements using github's Pull Requests or Issues. If you're sending a patch, please make sure the testsuite is still running and also run flake8 on the files you've modified. It would be great if you could also modify this README file to describe new functionality and add tests.

You can take a look at the .travis.yml file to see how the testsuite and flake8 are being run.

Something went wrong with that request. Please try again.