login

Collections

New collection

Create a new collection.

/api/collection/new/

Accepts POST queries only.

arg clt_name:String of the collection name to be created.
arg version:String of the version of the collection.
arg clt_status:String of the name of the user owner of the collection.
arg summary:A summary description of the collection.
arg description:
 A description of the collection.
arg branchname:The short name of the collection (ie: F-18).
arg dist_tag:The dist tag used by rpm for this collection (ie: .fc18).
arg kojiname:the name of the collection in koji.
kwarg allow_retire:
 a boolean specifying if the collection should allow retiring a package or not. Defaults to False.

Sample response:

{
  "output": "ok",
  "messages": ["Collection F-20 created"]
}

{
  "output": "notok",
  "error": ["You are not allowed to create collections"]
}

Update collection status

Update the status of collection.

/api/collection/<collection branchname>/status/

Accepts POST query only.

arg branch:String of the collection branch name to change.
arg clt_status:String of the status to change the collection to

Sample response:

{
  "output": "ok",
  "messages": ["Collection updated to "EOL""]
}

{
  "output": "notok",
  "error": ["You are not allowed to edit collections"]
}

List collections

List the collections based on a pattern. If no pattern is provided, it will return all the collection.

/api/collections/<pattern>/

/api/collections/?pattern=<pattern>

Accepts GET queries only.

arg pattern:a pattern to which the collection searched should match.
arg clt_status:restrict the search to one or more collection status.

Sample response:

/api/collections

{
  "collections": [
    {
      "allow_retire": false,
      "branchname": "f20",
      "date_created": "2014-05-14 12:36:15",
      "date_updated": "2014-05-14 12:36:15",
      "dist_tag": ".fc20",
      "koji_name": "f20",
      "name": "Fedora",
      "status": "Active",
      "version": "20"
    },
    {
      "allow_retire": true,
      "branchname": "f17",
      "date_created": "2014-05-14 12:36:15",
      "date_updated": "2014-05-14 12:36:15",
      "dist_tag": ".fc17",
      "koji_name": "f17",
      "name": "Fedora",
      "status": "EOL",
      "version": "17"
    },
    {
      "allow_retire": true,
      "branchname": "el6",
      "date_created": "2014-05-14 12:36:15",
      "date_updated": "2014-05-14 12:36:15",
      "dist_tag": ".el6",
      "koji_name": "dist-6E-epel",
      "name": "Fedora EPEL",
      "status": "Active",
      "version": "6"
    }
  ]
}
/api/collections?pattern=el*

{
  "collections": [
    {
      "allow_retire": true,
      "branchname": "el4",
      "date_created": "2014-05-14 12:36:15",
      "date_updated": "2014-05-14 12:36:15",
      "dist_tag": ".el4",
      "koji_name": "dist-4E-epel",
      "name": "Fedora EPEL",
      "status": "EOL",
      "version": "4"
    },
    {
      "allow_retire": true,
      "branchname": "el5",
      "date_created": "2014-05-14 12:36:15",
      "date_updated": "2014-05-14 12:36:15",
      "dist_tag": ".el5",
      "koji_name": "dist-5E-epel",
      "name": "Fedora EPEL",
      "status": "Active",
      "version": "5"
    },
    {
      "allow_retire": true,
      "branchname": "el6",
      "date_created": "2014-05-14 12:36:15",
      "date_updated": "2014-05-14 12:36:15",
      "dist_tag": ".el6",
      "koji_name": "dist-6E-epel",
      "name": "Fedora EPEL",
      "status": "Active",
      "version": "6"
    }
  ]
}

Packagers

List packagers

List packagers based on a pattern. If no pattern is provided, return all the packagers.

Only packagers having at least commit right on one package on the active collections are returned (on the contrary to querying FAS for the members of the packager group).

/api/packagers/<pattern>/

/api/packagers/?pattern=<pattern>
kwarg pattern:String of the pattern to use to list find packagers. If no pattern is provided, it returns the list of all packagers.

Sample response:

/api/packagers/rem*

{
  "output": "ok",
  "packagers": [
    "remi"
  ]
}

/api/packagers/?pattern=pi*

{
  "output": "ok",
  "packagers": [
    "pilcher",
    "pingou"
  ]
}

User's ACL

List the ACLs of the user.

/api/packager/acl/<fas_username>/

/api/packager/acl/?packagername=<username>

Accepts GET queries only.

arg packagername:
 String of the packager name.
kwarg acls:One or more ACL to filter the ACLs retrieved. Options are: approveacls, commit, watchbugzilla, watchcommits.
kwarg eol:a boolean to specify whether to include results for EOL collections or not. Defaults to False. If True, it will return results for all collections (including EOL). If False, it will return results only for non-EOL collections.
kwarg poc:a boolean specifying whether the results should be restricted to ACL for which the provided packager is the point of contact or not. Defaults to None. If True it will only return ACLs for packages on which the provided packager is point of contact. If False it will only return ACLs for packages on which the provided packager is not the point of contact. If None it will not filter the ACLs returned based on the point of contact of the package (thus every packages is returned).
kwarg page:The page number to return (useful in combination to limit).
kwarg limit:An integer to limit the number of results, defaults to 250, maximum is 500 (acls).
kwarg count:A boolean to return the number of packages instead of the list. Defaults to False.

Results are paginated

Sample response:

/api/packager/acl/pingou

{
  "output": "ok",
  "page": 1,
  "page_total": 12
  "acls": [
    {
      "status": "Approved",
      "fas_name": "pingou",
      "packagelist": {
        "point_of_contact": "pingou",
        "critpath": False,
        "collection": {
          "status": "EOL",
          "branchname": "f16",
          "version": "16",
          "name": "Fedora"
        },
        "package": {
          "status": "Approved",
          "upstream_url": null,
          "description": null,
          "summary": "Data of T- and B-cell Acute Lymphocytic "
                     "Leukemia",
          "creation_date": 1384775354.0,
          "review_url": null,
          "name": "R-ALL"
        }
      },
      "acl": "watchcommits"
    },
    {
      "status": "Approved",
      "fas_name": "pingou",
      "packagelist": {
        "point_of_contact": "pingou",
        "critpath": False,
        "collection": {
          "status": "EOL",
          "branchname": "f16",
          "version": "16",
          "name": "Fedora"
        },
        "package": {
          "status": "Approved",
          "upstream_url": null,
          "description": null,
          "summary": "Data of T- and B-cell Acute Lymphocytic "
                     "Leukemia",
          "creation_date": 1384775354.0,
          "review_url": null,
          "name": "R-ALL"
        }
      },
      "acl": "watchbugzilla"
    }
  ]
}

/api/packager/acl/?packagername=random

{
  "output": "notok",
  "error": "No ACL found for this user",
  "page": 1
}

User's packages

List the packages of the user.

/api/packager/package/<fas_username>/

/api/packager/package/?packagername=<username>

Accepts GET queries only.

arg packagername:
 String of the packager name.
kwarg eol:a boolean to specify whether to include results for EOL collections or not. Defaults to False. If True, it will return results for all collections (including EOL). If False, it will return results only for non-EOL collections.

Sample response:

/api/packager/acl/pingou

{
  "output": "ok",
  "co-maintained": [
    {
      "acls": [],
      "status": "Approved",
      "upstream_url": null,
      "description": null,
      "summary": "Data of T- and B-cell Acute Lymphocytic "
                 "Leukemia",
      "creation_date": 1384775354.0,
      "review_url": null,
      "name": "R-ALL"

    }
  ],
  "watch": [],
  "point of contact": [
    {
      "status": "Approved",
      "upstream_url": null,
      "description": null,
      "summary": "Data of T- and B-cell Acute Lymphocytic "
                 "Leukemia",
      "creation_date": 1384775354.0,
      "review_url": null,
      "name": "R-ALL",
      "acls": []
    }
  ]
}

/api/packager/package/?packagername=random

{
  "output": "notok",
  "co-maintained": [],
  "point of contact": [],
  "watch": [],
  "error": "No ACLs found for that user"
}

User's stats

Give some stats about the ACLs of the user.

/api/packager/stats/<fas_username>/

/api/packager/stats/?packagername=<username>

Accepts GET queries only.

arg packagername:
 String of the packager name.
kwarg eol:a boolean to specify whether to include results for EOL collections or not. Defaults to False. If True, it will return results for all collections (including EOL). If False, it will return results only for non-EOL collections.

Sample response:

/api/packager/stats/pingou

{
  "EL-6": {
    "co-maintainer": 8,
    "point of contact": 12
  },
  "master": {
    "co-maintainer": 12,
    "point of contact": 60
  },
  "f19": {
    "co-maintainer": 12,
    "point of contact": 60
  },
  "f20": {
    "co-maintainer": 12,
    "point of contact": 60
  },
  "output": "ok"
}


/api/packager/stats/?packagername=random

{
  "EL-6": {
    "co-maintainer": 0,
    "point of contact": 0
  },
  "master": {
    "co-maintainer": 0,
    "point of contact": 0
  },
  "f19": {
    "co-maintainer": 0,
    "point of contact": 0
  },
  "f20": {
    "co-maintainer": 0,
    "point of contact": 0
  },
  "output": "ok"
}

Packages

Package information

Return information about a specific package.

/api/package/<pkg_name>/

/api/package/?pkgname=<pkg_name>

Accepts GET queries only

arg pkgname:The name of the package to retrieve the information of.
kwarg branches:Restricts the package information to one or more collection (branches).
kwarg eol:a boolean to specify whether to include results for EOL collections or not. Defaults to False. If True, it will return results for all collections (including EOL). If False, it will return results only for non-EOL collections.
kwarg acls:a boolean to specify whether to include the ACLs in the results. Defaults to True. If True, it will include the ACL of the package in the collection. If False, it will not include the ACL of the package in the collection.

Sample response:

{
  "output": "ok",
  "packages": [
    {
      "status": "Approved",
      "point_of_contact": "pingou",
      "critpath": False,
      "package": {
        "status": "Approved",
        "upstream_url": null,
        "description": "Guake is a drop-down terminal for Gnome "
                     "Desktop Environment, so you just need to "
                     "press a key to invoke him,and press again "
                     "to hide."
        "summary": "Drop-down terminal for GNOME",
        "creation_date": 1385365548.0,
        "review_url": null,
        "name": "guake"
      },
      "collection": {
        "status": "Under Development",
        "branchname": "master",
        "version": "devel",
        "name": "Fedora"
      },
      "acls": [
        {
          "status": "Approved",
          "fas_name": "pingou",
          "acl": "watchcommits"
        },
        {
          "status": "Approved",
          "fas_name": "pingou",
          "acl": "watchbugzilla"
        },
        {
          "status": "Approved",
          "fas_name": "pingou",
          "acl": "commit"
        },
        {
          "status": "Approved",
          "fas_name": "pingou",
          "acl": "approveacls"
        },
        {
          "status": "Obsolete",
          "fas_name": "maxamillion",
          "acl": "watchcommits"
        },
        {
          "status": "Obsolete",
          "fas_name": "maxamillion",
          "acl": "watchbugzilla"
        },
        {
          "acl": "commit",
          "fas_name": "group::provenpackager",
          "status": "Approved"
        }
      ],
      "status_change": 1385366044.0
    },
    ...
  ]
}

List packages

List packages based on a pattern. If no pattern is provided, return all the package.

/api/packages/<pattern>/

/api/packages/?pattern=<pattern>

/api/packages/?pattern=<pattern>&pattern=<pattern2>

Accepts GET queries only

arg pattern:Pattern to list packages from their name. Use * to match multiple packages by their name. Multiple patterns can be provided if you wish to search for multiple packages at once.
arg branches:List of string of the branches name in which these packages will be searched.
arg poc:String of the user name to to which restrict the search.
arg orphaned:Boolean to retrict the search to orphaned packages.
arg critpath:Boolean to retrict the search to critpath packages. Defaults to None which means results include both critpath and non-critpath packages.
arg status:Allows to filter packages based on their status: Approved, Orphaned, Retired, Removed.
arg acls:Boolean use to retrieve the acls in addition of the package information. Beware that this may reduce significantly the response time, it is advise to use it in combinaition with a specifir branch. Defaults to False.
kwarg eol:a boolean to specify whether to include results for EOL collections or not. Defaults to False. If True, it will return results for all collections (including EOL). If False, it will return results only for non-EOL collections.
kwarg limit:An integer to limit the number of results, defaults to 250, maximum is 500.
kwarg page:The page number to return (useful in combination to limit).
kwarg count:A boolean to return the number of packages instead of the list. Defaults to False.

Results are paginated

Sample response:

/api/packages/guak*

{
  "output": "ok",
  "packages": [
    {
      "status": "Approved",
      "upstream_url": null,
      "description": "Guake is a drop-down terminal for Gnome "
                     "Desktop Environment, so you just need to "
                     "press a key to invoke him,and press again"
                     " to hide."
      "summary": "Drop-down terminal for GNOME",
       "creation_date": 1384775354.0,
        "review_url": null,
        "name": "guake"
    }
  ],
  "page_total": 1,
  "page": 1
}

/api/packages/?pattern=guake&pattern=tilda

{
  "output": "ok",
  "packages": [
    {
      "acls": [],
      "creation_date": 1400063778.0,
      "description": "Tilda is a Linux terminal taking after the "
                     "likeness of many classic terminals from first "
                     "person shooter games, Quake, Doom and Half-Life "
                     "(to name a few), where the terminal has no "
                     "border and is hidden from the desktop until "
                     "a key is pressed.",
      "koschei_monitor": false,
      "monitor": false,
      "name": "tilda",
      "review_url": null,
      "status": "Approved",
      "summary": "A Gtk based drop down terminal for Linux and Unix",
      "upstream_url": "https://github.com/lanoxx/tilda"
    },
    {
      "acls": [],
      "creation_date": 1400063778.0,
      "description": "Guake is a drop-down terminal for Gnome "
                     "Desktop Environment, so you just need to "
                     "press a key to invoke him, and press again "
                     "to hide.",
      "koschei_monitor": true,
      "monitor": true,
      "name": "guake",
      "review_url": null,
      "status": "Approved",
      "summary": "Drop-down terminal for GNOME",
      "upstream_url": "http://www.guake.org/"
    }
  ],
  "page": 1,
  "page_total": 1
}

/api/packages/cl*?status=Orphaned&branches=f20&acls=true

{
  "output": "ok",
  "packages": [
    {
      "status": "Approved",
      "upstream_url": null,
      "description": "clive is a video extraction tool for "
                     "user-uploaded video hosts such as Youtube,"
                     "Google Video, Dailymotion, Guba, Metacafe "
                     "and Sevenload.It can be chained with 3rd "
                     "party tools for subsequent video re-encoding"
                     " and and playing.",
      "summary": "Video extraction tool for user-uploaded video hosts",
      "acls": [
        {
          "status": "Retired",
          "point_of_contact": "orphan",
          "status_change": 1385363055.0,
          "collection": {
            "status": "Active",
            "branchname": "f20",
            "version": "20",
            "name": "Fedora"
          },
          "package": null
        }
      ],
      "creation_date": 1385361948.0,
      "review_url": null,
      "name": "clive"
    }
  ],
  "page_total": 1,
  "page": 1
}

Note

the status_change and create_date fields are both timestamps expressed in Unix TIME

New package

Create a new package.

/api/package/new/

Accepts POST queries only.

arg pkgname:String of the package name to be created.
arg summary:String of the summary description of the package.
arg description:
 String describing the package (same as in the spec file).
arg review_url:the URL of the package review on the bugzilla.
arg status:status of the package can be one of: 'Approved', 'Awaiting Review', 'Denied', 'Obsolete', 'Removed'
arg branches:one or more branch names of the collection in which this package is added.
arg poc:FAS username of the point of contact
arg upstream_url:
 the URL of the upstream project
arg critpath:boolean specifying if the package is in the critpath
kwarg namespace:
 String of the namespace of the package to create (defaults to rpms).
kwarg monitoring_status:
 the new release monitoring status for this package (defaults to True, can be True, False or nobuild).
kwarg koschei:the koschei integration status for this package (defaults to False, can be True or False).

Sample response:

{
  "output": "ok",
  "messages": ["Package created"]
}

{
  "output": "notok",
  "error": ["You're not allowed to add a package"]
}

Edit a package

Edit a package.

/api/package/edit/

Accepts POST queries only.

arg pkgname:String of the package name to be edited.
arg summary:String of the summary description of the package.
arg description:
 String describing the package (same as in the spec file).
arg review_url:the URL of the package review on the bugzilla.
arg status:status of the package can be one of: 'Approved', 'Awaiting Review', 'Denied', 'Obsolete', 'Removed'
arg upstream_url:
 the URL of the upstream project
kwarg namespace:
 String of the namespace of the package to be edited (defaults to rpms).

Sample response:

{
  "output": "ok",
  "messages": ["Package edited"]
}

{
  "output": "notok",
  "error": ["You're not allowed to edit this package"]
}

Critpath status

Update the critpath status of a package.

/api/package/critpath/

Accepts POST queries only.

arg pkgnames:A list of string of the packages name.
arg branches:A list of string of the branches name in which the critpath status will be updated.
kwarg namespace:
 The namespace of the packages (defaults to rpms).
kwarg critpath:A boolean of the critpath status. Defaults to False.

Sample response:

{
    "output": "ok",
    "messages": [
        'guake: critpath updated on master to True',
        'guake: critpath updated on f18 to True'
    ]
}

{
  "output": "notok",
  "error": "No package found by this name"
}

Monitoring status

Set the monitor status on the specified package.

/api/package/<package>/monitor/<status>

Accepts POST queries only.

arg package:The name of the package to update.
arg status:The status to set to the monitoring flag, can be either 1 or true for setting full monitoring, nobuild to set the monitoring but block scratch builds or 0 or false to stop the monitoring entirely.
kwarg namespace:
 The namespace of the package to update (default to rpms).

Sample response:

{
    "output": "ok",
    "messages": "Monitoring status of guake set to True"
}

{
  "output": "notok",
  "error": "No package found by this name"
}

Koschei monitoring status

Set the monitor status for koschei on the specified package.

/api/package/<namespace>/<package>/koschei/<status>

Accepts POST queries only.

arg package:The name of the package to update.
arg status:The status to set to the koschei monitoring flag, can be either 1 or true or 0 or false to stop the monitoring.
kwarg namespace:
 The namespace of the package to update (default to rpms).

Sample response:

{
    "output": "ok",
    "messages": "Koschei monitoring status of guake set to True"
}

{
  "output": "notok",
  "error": "No package found by this name"
}

Orphan package

Orphan one or more packages.

/api/package/orphan/

Accepts POST queries only.

arg pkgnames:Comma separated list of string of the packages name.
arg branches:Comma separated list of string of the branches name in which these packages will be orphaned.
kwarg namespace:
 The namespace of the packages (can only process one namespace at a time), defaults to rpms.
kwarg former_poc:
 Use to restrict orphaning the branches maintained by a specific user while providing a broader list of branches.

Sample response:

{
  "output": "ok",
  "messages": ["User: $USER changed poc of package: $PACKAGE from "
               "$PREVIOUS_POC to $NEW_POC on branch: $BRANCH"]
}

{
  "output": "notok",
  "error": ["You are not allowed to change the point of contact."]
}

Unorphan packages

Unorphan one or more packages.

/api/package/unorphan/

Accepts POST queries only.

arg pkgnames:Comma separated list of string of the packages name.
arg branches:Comma separated list of string of the branches name in which these packages will be unorphaned.
arg poc:String of the name of the user taking ownership of this package. If you are not an admin, this name must be None.
kwarg namespace:
 The namespace of the packages (can only process one namespace at a time), defaults to rpms.

Sample response:

{
  "output": "ok",
  "messages": ["Package $PACKAGE has been unorphaned for $BRANCH "
               "by $USER"]
}

{
  "output": "notok",
  "error": ["You must be a packager to take a package."]
}

Retire packages

Retire one or more packages.

/api/package/retire/

Accepts POST queries only.

arg pkgnames:Comma separated list of string of the packages name.
arg branches:Comma separated list of string of the branches name in which these packages will be retire.
kwarg namespace:
 the namespace of the package to retire.

Sample response:

{
  "output": "ok",
  "messages": ["user: $USER updated package: $PACKAGE status from: "
               "$PREVIOUS_STATUS to $NEW_STATUS on branch $BRANCH"]
}

{
  "output": "notok",
  "error": ["You are not allowed to retire the package: $PACKAGE "
            "on branch $BRANCH."]
}

Unretire packages

Un-retire one or more packages.

/api/package/unretire/

Accepts POST queries only.

arg pkgnames:Comma separated list of the packages names.
arg branches:Comma separated list of string of the branches names in which these packages will be un-deprecated.
kwarg namespace:
 The namespace of the package to unretire (can only process one namespace at a time), defaults to rpms.

Sample response:

{
  "output": "ok",
  "messages": ["user: $USER updated package: $PACKAGE status from: "
               "$PREVIOUS_STATUS to $NEW_STATUS on branch $BRANCH"]
}

{
  "output": "notok",
  "error": ["You are not allowed to update the status of "
            "the package: $PACKAGE on branch $BRANCH to $STATUS."]
}

New package request

Request for an admin to include a new package in pkgdb.

/api/request/package

Accepts POST queries only.

arg pkgname:The name of the package to create.
arg summary:The summary of the package.
arg description:
 The description of the package.
arg upstream_url:
 The URL of the upstream website of the package.
arg review_url:The URL where the package review was done.
arg branches:The list of branches desired for this package. Note: if the master isn't requested, it will be added automatically.
kwarg namespace:
 The namespace of the package to create (defaults to rpms).
kwarg monitoring_status:
 the new release monitoring status for this package (defaults to True, can be True, False or nobuild).
kwarg koschei:the koschei integration status for this package (defaults to False, can be True or False).

Sample response:

{
  "output": "ok",
  "messages": [
    'user: pingou request package: guake on branch master',
    'user: pingou request package: guake on branch f18',
  ]
}

{
  "output": "notok",
  'error': 'User "pingou" is not in the packager group',
}

{
  "error": "Invalid input submitted",
  "error_detail": [
    "branches: 'foobar' is not a valid choice for this field",
    "review_url: This field is required."
  ],
  "output": "notok"
}

ACLs

Update package ACL

Update the ACL for a given package.

/api/package/acl/

Accepts POST queries only.

arg pkgname:String of the package name.
arg branches:List of strings with the name of the branches to change, update.
arg acl:List of strings of the ACL to change/update. Possible acl are: 'commit', 'build', 'watchbugzilla', 'watchcommits', 'approveacls', 'checkout'.
arg acl_status:String of the type of action required. Possible status are: 'Approved', 'Awaiting Review', 'Denied', 'Obsolete', 'Removed'.
kwarg user:the name of the user that is the target of this ACL change/update. This will only work if: 1) you are an admin, 2) you are changing one of your package.
kwarg namespace:
 The namespace of the packages (defaults to rpms).

Sample response:

{
  "output": "ok",
  "messages": ["user: $USER set acl: $ACL of package: $PACKAGE "
               "from: $PREVIOUS_STATUS to $NEW_STATUS on branch: "
               "$BRANCH"]
}

{
  "output": "notok",
  "error": ["You are not allowed to update ACLs of someone else."]
}

Reassign packages

Reassign the specified packages from one user to another.

/api/package/acl/reassign/

Accepts POST queries only.

arg namespace:The namespace of the packages to reassign (can only reassign package from one namespace at a time).
arg pkgnames:List of strings of the package name to reassign.
arg branches:List of strings of the branchname of the Collection on which to reassign the point of contact.
arg poc:User name of the new point of contact.
kwarg former_poc:
 Specify the former poc of the packages you want to reassign. This allows to specify more branches than the former_poc had while still only reassigning the branches the former_poc had.

Sample response:

{
  "output": "ok",
  "messages": ["User: $USER changed poc of package: $PACKAGE from "
               "$PREVIOUS_POC to $NEW_POC on branch: $BRANCH"]
}

{
  "output": "notok",
  "error": ["You are not allowed to change the point of contact."]
}

Other

API Version

Display the api version information.

/api/version

Accepts GET queries only.

Sample response:

{
  "version": "1.6"
}

Admin

List admin actions

List actions requiring intervention from an admin.

/api/admin/actions/

Accept GET queries only.

kwarg package:restrict the actions to a specific package.
kwarg packager:restrict the actions to a specific packager.
kwarg action:restrict the actions to a specific action, options are: request.branch, request.package and request.unretire.
kwarg status:restrict the actions depending on their status, options are: Awaiting Review, Approved, Denied, Obsolete, Removed.
kwarg limit:An integer to limit the number of results, defaults to 250, maximum is 500.
kwarg page:The page number to return (useful in combination to limit).

Sample response:

/api/admin/actions

{
  "output": "ok",
  "actions": [
    {
      "action": "request.branch",
      "collection": {
        "branchname": "epel7",
        "dist_tag": ".el7",
        "koji_name": "epel7",
        "name": "Fedora EPEL",
        "status": "Active",
        "version": "7"
      },
      "date_created": 1402470695.0,
      "date_updated": 1402470695.0,
      "from_collection": {
        "branchname": "f19",
        "dist_tag": ".fc19",
        "koji_name": "f19",
        "name": "Fedora",
        "status": "Active",
        "version": "19"
      },
      "id": 8,
      "info": null,
      "package": {
        "acls": [],
        "creation_date": 1400063778.0,
        "description": "Guake is a drop-down terminal for Gnome "
                       "Desktop Environment, so you just need to "
                       "press a key to invoke him, and press again "
                       "to hide.",
        "name": "guake",
        "review_url": null,
        "status": "Approved",
        "summary": "Drop-down terminal for GNOME",
        "upstream_url": "http://guake.org/"
      },
      "status": "Awaiting Review",
      "user": "pingou"
    }
  ],
  "page": 1,
  "page_total": 1
}

Note

the date_created and date_updated fields are both timestamps expressed in Unix TIME

Get a specific Admin Action

Return the desired Admin Action using its identifier.

/admin/action/<actionid>
/admin/action/?actionid=<actionid>

Accept GET queries only.

arg actionid:An integer representing the identifier of the admin action in the database. The identifier is returned in the API, see List admin actions.

Sample response:

{
  "action": "request.branch",
  "collection": {
    "branchname": "epel7",
    "dist_tag": ".el7",
    "koji_name": "epel7",
    "name": "Fedora EPEL",
    "status": "Active",
    "version": "7"
  },
  "date_created": 1410161489.0,
  "date_updated": 1410168952.0,
  "from_collection": {
    "branchname": "master",
    "dist_tag": ".fc21",
    "koji_name": "rawhide",
    "name": "Fedora",
    "status": "Under Development",
    "version": "devel"
  },
  "id": 1,
  "info": {},
  "package": {
    "acls": [],
    "creation_date": 1397204290.0,
    "description": null,
    "name": "R-BiocGenerics",
    "review_url": null,
    "status": "Approved",
    "summary": "Generic functions for Bioconductor",
    "upstream_url": null
  },
  "status": "Approved",
  "user": "pingou"
}

Edit Admin Action status update

Edit the status of an Admin Action.

/admin/action/status

Accept POST queries only.

arg id:An integer representing the identifier of the admin action to update in the database. The identifier is returned in the API, see List admin actions.
arg status:The status to which the action should be updated. Can be any of: Approved, Awaiting Review, Blocked, Denied, Pending and Obsolete.
..note:: The Obsolete status can only be set by the person who made
the request.

Sample response:

{
  "output": "ok",
  "messages": ["Admin action status updated to: Approved"]
}

{
  "output": "notok",
  "error": ["You are not an admin"]
}

Extras

The pkgdb2 api has few other endpoints that are used for very specific tasks such as synchronizing the point of contact and CC list with bugzilla, or synchronizing the ACLs with the version control system (vcs). These endpoints, althought listed here, are not quite meant for public consumption, you may use them, just be cautious.

Bugzilla information

Return the package attributes used by bugzilla.

/api/bugzilla
karg collection:
 Name of the bugzilla collection to gather data on.
kwarg format:Specify if the output if text or json.

Note: The data returned by this function is for the way the current Fedora bugzilla is setup as of (2007/6/25). In the future, bugzilla may change to have separate products for each collection-version. When that happens we'll have to change what this function returns.

The returned data looks like this:

bugzillaAcls[collection][package].attribute

attribute is one of:

owner:FAS username for the owner
qacontact:if the package has a special qacontact, their userid is listed here
summary:Short description of the package
cclist:list of FAS userids that are watching the package

Critical path packages

Return the list of package marked as critpath for some or all active releases of fedora.

/api/critpath
kwarg branches:Return the list of packages marked as critpath in the specified branch(es).
kwarg format:Specify if the output if text or json.

Notification information

List of usernames that have commit or approveacls ACL for each package.

/api/notify

For the collections specified retrieve all of the users having at least one of the following ACLs for each package: commit, approveacls.

kwarg name:Set to a collection name to filter the results for that
kwarg version:Set to a collection version to further filter results for a single version
kwarg eol:Set to True if you want to include end of life distributions
kwarg format:Specify if the output if text or json.

Notification information 2

List of usernames that should be notified of changes to a package.

/api/notify/all

For the collections specified we want to retrieve all of the users, having at least one ACL for each package.

kwarg name:Set to a collection name to filter the results for that
kwarg version:Set to a collection version to further filter results for a single version
kwarg eol:Set to True if you want to include end of life distributions
kwarg format:Specify if the output if text or json.

Version Control System ACLs

Return ACLs for the version control system.

/api/vcs
kwarg format:Specify if the output if text or json.
kwarg eol:A boolean specifying whether to include information about End Of Life collections or not. Defaults to False.
kwarg collection:
 Restrict the VCS info to a specific collection.
kwarg namespace:
 Restrict the VCS info to a specific namespace.

Pending ACLs requests

Return the list ACLs request that are Awaiting Approval.

/api/pendingacls
kwarg username:Return the list of pending ACL requests requiring action from the specified user.
kwarg format:Specify if the output if text or json.

List group maintainer

Return the list FAS groups which have ACLs on one or more packages.

/api/groups
kwarg format:Specify if the output if text or json.

List packages monitored

Return the list of packages in pkgdb that have been flagged to be monitored by anitya.

/api/monitored
kwarg format:Specify if the output is text or json (default: text).

List packages monitored by koschei

Return the list of packages in pkgdb that have been flagged to be monitored by koschei.

/api/koschei
kwarg format:Specify if the output is text or json (default: text).

List packages retired

Return the list of packages in pkgdb that have been retired on all Fedora or EPEL collections.

/api/retired
kwarg collection:
 Either Fedora or Fedora EPEL or any other collection name (default: Fedora)
kwarg format:Specify if the output is text or json (default: text).

Get package information from bugzilla

Returns a json with the information from the package review corresponding to the given bugzilla ID.

/api/pkgrequest/<bzid>/
/api/pkgrequest/<bzid>
arg bzid:Bugzilla ticket number to check.