Page MenuHomePhabricator

Add harbormaster.buildplan.search api method
ClosedPublic

Authored by timhirsh on Nov 2 2018, 1:50 AM.
Tags
None
Referenced Files
Unknown Object (File)
Mon, Dec 16, 2:49 AM
Unknown Object (File)
Wed, Dec 11, 12:35 PM
Unknown Object (File)
Sun, Dec 8, 4:03 PM
Unknown Object (File)
Mon, Dec 2, 12:59 AM
Unknown Object (File)
Mon, Dec 2, 12:59 AM
Unknown Object (File)
Sun, Dec 1, 6:06 PM
Unknown Object (File)
Sat, Nov 30, 2:47 AM
Unknown Object (File)
Thu, Nov 28, 9:22 AM
Subscribers

Details

Summary

This revision adds a conduit search method for build plans. Other api methods (eg: harbormaster.build.search) support build plan phid's as a constraint, but they weren't exposed anywhere, so this provides a way to fetch them.

Test Plan

Used the api console to run some searches. Output:

{
  "data": [
    {
      "id": 1,
      "type": "HMCP",
      "phid": "PHID-HMCP-q2c25wvegzdkxs7gzor6",
      "fields": {
        "name": "my build plan",
        "planStatus": "active",
        "dateCreated": 1538085249,
        "dateModified": 1538085249,
        "policy": {
          "view": "users",
          "edit": "admin"
        }
      },
    {
      "id": 1,
      "type": "HMCP",
      "phid": "PHID-HMCP-q2c25wvegzdkxs7gzor6",
      "fields": {
        "name": "my build plan",
        "status": {
          "value": "active"
        },
        "dateCreated": 1538085249,
        "dateModified": 1538085249,
        "policy": {
          "view": "users",
          "edit": "admin"
        }
      },
      "attachments": {}
    },
    ...
  ],
  "maps": {},
  "query": {
    "queryKey": null
  },
  "cursor": {
    "limit": 100,
    "after": null,
    "before": null,
    "order": null
  }
}

Diff Detail

Repository
rP Phabricator
Branch
build_plan_search_api
Lint
Lint Passed
Unit
Tests Passed
Build Status
Buildable 21071
Build 28631: Run Core Tests
Build 28630: arc lint + arc unit

Event Timeline

Couple of minor inlines, happy to upstream this otherwise.

src/applications/harbormaster/conduit/HarbormasterBuildPlanSearchAPIMethod.php
15

For consistency, capitalize "Harbormaster".

src/applications/harbormaster/storage/configuration/HarbormasterBuildPlan.php
231

Let's just call this status and make it a dictionary with the status constant in "value" so we can add name, icon, color, etc., later if necessary. See DifferentialRevision for a similar object.

...
"status": {
  "value": <whatever getPlanStatus() returns>
}
...
This revision now requires changes to proceed.Nov 2 2018, 1:57 AM

capitalization & make status a dictionary

epriestley added inline comments.
src/applications/harbormaster/storage/configuration/HarbormasterBuildPlan.php
223

Oh, make this, uh, map<string ,wild> now too. (It's just documentation for human consumers.)

This revision is now accepted and ready to land.Nov 2 2018, 2:29 AM

oops, update field spec too

thanks Evan!

This revision was automatically updated to reflect the committed changes.