{"action":"created","comment":{"url":"https://api.github.com/repos/dpla/heidrun-mappings/pulls/comments/33057060","id":33057060,"diff_hunk":"@@ -0,0 +1,575 @@\n+def nara_catalog_uri(id)\n+  \"http://catalog.archives.gov/id/#{id.node}\"\n+end\n+\n+# See object and preview mappings\n+def make_obj_uri(obj)\n+  URI::escape(obj.node['@url'])  # Can have space characters\n+end\n+def make_obj_dcformat(obj)\n+  obj.node['@mime']\n+end\n+def make_preview_uri(obj)\n+  URI::escape(obj.node['@url'])  # Can also have space characters\n+end\n+def make_preview_dcformat(obj)\n+  obj.node['@mime']\n+end\n+\n+# Return a string suitable for sourceResource.contributor or\n+# sourceResource.publisher.\n+#\n+# @see #make_contributor\n+# @see #make_publisher\n+# @param contributor_array [Krikri::JsonParser::Value]\n+# @return [String, RDF::Literal]\n+def contributor_term_name(contributor_array)\n+  node = contributor_array.node\n+  contributors = node.fetch('organizationalContributor',\n+                            node['personalContributor'])\n+  contributors = [contributors] unless contributors.is_a? Array\n+\n+  yield(contributors)\n+\n+  return contributors.first['contributor']['termName'] \\\n+    unless contributors.empty?\n+\n+  # FIXME:  It's not clear how to indicate the concept of \"nothing\" to\n+  # `providedLabel` as a return value from this function.\n+  # `RDF::Literal.new(nil)` avoids the exception\n+  #    <quote>\n+  #    value must be an RDF URI, Node, Literal, or a valid datatype.\n+  #    See RDF::Literal.\n+  #        You provided nil\n+  #    </quote>\n+  # ... but it results in a providedLabel of ''.  I want the same result as\n+  # if record.find() did not match anything, but it's not clear how to achieve\n+  # that.\n+  RDF::Literal.new(nil)\n+end\n+\n+# Return a string for sourceResource.contributor\n+#\n+# Use <contributorType>Most Recent</contributorType> if multiple\n+# <contributor-display> values.\n+# Reject <contributorType>Publisher</contributorType>.\n+#\n+#  <organizationalContributorArray> OR <personalContributorArray>\n+#    <organizationalContributor> OR <personalContributor>\n+#      <contributor>\n+#        <termName>[VALUE]</termName>\n+#      </contributor>\n+#      <contributorType>\n+#        <termName>[VALUE]</termName>\n+#      </contributorType>\n+#    </organizationalContributor> OR </personalContributor>\n+#  </organizationalContributorArray> OR </personalContributorArray>\n+#\n+# @see #contributor_term_name\n+# @return [String, RDF::Literal]\n+def make_contributor(contributor_array)\n+  contributor_term_name(contributor_array) do |contributors|\n+    # Always reject 'Publisher' and use 'Most Recent' if more than one\n+    contributors.select! do |c|\n+      c if c['contributorType']['termName'] != 'Publisher'\n+    end\n+    if contributors.count > 1\n+      contributors.select! do |c|\n+        c if c['contributorType']['termName'] == 'Most Recent'\n+      end\n+    end\n+  end\n+end\n+\n+# Return a string for sourceResource.publisher\n+#\n+# **note these are contingent on the value of contributorType/termName\n+# being \"\"Publisher\"\"\n+#\n+# <organizationalContributorArray>\n+#  <organizationalContributor>\n+#  <contributor>\n+#  <termName>[VALUE]</termName>\n+#  </contributor>\n+#  <contributorType>\n+#  <termName>Publisher</termName>\n+#  </contributorType>\n+#  </organizationalContributor>\n+#  </organizationalContributorArray>\n+#\n+#  <personalContributorArray>\n+#  <personalContributor>\n+#  <contributor>\n+#  <termName>[VALUE]</termName>\n+#  </contributor>\n+#  <contributorType>\n+#  <termName>Publisher</termName>\n+#  </contributorType>\n+#  </personalContributor>\n+#  </personalContributorArray>\n+#\n+# @see #contributor_term_name\n+# @return [String, RDF::Literal]\n+def make_publisher(contributor_array)\n+  contributor_term_name(contributor_array) do |contributors|\n+    contributors.select! do |c|\n+      c if c['contributorType']['termName'] == 'Publisher'\n+    end\n+  end\n+end\n+\n+# Return string for sourceResource.identifier\n+#\n+# <variantControlNumberArray>\n+#  <variantControlNumber>\n+#  <number>[VALUE1]</number>\n+#  <type>\n+#  <termName>[VALUE2]</termName>\n+#  </type>\n+#  </variantControlNumber>\n+#  </variantControlNumberArray>\n+# [combine as:  VALUE2: VALUE1\n+#\n+# @param variant_control_num [Krikri::JsonParser::Value]\n+# @return [String]\n+def make_identifier(variant_control_num)\n+  node = variant_control_num.node\n+  # The 'type' property can be missing.\n+  # See https://catalog.archives.gov/api/v1?naIds=65523&pretty=true&resultTypes=item,fileUnit&objects.object.@objectSortNum=1\n+  type = (node.include? 'type') ? node['type']['termName'] : nil\n+  [type, node['number']].compact.join ': '\n+end\n+\n+# Return a string for sourceResource.relation\n+#\n+# <parentFileUnit>\n+#  <title>VALUE1</title>\n+#  <parentSeries>\n+#    <title>VALUE2</title>\n+#    <parentRecordGroup>\n+#      <title>VALUE3</title>\n+#    </parentRecordGroup>\n+#  </parentSeries>\n+#  </parentFileUnit>\n+#  [should be combed as VALUE3\"\"; \"\"VALUE2\"\"; \"\"VALUE1]\n+#\n+#  OR\n+#\n+#  <parentFileUnit>\n+#  <title>VALUE1</title>\n+#  <parentSeries>\n+#    <title>VALUE2</title>\n+#    <parentCollection>\n+#      <title>VALUE3</title>\n+#    </parentCollection>\n+#  </parentSeries>\n+#  </parentFileUnit>\n+#  [should be combed as VALUE3\"\"; \"\"VALUE2\"\"; \"\"VALUE1]\"\n+#\n+# @param parent_file_unit [Krikri::JsonParser::Value]\n+# @return [String]\n+def make_relation(parent_file_unit)\n+  node = parent_file_unit.node\n+  title = node['title']\n+  ps = node['parentSeries']\n+  parent_srs_title = ps['title']\n+  group_or_coll = ps.fetch('parentRecordGroup', ps['parentCollection'])\n+  group_coll_title = group_or_coll['title']\n+  \"#{group_coll_title}; #{parent_srs_title}; #{title}\"\n+end\n+\n+# Return a string for sourceResource.description\n+#\n+# <generalNoteArray>\n+# <generalNote>\n+# <note>[VALUE]</note>\n+# </generalNote>\n+# </generalNoteArray>\n+#\n+# <scopeAndContentNote>[VALUE]</scopeAndContentNote>\n+#\n+# @param element [Krikri::JsonParser::Value]\n+# @return [String]\n+def make_description(element)\n+  node = element.node\n+  (node.is_a? String) ? node : node['note']\n+end\n+\n+# <useRestriction>\n+#   <note>VALUE1</note>\n+#   <specificUseRestrictionArray>\n+#     <specificUseRestriction>\n+#       <termName xmlns=\"\"http://description.das.nara.gov/\"\">VALUE2</termName>\n+#     </specificUseRestriction>\n+#   </specificUseRestrictionArray>\n+#   <status>\n+#     <termName xmlns=\"\"http://description.das.nara.gov/\"\">VALUE3</termName>\n+#   </status>\n+# </useRestriction>\n+#\n+# These should be combined as \"VALUE2: VALUE1 VALUE3\"\n+#\n+# @param element [Krikri::JsonParser::Value]\n+# @return [String]\n+def make_rights(use_restriction)\n+  node = use_restriction.node\n+  note = node.fetch('note', nil)\n+  sura = node.fetch('specificUseRestrictionArray', nil)\n+  status = node.fetch('status', nil)\n+  l_and_r_parts = \\\n+    [specific_rights_part(sura), genl_rights_part(note, status)].compact\n+  l_and_r_parts.join ': '\n+end\n+\n+# @see #make_rights\n+def specific_rights_part(specific_use_restriction_array)\n+  return nil if specific_use_restriction_array.nil?\n+  sur = specific_use_restriction_array['specificUseRestriction']\n+  sur = [sur] unless sur.is_a? Array\n+  terms = sur.map { |el| el['termName'] }\n+  terms.join ', '\n+end\n+\n+# @see #make_rights\n+def genl_rights_part(note, status)\n+  [note, status['termName']].compact.join ' '\n+end\n+\n+\n+# @see #make_date_provided_label\n+# @see #make_begin_date\n+# @see #make_end_date\n+#\n+# @param node [Hash]\n+# @return [String]\n+def date_string(node)\n+  return \"\" if node.nil?\n+  ymd = [\n+    node.fetch('year', nil), node.fetch('month', nil), node.fetch('day', nil)\n+  ].compact.map { |e| \"%02d\" % e }.join '-'\n+  qualifier_node = node.fetch('dateQualifier', false)\n+\n+  return ymd unless qualifier_node\n+\n+  qualifier = qualifier_node['termName']\n+  (qualifier == '?') ? \"#{ymd}#{qualifier}\" : \"#{qualifier} #{ymd}\"\n+end\n+\n+# Date and temporal fields\n+#\n+# FIXME:\n+#\n+# This may be wrong.  The original comment in this file was:\n+#\n+# <quote>\n+#   *Check for coverage dates first and if they are missing, then check for\n+#   other dates. These are ORs, not ANDs. Do not display all.\n+#   **NOT <hierarchy-item-inclusive-dates>\n+# </quote>\n+#\n+# ... But it looks to me like coverageDates is supposed to represent\n+# \"aboutness\" as dcterms:temporal, and the other ones are supposed to represent\n+# a publication, production, or copyright date as dc:date.\n+#\n+# This needs verification.\n+#\n+# <coverageDates>\n+#   <coverageEndDate>\n+#     <dateQualifier>[VALUE]</dateQualifier>\n+#     <day>[VALUE]</day>\n+#     <month>[VALUE]</month>\n+#     <year>[VALUE]</year>\n+#   </coverageEndDate>\n+#   <coverageStartDate>\n+#     <dateQualifier>[VALUE]</dateQualifier>\n+#     <day>[VALUE]</day>\n+#     <month>[VALUE]</month>\n+#     <year>[VALUE]</year>\n+#   </coverageStartDate>\n+# </coverageDates>\n+#\n+# <copyrightDateArray>\n+#   <proposableQualifiableDate>\n+#     <dateQualifier>[VALUE]</dateQualifier>\n+#     <day>[VALUE]</day>\n+#     <month>[VALUE]</month>\n+#     <year>[VALUE]</year>\n+#   </proposableQualifiableDate>\n+# </copyrightDateArray>\n+#\n+# <productionDateArray>\n+#   <proposableQualifiableDate>\n+#     <dateQualifier>[VALUE]</dateQualifier>\n+#     <day>[VALUE]</day>\n+#     <month>[VALUE]</month>\n+#     <year>[VALUE]</year>\n+#   </proposableQualifiableDate>\n+# </productionDateArray>\n+#\n+# <broadcastDateArray>\n+#   <proposableQualifiableDate>\n+#     <dateQualifier/>[VALUE]</dateQualifier>\n+#     <day>[VALUE]</day>\n+#     <month>[VALUE]</month>\n+#     <year>[VALUE]</year>\n+#     <logicalDate>[VALUE]</logicalDate>\n+#   </proposableQualifiableDate>\n+# </broadcastDateArray>\n+#\n+# <releaseDateArray>\n+#   <proposableQualifiableDate>\n+#     <dateQualifier>[VALUE]</dateQualifier>\n+#     <day>[VALUE]</day>\n+#     <month>[VALUE]</month>\n+#     <year>[VALUE]</year>\n+#     <logicalDate>[VALUE]</logicalDate>\n+#   </proposableQualifiableDate>\n+# </releaseDateArray>\n+#\n+# A record can have both dc:date and dcterms:temporal values, like\n+# coverageDates and broadcastDateArray in\n+# https://catalog.archives.gov/api/v1?pretty=true&resultTypes=item%2CfileUnit&objects.object.@objectSortNum=1&naIds=5860128\n+\n+# Return a string suitable for sourceResource.date.providedLabel\n+#\n+def make_date_provided_label(date)\n+  date_string(date.node)\n+  # node = date.node['proposableQualifiableDate']\n+  # node = [node] unless node.is_a? Array\n+  # node.map { |n| date_string(n) }\n+end\n+\n+# Return a string for sourceResource.temporal.begin\n+#\n+def make_begin_date(dates)\n+  date_string(dates.node['coverageStartDate'])\n+end\n+\n+# Return a string for sourceResource.temporal.end\n+#\n+def make_end_date(dates)\n+  date_string(dates.node['coverageEndDate'])\n+end\n+\n+Krikri::Mapper.define(:nara_json, :parser => Krikri::JsonParser) do\n+  provider :class => DPLA::MAP::Agent do\n+    uri 'http://dp.la/api/contributor/nara'\n+    label 'National Archives and Records Administration'\n+  end\n+\n+  dataProvider :class => DPLA::MAP::Agent do\n+    providedLabel record.field('description', 'item | itemAv | fileUnit',\n+                               'physicalOccurrenceArray',\n+                               'itemPhysicalOccurrence |' \\\n+                                 'itemAvPhysicalOccurrence |' \\\n+                                 'fileUnitPhysicalOccurrence',\n+                               'referenceUnitArray', 'referenceUnit',\n+                               'name')\n+  end\n+\n+  isShownAt :class => DPLA::MAP::WebResource do\n+    uri record.field('naId').first_value.map { |id| nara_catalog_uri(id) }\n+  end\n+\n+  object :class => DPLA::MAP::WebResource do\n+    uri record.field('objects', 'object', 'file').first_value\n+              .map { |o| make_obj_uri(o) }\n+    dcformat record.field('objects', 'object', 'file').first_value\n+                   .map { |o| make_obj_dcformat(o) }\n+  end\n+\n+  preview :class => DPLA::MAP::WebResource do\n+    uri record.field('objects', 'object', 'thumbnail').first_value\n+              .map { |o| make_preview_uri(o) }\n+    dcformat record.field('objects', 'object', 'thumbnail').first_value\n+                   .map { |o| make_preview_dcformat(o) }\n+  end\n+\n+  originalRecord :class => DPLA::MAP::WebResource do\n+    uri record_uri\n+  end\n+\n+  sourceResource :class => DPLA::MAP::SourceResource do\n+\n+    # <parentRecordGroup> OR <parentCollection>\n+    #   <naId>[VALUE]</naId>\n+    #   <title>[VALUE]</title>\n+    #   <recordGroupNumber>[VALUE]</recordGroupNumber>\n+    # </parentRecordGroup> OR </parentCollection>\n+    collection :class => DPLA::MAP::Collection do\n+      title record.field('description', 'item | itemAv | fileUnit',\n+                         'parentSeries',\n+                         'parentRecordGroup | parentCollection', 'title')\n+    end\n+\n+    contributor :class => DPLA::MAP::Agent do\n+      providedLabel record.field('description', 'item | itemAv | fileUnit',\n+                                 'organizationalContributorArray |' \\\n+                                   'personalContributorArray')\n+                          .map { |el| make_contributor(el) }\n+    end\n+\n+    # *Use <contributorType>Most Recent</contributorType> if multiple <contributor-display> values.\n+    #\n+    # FIXME:  the instruction on the line above doesn't make sense with the\n+    #         structure of this element in the original data. Verify?\n+    #\n+    # <creatingOrganizationArray> OR <creatingIndividualArray>\n+    #   <creatingOrganization> OR <creatingIndividual>\n+    #     <creator>\n+    #       <termName>[VALUE]</termName>\n+    #     </creator>\n+    #   </creatingOrganization> OR </creatingIndividual>\n+    # </creatingOrganizationArray> OR </creatingIndividualArray>\n+    creator :class => DPLA::MAP::Agent do\n+      providedLabel record.field('description', 'item | itemAv | fileUnit',\n+                                 'parentSeries',\n+                                 'creatingOrganizationArray |' \\\n+                                   'creatingIndividualArray',\n+                                 'creatingOrganization | creatingIndividual',\n+                                 'creator', 'termName')\n+    end\n+\n+\n+    # FIXME:\n+    #\n+    # When proposableQualifiableDate is an array, you get a `date` that looks\n+    # like this:\n+    #\n+    #     <http://purl.org/dc/elements/1.1/date> [\n+    #   a <http://www.europeana.eu/schemas/edm/TimeSpan>;\n+    #   <http://dp.la/about/map/providedLabel> \"1948-03-03\",\n+    #     \"1948-02-11\"\n+    # ],  [\n+    #   a <http://www.europeana.eu/schemas/edm/TimeSpan>;\n+    #   <http://dp.la/about/map/providedLabel> \"1948-03-03\",\n+    #     \"1948-02-11\"\n+    # ],  [\n+    #   a <http://www.europeana.eu/schemas/edm/TimeSpan>;\n+    #   <http://dp.la/about/map/providedLabel> \"1948-03-03\",\n+    #     \"1948-02-11\"\n+    # ];\n+    #\n+    # See https://catalog.archives.gov/api/v1?naIds=20765&pretty=true&resultTypes=item,fileUnit&objects.object.@objectSortNum=1\n+    #\n+    # I expect `each`, below, to give me each of the proposableQualifiableDate\n+    # objects one time only, but when when I examine the execution in `pry` it\n+    # enters #make_data_provided_label nine times.  I expect it to enter that\n+    # method only three times.  It goes through the three elements of\n+    # proposedQualifiableDate in the correct order, three times.\n+    #\n+    date :class => DPLA::MAP::TimeSpan,\n+         :each => record.field('description', 'item | itemAv | fileUnit',\n+                               'copyrightDateArray |' \\\n+                                 'productionDateArray | broadcastDateArray |' \\\n+                                 'releaseDateArray',\n+                                 'proposableQualifiableDate'),\n+         :as => :dc_date do\n+      providedLabel dc_date.map { |d| make_date_provided_label(d) }\n+      # self.begin dc_date.map { |d| make_date_provided_label(d) }\n+      # self.end { |d| make_date_provided_label(d) }\n+    end\n+\n+    temporal :class => DPLA::MAP::TimeSpan,","path":"heidrun/nara_json.rb","position":473,"original_position":473,"commit_id":"098100bc57f596e5c4ef1aa1abc08664b96f2e2a","original_commit_id":"098100bc57f596e5c4ef1aa1abc08664b96f2e2a","user":{"login":"anarchivist","id":73732,"avatar_url":"https://avatars.githubusercontent.com/u/73732?v=3","gravatar_id":"","url":"https://api.github.com/users/anarchivist","html_url":"https://github.com/anarchivist","followers_url":"https://api.github.com/users/anarchivist/followers","following_url":"https://api.github.com/users/anarchivist/following{/other_user}","gists_url":"https://api.github.com/users/anarchivist/gists{/gist_id}","starred_url":"https://api.github.com/users/anarchivist/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anarchivist/subscriptions","organizations_url":"https://api.github.com/users/anarchivist/orgs","repos_url":"https://api.github.com/users/anarchivist/repos","events_url":"https://api.github.com/users/anarchivist/events{/privacy}","received_events_url":"https://api.github.com/users/anarchivist/received_events","type":"User","site_admin":false},"body":"Does the same issue hold up for `temporal` as it does for `date`?","created_at":"2015-06-23T15:52:24Z","updated_at":"2015-06-23T15:52:24Z","html_url":"https://github.com/dpla/heidrun-mappings/pull/14#discussion_r33057060","pull_request_url":"https://api.github.com/repos/dpla/heidrun-mappings/pulls/14","_links":{"self":{"href":"https://api.github.com/repos/dpla/heidrun-mappings/pulls/comments/33057060"},"html":{"href":"https://github.com/dpla/heidrun-mappings/pull/14#discussion_r33057060"},"pull_request":{"href":"https://api.github.com/repos/dpla/heidrun-mappings/pulls/14"}}},"pull_request":{"url":"https://api.github.com/repos/dpla/heidrun-mappings/pulls/14","id":37731955,"html_url":"https://github.com/dpla/heidrun-mappings/pull/14","diff_url":"https://github.com/dpla/heidrun-mappings/pull/14.diff","patch_url":"https://github.com/dpla/heidrun-mappings/pull/14.patch","issue_url":"https://api.github.com/repos/dpla/heidrun-mappings/issues/14","number":14,"state":"open","locked":false,"title":"NARA mapping","user":{"login":"markbreedlove","id":5550828,"avatar_url":"https://avatars.githubusercontent.com/u/5550828?v=3","gravatar_id":"","url":"https://api.github.com/users/markbreedlove","html_url":"https://github.com/markbreedlove","followers_url":"https://api.github.com/users/markbreedlove/followers","following_url":"https://api.github.com/users/markbreedlove/following{/other_user}","gists_url":"https://api.github.com/users/markbreedlove/gists{/gist_id}","starred_url":"https://api.github.com/users/markbreedlove/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/markbreedlove/subscriptions","organizations_url":"https://api.github.com/users/markbreedlove/orgs","repos_url":"https://api.github.com/users/markbreedlove/repos","events_url":"https://api.github.com/users/markbreedlove/events{/privacy}","received_events_url":"https://api.github.com/users/markbreedlove/received_events","type":"User","site_admin":false},"body":"There are a number of \"FIXME\" comments in the file to flag things that should be fixed or questions that should be answered before this is merged.\r\n\r\nSpecifically, I'm not sure that the date handling is correct.\r\n\r\nAlso:\r\n\r\n* The comments have yet to be cleaned up.  I plan to do that before squashing and merging.  I left in the comments that were there when I received the file, which have XML examples from their old datafiles, and these should probably be revised to reflect the JSON of the API.\r\n\r\n* I'm not sure about the naming of the `make_*` methods.   I was trying to avoid confusion or naming conflicts with existing methods for the various fields, but I'm not sure that this is the best convention.\r\n\r\n","created_at":"2015-06-15T20:29:21Z","updated_at":"2015-06-23T15:52:24Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0085518e7bd572f6ca168fb3168833f0f1d62b7b","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/dpla/heidrun-mappings/pulls/14/commits","review_comments_url":"https://api.github.com/repos/dpla/heidrun-mappings/pulls/14/comments","review_comment_url":"https://api.github.com/repos/dpla/heidrun-mappings/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dpla/heidrun-mappings/issues/14/comments","statuses_url":"https://api.github.com/repos/dpla/heidrun-mappings/statuses/098100bc57f596e5c4ef1aa1abc08664b96f2e2a","head":{"label":"dpla:feature/nara-mapping","ref":"feature/nara-mapping","sha":"098100bc57f596e5c4ef1aa1abc08664b96f2e2a","user":{"login":"dpla","id":1252916,"avatar_url":"https://avatars.githubusercontent.com/u/1252916?v=3","gravatar_id":"","url":"https://api.github.com/users/dpla","html_url":"https://github.com/dpla","followers_url":"https://api.github.com/users/dpla/followers","following_url":"https://api.github.com/users/dpla/following{/other_user}","gists_url":"https://api.github.com/users/dpla/gists{/gist_id}","starred_url":"https://api.github.com/users/dpla/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dpla/subscriptions","organizations_url":"https://api.github.com/users/dpla/orgs","repos_url":"https://api.github.com/users/dpla/repos","events_url":"https://api.github.com/users/dpla/events{/privacy}","received_events_url":"https://api.github.com/users/dpla/received_events","type":"Organization","site_admin":false},"repo":{"id":31089468,"name":"heidrun-mappings","full_name":"dpla/heidrun-mappings","owner":{"login":"dpla","id":1252916,"avatar_url":"https://avatars.githubusercontent.com/u/1252916?v=3","gravatar_id":"","url":"https://api.github.com/users/dpla","html_url":"https://github.com/dpla","followers_url":"https://api.github.com/users/dpla/followers","following_url":"https://api.github.com/users/dpla/following{/other_user}","gists_url":"https://api.github.com/users/dpla/gists{/gist_id}","starred_url":"https://api.github.com/users/dpla/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dpla/subscriptions","organizations_url":"https://api.github.com/users/dpla/orgs","repos_url":"https://api.github.com/users/dpla/repos","events_url":"https://api.github.com/users/dpla/events{/privacy}","received_events_url":"https://api.github.com/users/dpla/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dpla/heidrun-mappings","description":"Metadata mappings for the DPLA Heidrun deployment","fork":false,"url":"https://api.github.com/repos/dpla/heidrun-mappings","forks_url":"https://api.github.com/repos/dpla/heidrun-mappings/forks","keys_url":"https://api.github.com/repos/dpla/heidrun-mappings/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dpla/heidrun-mappings/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dpla/heidrun-mappings/teams","hooks_url":"https://api.github.com/repos/dpla/heidrun-mappings/hooks","issue_events_url":"https://api.github.com/repos/dpla/heidrun-mappings/issues/events{/number}","events_url":"https://api.github.com/repos/dpla/heidrun-mappings/events","assignees_url":"https://api.github.com/repos/dpla/heidrun-mappings/assignees{/user}","branches_url":"https://api.github.com/repos/dpla/heidrun-mappings/branches{/branch}","tags_url":"https://api.github.com/repos/dpla/heidrun-mappings/tags","blobs_url":"https://api.github.com/repos/dpla/heidrun-mappings/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dpla/heidrun-mappings/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dpla/heidrun-mappings/git/refs{/sha}","trees_url":"https://api.github.com/repos/dpla/heidrun-mappings/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dpla/heidrun-mappings/statuses/{sha}","languages_url":"https://api.github.com/repos/dpla/heidrun-mappings/languages","stargazers_url":"https://api.github.com/repos/dpla/heidrun-mappings/stargazers","contributors_url":"https://api.github.com/repos/dpla/heidrun-mappings/contributors","subscribers_url":"https://api.github.com/repos/dpla/heidrun-mappings/subscribers","subscription_url":"https://api.github.com/repos/dpla/heidrun-mappings/subscription","commits_url":"https://api.github.com/repos/dpla/heidrun-mappings/commits{/sha}","git_commits_url":"https://api.github.com/repos/dpla/heidrun-mappings/git/commits{/sha}","comments_url":"https://api.github.com/repos/dpla/heidrun-mappings/comments{/number}","issue_comment_url":"https://api.github.com/repos/dpla/heidrun-mappings/issues/comments{/number}","contents_url":"https://api.github.com/repos/dpla/heidrun-mappings/contents/{+path}","compare_url":"https://api.github.com/repos/dpla/heidrun-mappings/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dpla/heidrun-mappings/merges","archive_url":"https://api.github.com/repos/dpla/heidrun-mappings/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dpla/heidrun-mappings/downloads","issues_url":"https://api.github.com/repos/dpla/heidrun-mappings/issues{/number}","pulls_url":"https://api.github.com/repos/dpla/heidrun-mappings/pulls{/number}","milestones_url":"https://api.github.com/repos/dpla/heidrun-mappings/milestones{/number}","notifications_url":"https://api.github.com/repos/dpla/heidrun-mappings/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dpla/heidrun-mappings/labels{/name}","releases_url":"https://api.github.com/repos/dpla/heidrun-mappings/releases{/id}","created_at":"2015-02-20T23:03:12Z","updated_at":"2015-04-15T22:04:20Z","pushed_at":"2015-06-16T20:26:52Z","git_url":"git://github.com/dpla/heidrun-mappings.git","ssh_url":"git@github.com:dpla/heidrun-mappings.git","clone_url":"https://github.com/dpla/heidrun-mappings.git","svn_url":"https://github.com/dpla/heidrun-mappings","homepage":"https://github.com/dpla/heidrun","size":416,"stargazers_count":0,"watchers_count":0,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":3,"forks":0,"open_issues":3,"watchers":0,"default_branch":"master"}},"base":{"label":"dpla:master","ref":"master","sha":"4fd19163f15b91167f16abb77390c67f5a7fdabb","user":{"login":"dpla","id":1252916,"avatar_url":"https://avatars.githubusercontent.com/u/1252916?v=3","gravatar_id":"","url":"https://api.github.com/users/dpla","html_url":"https://github.com/dpla","followers_url":"https://api.github.com/users/dpla/followers","following_url":"https://api.github.com/users/dpla/following{/other_user}","gists_url":"https://api.github.com/users/dpla/gists{/gist_id}","starred_url":"https://api.github.com/users/dpla/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dpla/subscriptions","organizations_url":"https://api.github.com/users/dpla/orgs","repos_url":"https://api.github.com/users/dpla/repos","events_url":"https://api.github.com/users/dpla/events{/privacy}","received_events_url":"https://api.github.com/users/dpla/received_events","type":"Organization","site_admin":false},"repo":{"id":31089468,"name":"heidrun-mappings","full_name":"dpla/heidrun-mappings","owner":{"login":"dpla","id":1252916,"avatar_url":"https://avatars.githubusercontent.com/u/1252916?v=3","gravatar_id":"","url":"https://api.github.com/users/dpla","html_url":"https://github.com/dpla","followers_url":"https://api.github.com/users/dpla/followers","following_url":"https://api.github.com/users/dpla/following{/other_user}","gists_url":"https://api.github.com/users/dpla/gists{/gist_id}","starred_url":"https://api.github.com/users/dpla/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dpla/subscriptions","organizations_url":"https://api.github.com/users/dpla/orgs","repos_url":"https://api.github.com/users/dpla/repos","events_url":"https://api.github.com/users/dpla/events{/privacy}","received_events_url":"https://api.github.com/users/dpla/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dpla/heidrun-mappings","description":"Metadata mappings for the DPLA Heidrun deployment","fork":false,"url":"https://api.github.com/repos/dpla/heidrun-mappings","forks_url":"https://api.github.com/repos/dpla/heidrun-mappings/forks","keys_url":"https://api.github.com/repos/dpla/heidrun-mappings/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dpla/heidrun-mappings/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dpla/heidrun-mappings/teams","hooks_url":"https://api.github.com/repos/dpla/heidrun-mappings/hooks","issue_events_url":"https://api.github.com/repos/dpla/heidrun-mappings/issues/events{/number}","events_url":"https://api.github.com/repos/dpla/heidrun-mappings/events","assignees_url":"https://api.github.com/repos/dpla/heidrun-mappings/assignees{/user}","branches_url":"https://api.github.com/repos/dpla/heidrun-mappings/branches{/branch}","tags_url":"https://api.github.com/repos/dpla/heidrun-mappings/tags","blobs_url":"https://api.github.com/repos/dpla/heidrun-mappings/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dpla/heidrun-mappings/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dpla/heidrun-mappings/git/refs{/sha}","trees_url":"https://api.github.com/repos/dpla/heidrun-mappings/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dpla/heidrun-mappings/statuses/{sha}","languages_url":"https://api.github.com/repos/dpla/heidrun-mappings/languages","stargazers_url":"https://api.github.com/repos/dpla/heidrun-mappings/stargazers","contributors_url":"https://api.github.com/repos/dpla/heidrun-mappings/contributors","subscribers_url":"https://api.github.com/repos/dpla/heidrun-mappings/subscribers","subscription_url":"https://api.github.com/repos/dpla/heidrun-mappings/subscription","commits_url":"https://api.github.com/repos/dpla/heidrun-mappings/commits{/sha}","git_commits_url":"https://api.github.com/repos/dpla/heidrun-mappings/git/commits{/sha}","comments_url":"https://api.github.com/repos/dpla/heidrun-mappings/comments{/number}","issue_comment_url":"https://api.github.com/repos/dpla/heidrun-mappings/issues/comments{/number}","contents_url":"https://api.github.com/repos/dpla/heidrun-mappings/contents/{+path}","compare_url":"https://api.github.com/repos/dpla/heidrun-mappings/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dpla/heidrun-mappings/merges","archive_url":"https://api.github.com/repos/dpla/heidrun-mappings/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dpla/heidrun-mappings/downloads","issues_url":"https://api.github.com/repos/dpla/heidrun-mappings/issues{/number}","pulls_url":"https://api.github.com/repos/dpla/heidrun-mappings/pulls{/number}","milestones_url":"https://api.github.com/repos/dpla/heidrun-mappings/milestones{/number}","notifications_url":"https://api.github.com/repos/dpla/heidrun-mappings/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dpla/heidrun-mappings/labels{/name}","releases_url":"https://api.github.com/repos/dpla/heidrun-mappings/releases{/id}","created_at":"2015-02-20T23:03:12Z","updated_at":"2015-04-15T22:04:20Z","pushed_at":"2015-06-16T20:26:52Z","git_url":"git://github.com/dpla/heidrun-mappings.git","ssh_url":"git@github.com:dpla/heidrun-mappings.git","clone_url":"https://github.com/dpla/heidrun-mappings.git","svn_url":"https://github.com/dpla/heidrun-mappings","homepage":"https://github.com/dpla/heidrun","size":416,"stargazers_count":0,"watchers_count":0,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":3,"forks":0,"open_issues":3,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dpla/heidrun-mappings/pulls/14"},"html":{"href":"https://github.com/dpla/heidrun-mappings/pull/14"},"issue":{"href":"https://api.github.com/repos/dpla/heidrun-mappings/issues/14"},"comments":{"href":"https://api.github.com/repos/dpla/heidrun-mappings/issues/14/comments"},"review_comments":{"href":"https://api.github.com/repos/dpla/heidrun-mappings/pulls/14/comments"},"review_comment":{"href":"https://api.github.com/repos/dpla/heidrun-mappings/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dpla/heidrun-mappings/pulls/14/commits"},"statuses":{"href":"https://api.github.com/repos/dpla/heidrun-mappings/statuses/098100bc57f596e5c4ef1aa1abc08664b96f2e2a"}}}}