{"action":"created","comment":{"url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/pulls/comments/91743849","pull_request_review_id":12250617,"id":91743849,"diff_hunk":"@@ -0,0 +1,161 @@\n+import logging\n+import re\n+import pandas as pd\n+\n+from dataactcore.config import CONFIG_BROKER\n+from dataactcore.models.domainModels import SF133\n+from dataactvalidator.scripts import load_sf133\n+from dataactvalidator.scripts.loaderUtils import LoaderUtils\n+from tests.unit.dataactcore.factories.domain import SF133Factory\n+\n+SF_RE = re.compile(r'sf_133_(?P<year>\\d{4})_(?P<period>\\d{2})\\.csv')\n+TAS_RE = re.compile(r'(?P<ata>\\d{3})(?P<aid>\\d{3})(?P<bpoa>\\d{4})(?P<epoa>\\d{4})(?P<atc>\\D{1})(?P<mac>\\d{4})(?P<sac>\\d{3})')\n+\n+\n+\n+def test_sf133_files(database):\n+    \"\"\"Test sums of all TAS's in any unloaded SF-133 files\"\"\"\n+    failed_validations = ['file,aid,ata,availability_type_code,bpoa,epoa,main_account,sub_account,error_type,value1,value2']\n+\n+    # get a list of SF 133 files to test\n+    sf133_list = load_sf133.get_sf133_list(None)\n+\n+    # test data in each SF 133 file\n+    for sf133 in sf133_list:\n+\n+        # skipping files with invalid name\n+        file_match = SF_RE.match(sf133.file)\n+        if file_match:\n+            file_index = \"{0}_{1}\".format(file_match.group('year'), file_match.group('period'))\n+            file_fiscal_year = int(file_match.group('year'))\n+            if int(file_match.group('period'))>10:\n+                file_fiscal_year += 1\n+\n+            data = pd.read_csv(sf133.full_file, dtype=str)\n+            data = LoaderUtils.cleanData(\n+                data,\n+                SF133,\n+                {\"ata\": \"allocation_transfer_agency\",\n+                 \"aid\": \"agency_identifier\",\n+                 \"availability_type_code\": \"availability_type_code\",\n+                 \"bpoa\": \"beginning_period_of_availa\",\n+                 \"epoa\": \"ending_period_of_availabil\",\n+                 \"main_account\": \"main_account_code\",\n+                 \"sub_account\": \"sub_account_code\",\n+                 \"fiscal_year\": \"fiscal_year\",\n+                 \"period\": \"period\",\n+                 \"line_num\": \"line\",\n+                 \"amount_summed\": \"amount\"},\n+                {\"allocation_transfer_agency\": {\"pad_to_length\": 3},\n+                 \"agency_identifier\": {\"pad_to_length\": 3},\n+                 \"main_account_code\": {\"pad_to_length\": 4},\n+                 \"sub_account_code\": {\"pad_to_length\": 3},\n+                 # next 3 lines handle the TAS fields that shouldn't\n+                 # be padded but should still be empty spaces rather\n+                 # than NULLs. this ensures that the downstream pivot & melt\n+                 # (which insert the missing 0-value SF-133 lines)\n+                 # will work as expected (values used in the pivot\n+                 # index cannot be NULL).\n+                 # the \"pad_to_length: 0\" works around the fact\n+                 # that sometimes the incoming data for these columns\n+                 # is a single space and sometimes it is blank/NULL.\n+                 \"beginning_period_of_availa\": {\"pad_to_length\": 0},\n+                 \"ending_period_of_availabil\": {\"pad_to_length\": 0},\n+                 \"availability_type_code\": {\"pad_to_length\": 0},\n+                 \"amount\": {\"strip_commas\": True}}\n+            )\n+\n+            # todo: find out how to handle dup rows (e.g., same tas/period/line number)\n+            # line numbers 2002 and 2012 are the only duped SF 133 report line numbers,\n+            # and they are not used by the validation rules, so for now\n+            # just remove them before loading our SF-133 table\n+            dupe_line_numbers = ['2002', '2102']\n+            data = data[~data.line.isin(dupe_line_numbers)]\n+\n+            # add concatenated TAS field for sorting and splitting data\n+            data['tas'] = data.apply(lambda row: ''.join([\n+                row['allocation_transfer_agency'] if row['allocation_transfer_agency'] else '000',\n+                row['agency_identifier'] if row['agency_identifier'] else '000',\n+                row['beginning_period_of_availa'] if row['beginning_period_of_availa'].strip() else '0000',\n+                row['ending_period_of_availabil'] if row['ending_period_of_availabil'].strip() else '0000',\n+                row['availability_type_code'].strip() if row['availability_type_code'].strip() else ' ',\n+                row['main_account_code'] if row['main_account_code'] else '0000',\n+                row['sub_account_code'] if row['sub_account_code'] else '000'\n+            ]), axis=1)\n+            data['amount'] = data['amount'].astype(float)\n+\n+            data = load_sf133.fill_blank_sf133_lines(data)\n+\n+            # remove all lines not included in validation\n+            sf_133_validation_lines = [\n+                '1000', '1010', '1011', '1012', '1013', '1014', '1015', '1016', '1017', '1018', \n+                '1019', '1020', '1021', '1022', '1023', '1024', '1025', '1026', '1027', '1028', \n+                '1029', '1030', '1031', '1032', '1033', '1034', '1035', '1036', '1037', '1038', \n+                '1039', '1040', '1041', '1042', '1160', '1180', '1260', '1280', '1340', '1440', \n+                '1540', '1640', '1750', '1850', '1910', '2190', '2490', '2500'\n+            ]\n+            data = data[(data.line.isin(sf_133_validation_lines) & (data.amount!=0))]\n+\n+            # create list of unique TAS\n+            data.sort_values(by=['tas'], inplace=True)\n+            data.set_index(keys=['tas'], drop=False, inplace=True)\n+            all_tas=data['tas'].unique().tolist()\n+\n+            # iterate through TAS list\n+            for tas in all_tas:\n+                current_tas = data.loc[data.tas==tas]\n+\n+                sum_one = 0\n+                validate_one = 0\n+                validate_one_lines = [\n+                    '1000', '1010', '1011', '1012', '1013', '1014', '1015', '1016', '1017', \n+                    '1018', '1019', '1020', '1021', '1022', '1023', '1024', '1025', '1026', \n+                    '1027', '1028', '1029', '1030', '1031', '1032', '1033', '1034', '1035', \n+                    '1036', '1037', '1038', '1039', '1040', '1041', '1042', '1160', '1180', \n+                    '1260', '1280', '1340', '1440', '1540', '1640', '1750', '1850'\n+                ]\n+\n+                sum_two = 0\n+                validate_two = 0\n+                validate_two_lines = ['2190', '2490']\n+                for index, row in current_tas.iterrows():\n+                    if row.line in validate_one_lines:\n+                        sum_one += row.amount\n+                    elif row.line=='1910':\n+                        validate_one = float(\"{0:.2f}\".format(row.amount))\n+                    elif row.line in validate_two_lines:\n+                        sum_two += row.amount\n+                    elif row.line=='2500':\n+                        validate_two = float(\"{0:.2f}\".format(row.amount))\n+                sum_one = float(\"{0:.2f}\".format(sum_one))\n+                sum_two = float(\"{0:.2f}\".format(sum_two))\n+\n+                validation_one = sum_one==validate_one\n+                validation_two = sum_two==validate_two\n+                validation_three = validate_one==validate_two\n+\n+                tas_m = TAS_RE.match(tas)\n+\n+                # initial validations fail\n+                if not (validation_one and validation_two) and (tas_m and tas_m.group('atc')!='X' and file_fiscal_year>int(tas_m.group('epoa'))):\n+                    if not validation_three:\n+                        failed_validations.append('{0},{1},{2},{3},{4},{5},{6},{7},1900!=2500,{8},{9}'.format(\n+                            file_index, tas_m.group('ata'), tas_m.group('aid'), \n+                            tas_m.group('atc'), tas_m.group('bpoa'), tas_m.group('epoa'), \n+                            tas_m.group('mac'), tas_m.group('sac'), validate_one, validate_two)\n+                        )\n+                else:\n+                    if not validation_one:\n+                        failed_validations.append('{0},{1},{2},{3},{4},{5},{6},{7},sum!=1910,{8},{9}'.format(\n+                            file_index, tas_m.group('ata'), tas_m.group('aid'), \n+                            tas_m.group('atc'), tas_m.group('bpoa'), tas_m.group('epoa'), \n+                            tas_m.group('mac'), tas_m.group('sac'), sum_one, validate_one)\n+                        )\n+                    if not validation_two:\n+                        failed_validations.append('{0},{1},{2},{3},{4},{5},{6},{7},sum!=2500,{8},{9}'.format(\n+                            file_index, tas_m.group('ata'), tas_m.group('aid'), \n+                            tas_m.group('atc'), tas_m.group('bpoa'), tas_m.group('epoa'), \n+                            tas_m.group('mac'), tas_m.group('sac'), sum_two, validate_two)\n+                        )","path":"tests/unit/dataactvalidator/test_sf133_content.py","position":159,"original_position":159,"commit_id":"e79b3671a48e81c9c20852e39ee51161f6de1afd","original_commit_id":"e79b3671a48e81c9c20852e39ee51161f6de1afd","user":{"login":"cmc333333","id":326918,"avatar_url":"https://avatars.githubusercontent.com/u/326918?v=3","gravatar_id":"","url":"https://api.github.com/users/cmc333333","html_url":"https://github.com/cmc333333","followers_url":"https://api.github.com/users/cmc333333/followers","following_url":"https://api.github.com/users/cmc333333/following{/other_user}","gists_url":"https://api.github.com/users/cmc333333/gists{/gist_id}","starred_url":"https://api.github.com/users/cmc333333/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cmc333333/subscriptions","organizations_url":"https://api.github.com/users/cmc333333/orgs","repos_url":"https://api.github.com/users/cmc333333/repos","events_url":"https://api.github.com/users/cmc333333/events{/privacy}","received_events_url":"https://api.github.com/users/cmc333333/received_events","type":"User","site_admin":false},"body":"As we add more validations, lots of `if-append`s will be hard to understand. What do you think about moving these validations to separate functions and then running each in sequence?","created_at":"2016-12-09T16:08:39Z","updated_at":"2016-12-09T16:10:16Z","html_url":"https://github.com/fedspendingtransparency/data-act-broker-backend/pull/451#discussion_r91743849","pull_request_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/pulls/451","_links":{"self":{"href":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/pulls/comments/91743849"},"html":{"href":"https://github.com/fedspendingtransparency/data-act-broker-backend/pull/451#discussion_r91743849"},"pull_request":{"href":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/pulls/451"}}},"pull_request":{"url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/pulls/451","id":97190605,"html_url":"https://github.com/fedspendingtransparency/data-act-broker-backend/pull/451","diff_url":"https://github.com/fedspendingtransparency/data-act-broker-backend/pull/451.diff","patch_url":"https://github.com/fedspendingtransparency/data-act-broker-backend/pull/451.patch","issue_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/issues/451","number":451,"state":"open","locked":false,"title":"Write unit test for the sf-133 files","user":{"login":"michaeldhess","id":4614454,"avatar_url":"https://avatars.githubusercontent.com/u/4614454?v=3","gravatar_id":"","url":"https://api.github.com/users/michaeldhess","html_url":"https://github.com/michaeldhess","followers_url":"https://api.github.com/users/michaeldhess/followers","following_url":"https://api.github.com/users/michaeldhess/following{/other_user}","gists_url":"https://api.github.com/users/michaeldhess/gists{/gist_id}","starred_url":"https://api.github.com/users/michaeldhess/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaeldhess/subscriptions","organizations_url":"https://api.github.com/users/michaeldhess/orgs","repos_url":"https://api.github.com/users/michaeldhess/repos","events_url":"https://api.github.com/users/michaeldhess/events{/privacy}","received_events_url":"https://api.github.com/users/michaeldhess/received_events","type":"User","site_admin":false},"body":"*Update config_examples\r\n*Update load_sf133 get_sf133_list() function to pull local files from config (needs updated config file)","created_at":"2016-12-08T20:02:50Z","updated_at":"2016-12-09T16:10:16Z","closed_at":null,"merged_at":null,"merge_commit_sha":"95321f4c4a45d2a2469cf0ee819dc1e5e4a70e3d","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/pulls/451/commits","review_comments_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/pulls/451/comments","review_comment_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/pulls/comments{/number}","comments_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/issues/451/comments","statuses_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/statuses/e79b3671a48e81c9c20852e39ee51161f6de1afd","head":{"label":"fedspendingtransparency:db-1296-gtas-file-tests","ref":"db-1296-gtas-file-tests","sha":"e79b3671a48e81c9c20852e39ee51161f6de1afd","user":{"login":"fedspendingtransparency","id":8397762,"avatar_url":"https://avatars.githubusercontent.com/u/8397762?v=3","gravatar_id":"","url":"https://api.github.com/users/fedspendingtransparency","html_url":"https://github.com/fedspendingtransparency","followers_url":"https://api.github.com/users/fedspendingtransparency/followers","following_url":"https://api.github.com/users/fedspendingtransparency/following{/other_user}","gists_url":"https://api.github.com/users/fedspendingtransparency/gists{/gist_id}","starred_url":"https://api.github.com/users/fedspendingtransparency/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fedspendingtransparency/subscriptions","organizations_url":"https://api.github.com/users/fedspendingtransparency/orgs","repos_url":"https://api.github.com/users/fedspendingtransparency/repos","events_url":"https://api.github.com/users/fedspendingtransparency/events{/privacy}","received_events_url":"https://api.github.com/users/fedspendingtransparency/received_events","type":"Organization","site_admin":false},"repo":{"id":57313310,"name":"data-act-broker-backend","full_name":"fedspendingtransparency/data-act-broker-backend","owner":{"login":"fedspendingtransparency","id":8397762,"avatar_url":"https://avatars.githubusercontent.com/u/8397762?v=3","gravatar_id":"","url":"https://api.github.com/users/fedspendingtransparency","html_url":"https://github.com/fedspendingtransparency","followers_url":"https://api.github.com/users/fedspendingtransparency/followers","following_url":"https://api.github.com/users/fedspendingtransparency/following{/other_user}","gists_url":"https://api.github.com/users/fedspendingtransparency/gists{/gist_id}","starred_url":"https://api.github.com/users/fedspendingtransparency/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fedspendingtransparency/subscriptions","organizations_url":"https://api.github.com/users/fedspendingtransparency/orgs","repos_url":"https://api.github.com/users/fedspendingtransparency/repos","events_url":"https://api.github.com/users/fedspendingtransparency/events{/privacy}","received_events_url":"https://api.github.com/users/fedspendingtransparency/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/fedspendingtransparency/data-act-broker-backend","description":null,"fork":false,"url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend","forks_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/forks","keys_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/keys{/key_id}","collaborators_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/teams","hooks_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/hooks","issue_events_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/issues/events{/number}","events_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/events","assignees_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/assignees{/user}","branches_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/branches{/branch}","tags_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/tags","blobs_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/git/refs{/sha}","trees_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/git/trees{/sha}","statuses_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/statuses/{sha}","languages_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/languages","stargazers_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/stargazers","contributors_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/contributors","subscribers_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/subscribers","subscription_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/subscription","commits_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/commits{/sha}","git_commits_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/git/commits{/sha}","comments_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/comments{/number}","issue_comment_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/issues/comments{/number}","contents_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/contents/{+path}","compare_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/compare/{base}...{head}","merges_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/merges","archive_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/downloads","issues_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/issues{/number}","pulls_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/pulls{/number}","milestones_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/milestones{/number}","notifications_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/labels{/name}","releases_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/releases{/id}","deployments_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/deployments","created_at":"2016-04-28T15:39:36Z","updated_at":"2016-11-18T23:36:48Z","pushed_at":"2016-12-09T15:24:07Z","git_url":"git://github.com/fedspendingtransparency/data-act-broker-backend.git","ssh_url":"git@github.com:fedspendingtransparency/data-act-broker-backend.git","clone_url":"https://github.com/fedspendingtransparency/data-act-broker-backend.git","svn_url":"https://github.com/fedspendingtransparency/data-act-broker-backend","homepage":null,"size":54300,"stargazers_count":13,"watchers_count":13,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":5,"mirror_url":null,"open_issues_count":6,"forks":5,"open_issues":6,"watchers":13,"default_branch":"development"}},"base":{"label":"fedspendingtransparency:development","ref":"development","sha":"899b300643ebf27cfcacfac2f2d8c19cfc5d08f6","user":{"login":"fedspendingtransparency","id":8397762,"avatar_url":"https://avatars.githubusercontent.com/u/8397762?v=3","gravatar_id":"","url":"https://api.github.com/users/fedspendingtransparency","html_url":"https://github.com/fedspendingtransparency","followers_url":"https://api.github.com/users/fedspendingtransparency/followers","following_url":"https://api.github.com/users/fedspendingtransparency/following{/other_user}","gists_url":"https://api.github.com/users/fedspendingtransparency/gists{/gist_id}","starred_url":"https://api.github.com/users/fedspendingtransparency/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fedspendingtransparency/subscriptions","organizations_url":"https://api.github.com/users/fedspendingtransparency/orgs","repos_url":"https://api.github.com/users/fedspendingtransparency/repos","events_url":"https://api.github.com/users/fedspendingtransparency/events{/privacy}","received_events_url":"https://api.github.com/users/fedspendingtransparency/received_events","type":"Organization","site_admin":false},"repo":{"id":57313310,"name":"data-act-broker-backend","full_name":"fedspendingtransparency/data-act-broker-backend","owner":{"login":"fedspendingtransparency","id":8397762,"avatar_url":"https://avatars.githubusercontent.com/u/8397762?v=3","gravatar_id":"","url":"https://api.github.com/users/fedspendingtransparency","html_url":"https://github.com/fedspendingtransparency","followers_url":"https://api.github.com/users/fedspendingtransparency/followers","following_url":"https://api.github.com/users/fedspendingtransparency/following{/other_user}","gists_url":"https://api.github.com/users/fedspendingtransparency/gists{/gist_id}","starred_url":"https://api.github.com/users/fedspendingtransparency/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fedspendingtransparency/subscriptions","organizations_url":"https://api.github.com/users/fedspendingtransparency/orgs","repos_url":"https://api.github.com/users/fedspendingtransparency/repos","events_url":"https://api.github.com/users/fedspendingtransparency/events{/privacy}","received_events_url":"https://api.github.com/users/fedspendingtransparency/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/fedspendingtransparency/data-act-broker-backend","description":null,"fork":false,"url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend","forks_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/forks","keys_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/keys{/key_id}","collaborators_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/teams","hooks_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/hooks","issue_events_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/issues/events{/number}","events_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/events","assignees_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/assignees{/user}","branches_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/branches{/branch}","tags_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/tags","blobs_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/git/refs{/sha}","trees_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/git/trees{/sha}","statuses_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/statuses/{sha}","languages_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/languages","stargazers_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/stargazers","contributors_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/contributors","subscribers_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/subscribers","subscription_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/subscription","commits_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/commits{/sha}","git_commits_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/git/commits{/sha}","comments_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/comments{/number}","issue_comment_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/issues/comments{/number}","contents_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/contents/{+path}","compare_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/compare/{base}...{head}","merges_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/merges","archive_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/downloads","issues_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/issues{/number}","pulls_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/pulls{/number}","milestones_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/milestones{/number}","notifications_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/labels{/name}","releases_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/releases{/id}","deployments_url":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/deployments","created_at":"2016-04-28T15:39:36Z","updated_at":"2016-11-18T23:36:48Z","pushed_at":"2016-12-09T15:24:07Z","git_url":"git://github.com/fedspendingtransparency/data-act-broker-backend.git","ssh_url":"git@github.com:fedspendingtransparency/data-act-broker-backend.git","clone_url":"https://github.com/fedspendingtransparency/data-act-broker-backend.git","svn_url":"https://github.com/fedspendingtransparency/data-act-broker-backend","homepage":null,"size":54300,"stargazers_count":13,"watchers_count":13,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":5,"mirror_url":null,"open_issues_count":6,"forks":5,"open_issues":6,"watchers":13,"default_branch":"development"}},"_links":{"self":{"href":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/pulls/451"},"html":{"href":"https://github.com/fedspendingtransparency/data-act-broker-backend/pull/451"},"issue":{"href":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/issues/451"},"comments":{"href":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/issues/451/comments"},"review_comments":{"href":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/pulls/451/comments"},"review_comment":{"href":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/pulls/451/commits"},"statuses":{"href":"https://api.github.com/repos/fedspendingtransparency/data-act-broker-backend/statuses/e79b3671a48e81c9c20852e39ee51161f6de1afd"}}}}
{"actor":{"display_login":"cmc333333"}}