123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- """
- (c) 2018 - Copyright Red Hat Inc
- Authors:
- Patrick Uiterwijk <puiterwijk@redhat.com>
- """
- from __future__ import print_function
- import os
- import sys
- # These fields get filled in by upload-repospanner-hooks
- os.environ["PAGURE_CONFIG"] = "${config}"
- PYPATH = "${pypath}"
- # Prepare code imports
- if PYPATH:
- sys.path.append(PYPATH)
- import pagure
- import pagure.lib.query
- from pagure.hooks import run_project_hooks, extract_changes
- from pagure.config import config as pagure_config
- # Get information from the environment
- hooktype = os.path.basename(sys.argv[0])
- is_internal = os.environ.get("extra_internal", False) == "yes"
- pushuser = os.environ["extra_username"]
- repotype = os.environ["extra_repotype"]
- project_name = os.environ["extra_project_name"]
- project_user = os.environ.get("extra_project_user", None) or None
- project_namespace = os.environ.get("extra_project_namespace", None) or None
- pruid = os.environ.get("extra_pull_request_uid", None)
- changes = extract_changes(from_stdin=hooktype != "update")
- session = pagure.lib.query.create_session(pagure_config["DB_URL"])
- if not session:
- raise Exception("Unable to initialize db session")
- gitdir = os.path.abspath(os.environ["GIT_DIR"])
- project = pagure.lib.query._get_project(
- session, project_name, project_user, project_namespace
- )
- if not project:
- print("No project found")
- sys.exit(1)
- pull_request = None
- if pruid:
- pull_request = pagure.lib.query.get_request_by_uid(
- session, pruid
- )
- run_project_hooks(
- session,
- pushuser,
- project,
- hooktype,
- repotype,
- gitdir,
- changes,
- is_internal,
- pull_request,
- )
|