FOSSology  4.4.0
Open Source License Compliance by Open Source Software
ApiConfig.py
1 #!/usr/bin/env python3
2 
3 # SPDX-FileCopyrightText: © 2023 Siemens AG
4 # SPDX-FileContributor: Gaurav Mishra <mishra.gaurav@siemens.com>
5 
6 # SPDX-License-Identifier: GPL-2.0-only
7 
8 from enum import Enum
9 from typing import Optional
10 
11 
12 class Runner(Enum):
13  """
14  Type of runners
15  """
16  GITLAB = 0
17  TRAVIS = 1
18  GITHUB = 2
19 
20 
21 class ApiConfig:
22  """
23  Hold configurations required for different APIs to pull code.
24 
25  :ivar running_on: which CI the script is running
26  :ivar travis_repo_slug: repo slug provided for Travis
27  :ivar travis_pull_request: pull request id provided for Travis
28  :ivar api_url: api url to use for GitLab
29  :ivar project_id: project id for GitLab
30  :ivar mr_iid: merge request id for GitLab
31  :ivar api_token: token used for api authentication
32  :ivar github_repo_slug: repo slug provided for GitHub
33  :ivar github_pull_request: pull request id provided for GitHub
34  :ivar project_name: project name
35  :ivar project_desc: project description
36  :ivar project_orig: project originator
37  :ivar project_url: project URL
38  """
39  running_on: Runner = None
40  travis_repo_slug: Optional[str] = None
41  travis_pull_request: Optional[str] = None
42  api_url: Optional[str] = None
43  project_id: Optional[str] = None
44  mr_iid: Optional[str] = None
45  api_token: Optional[str] = None
46  github_repo_slug: Optional[str] = None
47  github_pull_request: Optional[str] = None
48  project_name: str = ""
49  project_desc: Optional[str] = None
50  project_orig: str = None
51  project_url: str = None