diff --git a/.github/workflows/add-jira-link-pr-open.yml b/.github/workflows/add-jira-link-pr-open.yml new file mode 100644 index 0000000000..4d1328d584 --- /dev/null +++ b/.github/workflows/add-jira-link-pr-open.yml @@ -0,0 +1,83 @@ +# +# SPDX-FileCopyrightText: 2024 Lifely +# SPDX-License-Identifier: EUPL-1.2+ +# +name: Create Jira Link to the PR +on: + pull_request: + types: + - opened + +jobs: + create-jira-web-link: + runs-on: ubuntu-latest + steps: + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: '3.12' + + - name: Run Python script + run: | + pip install requests + MY_PYTHON_SCRIPT=$(cat << EOF + import re + import requests + import os + import json + + + def extract_jira_key(pr_message): + pattern = r"[Ss]olves ([A-Z]+-\d+)" + match = re.search(pattern, pr_message) + if match: + return match.group(1) + return None + + + def get_pr_context(): + event_path = '${{ github.event_path }}' + try: + with open(event_path, 'r', encoding='utf8') as event_file: + payload = json.load(event_file) + pr_description = payload.get('pull_request', {}).get('body') + pr_number = payload.get('pull_request', {}).get('number') + pr_url = payload.get('pull_request', {}).get('html_url') + issue_key = extract_jira_key(pr_description) + if jira_key: + return { + "id": pr_number, + "issue_key": issue_key, + "url": pr_url + } + except FileNotFoundError: + print(f"Error: File '{event_path}' not found.") + return None + + + def add_remote_link(pr_context): + jira_url = '${{ secrets.jira_api }}' + url = f"{jira_url}/issue/{pr_context['issue_key']}/remotelink" + headers = { + 'Content-Type': 'application/json', + 'Authorization': 'Basic ${{ secrets.jira_token }}' + } + payload = { + 'object': { + 'url': pr_context['url'], + 'title': f"Pull Request #{pr_context['id']}" + } + } + response = requests.post(url, headers=standard_headers(), json=payload) + if response.status_code == 201: + print(f"Remote link added successfully to issue {pr_context['issue_key']}.") + else: + print(f"Error adding remote link: {response.status_code} - {response.text}") + + + pr_context = get_pr_context() + if pr_context: + add_remote_link(pr_context) + EOF + ) + python -c "$MY_PYTHON_SCRIPT" diff --git a/.github/workflows/build-test-deploy.yml b/.github/workflows/build-test-deploy.yml index a9752963b3..9c1973aae4 100644 --- a/.github/workflows/build-test-deploy.yml +++ b/.github/workflows/build-test-deploy.yml @@ -68,6 +68,11 @@ jobs: - name: Gradle build run: ./gradlew build -x test --info + - name: Upload Detekt scan results to GitHub Security tab + uses: github/codeql-action/upload-sarif@v2 + with: + sarif_file: ${{ github.workspace }}/build/reports/detekt/detekt.sarif + - name: Cache Gradle build artefacts uses: actions/cache/save@v4 with: diff --git a/scripts/github/.secrets-sample b/scripts/github/.secrets-sample index a08fe0ead5..9b46f5dd4e 100644 --- a/scripts/github/.secrets-sample +++ b/scripts/github/.secrets-sample @@ -1,2 +1,4 @@ # Create you're own .secrets file and set all secrets that will be loaded by ACT GITHUB_TOKEN=github-token +JIRA_API=https://jira.api +JIRA_TOKEN=jira-token diff --git a/scripts/github/README.md b/scripts/github/README.md index df2e57f0d0..ce5ae525fe 100644 --- a/scripts/github/README.md +++ b/scripts/github/README.md @@ -34,3 +34,9 @@ There's a script that kicks off act in the correct location: This script can be used to test the whole flow, or you can adjust it so that it only runs a single job. + +# Sample GitHub events +The [sample-events](./sample-events) directory contains sample json events that +will be generated by GitHub in case of events. It only contains those samples +currently used for testing, more samples can be copied from the +[mixu/identify-github-event](https://github.com/mixu/identify-github-event) repository. diff --git a/scripts/github/sample-events/pull-request-event.json b/scripts/github/sample-events/pull-request-event.json new file mode 100644 index 0000000000..76af6aa27e --- /dev/null +++ b/scripts/github/sample-events/pull-request-event.json @@ -0,0 +1,412 @@ +{ + "action": "opened", + "number": 1, + "pull_request": { + "url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/pulls/1", + "id": 34778301, + "html_url": "https://github.com/infonl/dimpact-zaakafhandelcomponent/pull/1", + "diff_url": "https://github.com/infonl/dimpact-zaakafhandelcomponent/pull/1.diff", + "patch_url": "https://github.com/infonl/dimpact-zaakafhandelcomponent/pull/1.patch", + "issue_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/issues/1", + "number": 1, + "state": "open", + "locked": false, + "title": "Update the README with new information", + "user": { + "login": "baxterthehacker", + "id": 6752317, + "avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/baxterthehacker", + "html_url": "https://github.com/baxterthehacker", + "followers_url": "https://api.github.com/users/baxterthehacker/followers", + "following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}", + "gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}", + "starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions", + "organizations_url": "https://api.github.com/users/baxterthehacker/orgs", + "repos_url": "https://api.github.com/users/baxterthehacker/repos", + "events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}", + "received_events_url": "https://api.github.com/users/baxterthehacker/received_events", + "type": "User", + "site_admin": false + }, + "body": "\n\nAdds Caffeine, Caffeine JCache and cache annotations dependencies\n\nSolves PZ-2036\n", + "created_at": "2015-05-05T23:40:27Z", + "updated_at": "2015-05-05T23:40:27Z", + "closed_at": null, + "merged_at": null, + "merge_commit_sha": null, + "assignee": null, + "milestone": null, + "commits_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/pulls/1/commits", + "review_comments_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/pulls/1/comments", + "review_comment_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/pulls/comments{/number}", + "comments_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/issues/1/comments", + "statuses_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/statuses/0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c", + "head": { + "label": "baxterthehacker:changes", + "ref": "changes", + "sha": "0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c", + "user": { + "login": "baxterthehacker", + "id": 6752317, + "avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/baxterthehacker", + "html_url": "https://github.com/baxterthehacker", + "followers_url": "https://api.github.com/users/baxterthehacker/followers", + "following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}", + "gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}", + "starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions", + "organizations_url": "https://api.github.com/users/baxterthehacker/orgs", + "repos_url": "https://api.github.com/users/baxterthehacker/repos", + "events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}", + "received_events_url": "https://api.github.com/users/baxterthehacker/received_events", + "type": "User", + "site_admin": false + }, + "repo": { + "id": 35129377, + "name": "dimpact-zaakafhandelcomponent", + "full_name": "infonl/dimpact-zaakafhandelcomponent", + "owner": { + "login": "baxterthehacker", + "id": 6752317, + "avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/baxterthehacker", + "html_url": "https://github.com/baxterthehacker", + "followers_url": "https://api.github.com/users/baxterthehacker/followers", + "following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}", + "gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}", + "starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions", + "organizations_url": "https://api.github.com/users/baxterthehacker/orgs", + "repos_url": "https://api.github.com/users/baxterthehacker/repos", + "events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}", + "received_events_url": "https://api.github.com/users/baxterthehacker/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/infonl/dimpact-zaakafhandelcomponent", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent", + "forks_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/forks", + "keys_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/teams", + "hooks_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/hooks", + "issue_events_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/issues/events{/number}", + "events_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/events", + "assignees_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/assignees{/user}", + "branches_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/branches{/branch}", + "tags_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/tags", + "blobs_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/statuses/{sha}", + "languages_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/languages", + "stargazers_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/stargazers", + "contributors_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/contributors", + "subscribers_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/subscribers", + "subscription_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/subscription", + "commits_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/contents/{+path}", + "compare_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/merges", + "archive_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/downloads", + "issues_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/issues{/number}", + "pulls_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/pulls{/number}", + "milestones_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/milestones{/number}", + "notifications_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/labels{/name}", + "releases_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/releases{/id}", + "created_at": "2015-05-05T23:40:12Z", + "updated_at": "2015-05-05T23:40:12Z", + "pushed_at": "2015-05-05T23:40:26Z", + "git_url": "git://github.com/infonl/dimpact-zaakafhandelcomponent.git", + "ssh_url": "git@github.com:infonl/dimpact-zaakafhandelcomponent.git", + "clone_url": "https://github.com/infonl/dimpact-zaakafhandelcomponent.git", + "svn_url": "https://github.com/infonl/dimpact-zaakafhandelcomponent", + "homepage": null, + "size": 0, + "stargazers_count": 0, + "watchers_count": 0, + "language": null, + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": true, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 1, + "forks": 0, + "open_issues": 1, + "watchers": 0, + "default_branch": "master" + } + }, + "base": { + "label": "baxterthehacker:master", + "ref": "master", + "sha": "9049f1265b7d61be4a8904a9a27120d2064dab3b", + "user": { + "login": "baxterthehacker", + "id": 6752317, + "avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/baxterthehacker", + "html_url": "https://github.com/baxterthehacker", + "followers_url": "https://api.github.com/users/baxterthehacker/followers", + "following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}", + "gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}", + "starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions", + "organizations_url": "https://api.github.com/users/baxterthehacker/orgs", + "repos_url": "https://api.github.com/users/baxterthehacker/repos", + "events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}", + "received_events_url": "https://api.github.com/users/baxterthehacker/received_events", + "type": "User", + "site_admin": false + }, + "repo": { + "id": 35129377, + "name": "dimpact-zaakafhandelcomponent", + "full_name": "infonl/dimpact-zaakafhandelcomponent", + "owner": { + "login": "baxterthehacker", + "id": 6752317, + "avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/baxterthehacker", + "html_url": "https://github.com/baxterthehacker", + "followers_url": "https://api.github.com/users/baxterthehacker/followers", + "following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}", + "gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}", + "starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions", + "organizations_url": "https://api.github.com/users/baxterthehacker/orgs", + "repos_url": "https://api.github.com/users/baxterthehacker/repos", + "events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}", + "received_events_url": "https://api.github.com/users/baxterthehacker/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/infonl/dimpact-zaakafhandelcomponent", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent", + "forks_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/forks", + "keys_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/teams", + "hooks_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/hooks", + "issue_events_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/issues/events{/number}", + "events_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/events", + "assignees_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/assignees{/user}", + "branches_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/branches{/branch}", + "tags_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/tags", + "blobs_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/statuses/{sha}", + "languages_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/languages", + "stargazers_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/stargazers", + "contributors_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/contributors", + "subscribers_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/subscribers", + "subscription_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/subscription", + "commits_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/contents/{+path}", + "compare_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/merges", + "archive_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/downloads", + "issues_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/issues{/number}", + "pulls_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/pulls{/number}", + "milestones_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/milestones{/number}", + "notifications_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/labels{/name}", + "releases_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/releases{/id}", + "created_at": "2015-05-05T23:40:12Z", + "updated_at": "2015-05-05T23:40:12Z", + "pushed_at": "2015-05-05T23:40:26Z", + "git_url": "git://github.com/infonl/dimpact-zaakafhandelcomponent.git", + "ssh_url": "git@github.com:infonl/dimpact-zaakafhandelcomponent.git", + "clone_url": "https://github.com/infonl/dimpact-zaakafhandelcomponent.git", + "svn_url": "https://github.com/infonl/dimpact-zaakafhandelcomponent", + "homepage": null, + "size": 0, + "stargazers_count": 0, + "watchers_count": 0, + "language": null, + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": true, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 1, + "forks": 0, + "open_issues": 1, + "watchers": 0, + "default_branch": "master" + } + }, + "_links": { + "self": { + "href": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/pulls/1" + }, + "html": { + "href": "https://github.com/infonl/dimpact-zaakafhandelcomponent/pull/1" + }, + "issue": { + "href": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/issues/1" + }, + "comments": { + "href": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/issues/1/comments" + }, + "review_comments": { + "href": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/pulls/1/comments" + }, + "review_comment": { + "href": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/pulls/comments{/number}" + }, + "commits": { + "href": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/pulls/1/commits" + }, + "statuses": { + "href": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/statuses/0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c" + } + }, + "merged": false, + "mergeable": null, + "mergeable_state": "unknown", + "merged_by": null, + "comments": 0, + "review_comments": 0, + "commits": 1, + "additions": 1, + "deletions": 1, + "changed_files": 1 + }, + "repository": { + "id": 35129377, + "name": "dimpact-zaakafhandelcomponent", + "full_name": "infonl/dimpact-zaakafhandelcomponent", + "owner": { + "login": "baxterthehacker", + "id": 6752317, + "avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/baxterthehacker", + "html_url": "https://github.com/baxterthehacker", + "followers_url": "https://api.github.com/users/baxterthehacker/followers", + "following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}", + "gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}", + "starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions", + "organizations_url": "https://api.github.com/users/baxterthehacker/orgs", + "repos_url": "https://api.github.com/users/baxterthehacker/repos", + "events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}", + "received_events_url": "https://api.github.com/users/baxterthehacker/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/infonl/dimpact-zaakafhandelcomponent", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent", + "forks_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/forks", + "keys_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/teams", + "hooks_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/hooks", + "issue_events_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/issues/events{/number}", + "events_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/events", + "assignees_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/assignees{/user}", + "branches_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/branches{/branch}", + "tags_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/tags", + "blobs_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/statuses/{sha}", + "languages_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/languages", + "stargazers_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/stargazers", + "contributors_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/contributors", + "subscribers_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/subscribers", + "subscription_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/subscription", + "commits_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/contents/{+path}", + "compare_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/merges", + "archive_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/downloads", + "issues_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/issues{/number}", + "pulls_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/pulls{/number}", + "milestones_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/milestones{/number}", + "notifications_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/labels{/name}", + "releases_url": "https://api.github.com/repos/infonl/dimpact-zaakafhandelcomponent/releases{/id}", + "created_at": "2015-05-05T23:40:12Z", + "updated_at": "2015-05-05T23:40:12Z", + "pushed_at": "2015-05-05T23:40:26Z", + "git_url": "git://github.com/infonl/dimpact-zaakafhandelcomponent.git", + "ssh_url": "git@github.com:infonl/dimpact-zaakafhandelcomponent.git", + "clone_url": "https://github.com/infonl/dimpact-zaakafhandelcomponent.git", + "svn_url": "https://github.com/infonl/dimpact-zaakafhandelcomponent", + "homepage": null, + "size": 0, + "stargazers_count": 0, + "watchers_count": 0, + "language": null, + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": true, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 1, + "forks": 0, + "open_issues": 1, + "watchers": 0, + "default_branch": "master" + }, + "sender": { + "login": "baxterthehacker", + "id": 6752317, + "avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/baxterthehacker", + "html_url": "https://github.com/baxterthehacker", + "followers_url": "https://api.github.com/users/baxterthehacker/followers", + "following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}", + "gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}", + "starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions", + "organizations_url": "https://api.github.com/users/baxterthehacker/orgs", + "repos_url": "https://api.github.com/users/baxterthehacker/repos", + "events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}", + "received_events_url": "https://api.github.com/users/baxterthehacker/received_events", + "type": "User", + "site_admin": false + } +}