GitHub

Collect logs from GitHub with Elastic Agent.

Version
2.0.0 (View all)
Compatible Kibana version(s)
8.13.0 or higher
Supported Serverless project types

Security
Observability
Subscription level
Basic
Level of support
Elastic

The GitHub integration collects events from the GitHub API.

Logs

Audit

The GitHub audit log records all events related to the GitHub organization. See Audit log actions for more details.

To use this integration, the following prerequisites must be met:

  • You must be an organization owner.
  • You must be using GitHub Enterprise Cloud.
  • You must use a Personal Access Token with read:audit_log scope.

This integration is not compatible with GitHub Enterprise server.

Exported fields

FieldDescriptionType
@timestamp
Event timestamp.
date
data_stream.dataset
Data stream dataset name.
constant_keyword
data_stream.namespace
Data stream namespace.
constant_keyword
data_stream.type
Data stream type.
constant_keyword
event.dataset
Event dataset
constant_keyword
event.module
Event module
constant_keyword
github.actor_ip
The IP address of the entity performing the action.
ip
github.category
GitHub action category.
keyword
github.hashed_token
SHA-256 hash of the token used for authentication.
keyword
github.integration
The GitHub App that triggered the event.
keyword
github.org
GitHub organization name.
keyword
github.permission
GitHub user permissions for the event.
keyword
github.programmatic_access_type
Type of authentication used.
keyword
github.repo
GitHub repository name.
keyword
github.repositories_added_names
The name of the repository added to a GitHub App installation.
keyword
github.repositories_removed_names
The name of the repository removed from a GitHub App installation.
keyword
github.repository_public
Whether the GitHub repository is publicly visible.
boolean
github.repository_selection
Whether all repositories have been selected or there's a selection involved.
keyword
github.team
GitHub team name.
keyword
github.user_agent
The user agent of the entity performing the action.
keyword
host.containerized
If the host is a container.
boolean
host.os.build
OS build information.
keyword
host.os.codename
OS codename, if any.
keyword
input.type
Type of Filebeat input.
keyword

An example event for audit looks as following:

{
    "@timestamp": "2020-11-18T17:05:48.837Z",
    "agent": {
        "ephemeral_id": "9246e7d9-fcc1-46ab-b3fd-2d0888f2a94d",
        "id": "ad5c3ec8-3015-4cd2-a269-a2f3df062a2c",
        "name": "docker-fleet-agent",
        "type": "filebeat",
        "version": "8.12.0"
    },
    "data_stream": {
        "dataset": "github.audit",
        "namespace": "ep",
        "type": "logs"
    },
    "ecs": {
        "version": "8.11.0"
    },
    "elastic_agent": {
        "id": "ad5c3ec8-3015-4cd2-a269-a2f3df062a2c",
        "snapshot": false,
        "version": "8.12.0"
    },
    "event": {
        "action": "repo.destroy",
        "agent_id_status": "verified",
        "category": [
            "configuration",
            "web"
        ],
        "created": "2024-01-18T15:58:09.826Z",
        "dataset": "github.audit",
        "id": "LwW2vpJZCDS-WUmo9Z-ifw",
        "ingested": "2024-01-18T15:58:19Z",
        "kind": "event",
        "original": "{\"@timestamp\":1605719148837,\"_document_id\":\"LwW2vpJZCDS-WUmo9Z-ifw\",\"action\":\"repo.destroy\",\"actor\":\"monalisa\",\"created_at\":1605719148837,\"org\":\"mona-org\",\"repo\":\"mona-org/mona-test-repo\",\"visibility\":\"private\"}",
        "type": [
            "change"
        ]
    },
    "github": {
        "category": "repo",
        "org": "mona-org",
        "repo": "mona-org/mona-test-repo"
    },
    "input": {
        "type": "httpjson"
    },
    "related": {
        "user": [
            "monalisa"
        ]
    },
    "tags": [
        "forwarded",
        "github-audit",
        "preserve_original_event"
    ],
    "user": {
        "name": "monalisa"
    }
}

Code Scanning

The Code Scanning lets you retrieve all security vulnerabilities and coding errors from a repository setup using GitHub Advanced Security Code Scanning feature. See About code scanning for more details.

To use this integration, GitHub Apps must have the security_events read permission. Or use a personal access token with the security_events scope for private repos or public_repo scope for public repos. See List code scanning alerts

Exported fields

FieldDescriptionTypeUnitMetric Type
@timestamp
Date/time when the event originated. This is the date/time extracted from the event, typically representing when the event was generated by the source. If the event source has no original timestamp, this value is typically populated by the first time the event was received by the pipeline. Required field for all events.
date
data_stream.dataset
The field can contain anything that makes sense to signify the source of the data. Examples include nginx.access, prometheus, endpoint etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. event.dataset should have the same value as data_stream.dataset. Beyond the Elasticsearch data stream naming criteria noted above, the dataset value has additional restrictions: * Must not contain - * No longer than 100 characters
constant_keyword
data_stream.namespace
A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with default. If no value is used, it falls back to default. Beyond the Elasticsearch index naming criteria noted above, namespace value has the additional restrictions: * Must not contain - * No longer than 100 characters
constant_keyword
data_stream.type
An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future.
constant_keyword
event.dataset
Name of the dataset. If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name.
constant_keyword
event.kind
constant_keyword
event.module
Name of the module this data is coming from. If your monitoring agent supports the concept of modules or plugins to process events of a given source (e.g. Apache logs), event.module should contain the name of this module.
constant_keyword
github.code_scanning.created_at
The time that the alert was created in ISO 8601 format - YYYY-MM-DDTHH:MM:SSZ.
date
github.code_scanning.dismissed_at
The time that the alert was dismissed in ISO 8601 format - YYYY-MM-DDTHH:MM:SSZ.
date
github.code_scanning.dismissed_by.email
keyword
github.code_scanning.dismissed_by.html_url
keyword
github.code_scanning.dismissed_by.id
integer
github.code_scanning.dismissed_by.login
keyword
github.code_scanning.dismissed_by.name
keyword
github.code_scanning.dismissed_by.site_admin
boolean
github.code_scanning.dismissed_by.type
keyword
github.code_scanning.dismissed_by.url
keyword
github.code_scanning.dismissed_comment
The dismissal comment associated with the dismissal of the alert.
keyword
github.code_scanning.dismissed_reason
The reason for dismissing or closing the alert.
keyword
github.code_scanning.fixed_at
The time that the alert was no longer detected and was considered fixed in ISO 8601 format - YYYY-MM-DDTHH:MM:SSZ.
date
github.code_scanning.html_url
The GitHub URL of the alert resource.
keyword
github.code_scanning.instances_url
The REST API URL for fetching the list of instances for an alert.
keyword
github.code_scanning.most_recent_instance.analysis_key
Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name.
keyword
github.code_scanning.most_recent_instance.category
Identifies the configuration under which the analysis was executed. Used to distinguish between multiple analyses for the same tool and commit, but performed on different languages or different parts of the code.
keyword
github.code_scanning.most_recent_instance.classifications
Classifications that have been applied to the file that triggered the alert.\nFor example identifying it as documentation, or a generated file.
keyword
github.code_scanning.most_recent_instance.commit_sha
GitHub commit sha.
keyword
github.code_scanning.most_recent_instance.environment
Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed.
keyword
github.code_scanning.most_recent_instance.html_url
keyword
github.code_scanning.most_recent_instance.location.end_column
integer
github.code_scanning.most_recent_instance.location.end_line
integer
github.code_scanning.most_recent_instance.location.path
keyword
github.code_scanning.most_recent_instance.location.start_column
integer
github.code_scanning.most_recent_instance.location.start_line
integer
github.code_scanning.most_recent_instance.ref
The full Git reference, formatted as refs/heads/\<branch name\>,\nrefs/pull/\<number\>/merge, or refs/pull/\<number\>/head.
keyword
github.code_scanning.most_recent_instance.state
State of a code scanning alert.
keyword
github.code_scanning.number
The security alert number.
integer
github.code_scanning.rule.full_description
Description of the rule used to detect the alert.
text
github.code_scanning.rule.help
Detailed documentation for the rule as GitHub Flavored Markdown.
text
github.code_scanning.rule.security_severity_level
The security severity of the alert.
keyword
github.code_scanning.rule.severity
The severity of the alert.
keyword
github.code_scanning.state
State of a code scanning alert.
keyword
github.code_scanning.time_to_resolution.sec
The time taken to either dismiss or fix the alert in seconds.
long
s
gauge
github.code_scanning.tool.guid
The GUID of the tool used to generate the code scanning analysis, if provided in the uploaded SARIF data.
keyword
github.code_scanning.tool.name
The name of the tool used to generate the code scanning analysis.
keyword
github.code_scanning.tool.version
The version of the tool used to generate the code scanning analysis.
keyword
github.code_scanning.updated_at
The time that the alert was last updated in ISO 8601 format - YYYY-MM-DDTHH:MM:SSZ.
date
github.code_scanning.url
The REST API URL of the alert resource.
keyword
github.repository.description
The repository description.
text
github.repository.fork
Whether the repository is a fork.
boolean
github.repository.full_name
The full, globally unique, name of the repository.
keyword
github.repository.html_url
The URL to view the repository on GitHub.com.
keyword
github.repository.id
A unique identifier of the repository.
integer
github.repository.is_in_organization
Indicates if a repository is either owned by an organization, or is a private fork of an organization repository.
boolean
github.repository.name
The name of the repository.
keyword
github.repository.owner.email
The public email of repository owner.
keyword
github.repository.owner.html_url
The HTTP URL for the repository owner.
keyword
github.repository.owner.id
ID of the repository owner.
integer
github.repository.owner.login
Login username of repository owner.
keyword
github.repository.owner.name
Name of repository owner.
keyword
github.repository.owner.site_admin
Whether the owner is a site administrator.
boolean
github.repository.owner.type
The type of the repository owner. Example - User.
keyword
github.repository.owner.url
The URL to get more information about the repository owner from the GitHub API.
keyword
github.repository.private
Whether the repository is private.
boolean
github.repository.url
The URL to get more information about the repository from the GitHub API.
keyword
host.containerized
If the host is a container.
boolean
host.os.build
OS build information.
keyword
host.os.codename
OS codename, if any.
keyword
input.type
Input Type.
keyword
labels.is_transform_source
Distinguishes between documents that are a source for a transform and documents that are an output of a transform, to facilitate easier filtering.
constant_keyword
log.offset
Log Offset.
long

An example event for code_scanning looks as following:

{
    "@timestamp": "2022-06-29T18:03:27.000Z",
    "agent": {
        "ephemeral_id": "6ff86bf4-40bb-48d0-a0c3-7620a07cc706",
        "id": "2b4faf01-5ea6-4888-8ea5-db817b2b8915",
        "name": "elastic-agent-67340",
        "type": "filebeat",
        "version": "8.13.0"
    },
    "data_stream": {
        "dataset": "github.code_scanning",
        "namespace": "68459",
        "type": "logs"
    },
    "ecs": {
        "version": "8.11.0"
    },
    "elastic_agent": {
        "id": "2b4faf01-5ea6-4888-8ea5-db817b2b8915",
        "snapshot": false,
        "version": "8.13.0"
    },
    "event": {
        "agent_id_status": "verified",
        "created": "2022-06-29T18:03:27.000Z",
        "dataset": "github.code_scanning",
        "ingested": "2024-10-30T03:17:27Z",
        "original": "{\"created_at\":\"2022-06-29T18:03:27Z\",\"html_url\":\"https://github.com/sample_owner/sample_repo/security/code-scanning/91\",\"most_recent_instance\":{\"analysis_key\":\".github/workflows/codeql-analysis.yml:analyze\",\"category\":\".github/workflows/codeql-analysis.yml:analyze/language:javascript\",\"classifications\":[],\"commit_sha\":\"3244e8b15cc1b8f2732eecd69fc1890b737f0dda\",\"location\":{\"end_column\":50,\"end_line\":67,\"path\":\"routes/chatbot.ts\",\"start_column\":23,\"start_line\":67},\"message\":{\"text\":\"(Experimental) This may be a database query that depends on a user-provided value. Identified using machine learning.(Experimental) This may be a database query that depends on a user-provided value. Identified using machine learning.\"},\"ref\":\"refs/heads/master\",\"state\":\"open\"},\"number\":90,\"rule\":{\"description\":\"SQL database query built from user-controlled sources (experimental)\",\"id\":\"js/ml-powered/sql-injection\",\"security_severity_level\":\"high\",\"severity\":\"error\",\"tags\":[\"experimental\",\"external/cwe/cwe-089\",\"security\"]},\"state\":\"open\",\"tool\":{\"name\":\"CodeQL\",\"version\":\"2.9.4\"},\"updated_at\":\"2022-06-29T18:03:27Z\",\"url\":\"https://api.github.com/repos/sample_owner/sample_repo/code-scanning/alerts/91\"}",
        "type": [
            "creation"
        ]
    },
    "github": {
        "code_scanning": {
            "created_at": "2022-06-29T18:03:27Z",
            "html_url": "https://github.com/sample_owner/sample_repo/security/code-scanning/91",
            "most_recent_instance": {
                "analysis_key": ".github/workflows/codeql-analysis.yml:analyze",
                "category": ".github/workflows/codeql-analysis.yml:analyze/language:javascript",
                "commit_sha": "3244e8b15cc1b8f2732eecd69fc1890b737f0dda",
                "location": {
                    "end_column": 50,
                    "end_line": 67,
                    "path": "routes/chatbot.ts",
                    "start_column": 23,
                    "start_line": 67
                },
                "ref": "refs/heads/master",
                "state": "open"
            },
            "number": 90,
            "rule": {
                "security_severity_level": "high",
                "severity": "error"
            },
            "state": "open",
            "tool": {
                "name": "CodeQL",
                "version": "2.9.4"
            },
            "updated_at": "2022-06-29T18:03:27Z",
            "url": "https://api.github.com/repos/sample_owner/sample_repo/code-scanning/alerts/91"
        },
        "repository": {
            "html_url": "https://github.com/sample_owner/sample_repo",
            "name": "sample_repo",
            "owner": {
                "login": "sample_owner"
            },
            "url": "https://api.github.com/repos/sample_owner/sample_repo"
        }
    },
    "input": {
        "type": "httpjson"
    },
    "message": "(Experimental) This may be a database query that depends on a user-provided value. Identified using machine learning.(Experimental) This may be a database query that depends on a user-provided value. Identified using machine learning.",
    "rule": {
        "description": "SQL database query built from user-controlled sources (experimental)",
        "id": "js/ml-powered/sql-injection"
    },
    "tags": [
        "forwarded",
        "github-code-scanning",
        "preserve_original_event",
        "experimental",
        "external/cwe/cwe-089",
        "security"
    ]
}

Secret Scanning

The GitHub Secret Scanning lets you retrieve secret scanning for advanced security alerts from a repository setup using GitHub Advanced Security Secret Scanning feature. See About Secret scanning for more details.

To use this integration, GitHub Apps must have the secret_scanning_alerts read permission. Or you must be an administrator for the repository or for the organization that owns the repository, and you must use a personal access token with the repo scope or security_events scope. For public repositories, you may instead use the public_repo scope. See List secret scanning alerts

Exported fields

FieldDescriptionTypeUnitMetric Type
@timestamp
Date/time when the event originated. This is the date/time extracted from the event, typically representing when the event was generated by the source. If the event source has no original timestamp, this value is typically populated by the first time the event was received by the pipeline. Required field for all events.
date
data_stream.dataset
The field can contain anything that makes sense to signify the source of the data. Examples include nginx.access, prometheus, endpoint etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. event.dataset should have the same value as data_stream.dataset. Beyond the Elasticsearch data stream naming criteria noted above, the dataset value has additional restrictions: * Must not contain - * No longer than 100 characters
constant_keyword
data_stream.namespace
A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with default. If no value is used, it falls back to default. Beyond the Elasticsearch index naming criteria noted above, namespace value has the additional restrictions: * Must not contain - * No longer than 100 characters
constant_keyword
data_stream.type
An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future.
constant_keyword
event.dataset
Name of the dataset. If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name.
constant_keyword
event.kind
constant_keyword
event.module
Name of the module this data is coming from. If your monitoring agent supports the concept of modules or plugins to process events of a given source (e.g. Apache logs), event.module should contain the name of this module.
constant_keyword
github.repository.description
The repository description.
text
github.repository.fork
Whether the repository is a fork.
boolean
github.repository.full_name
The full, globally unique, name of the repository.
keyword
github.repository.html_url
The URL to view the repository on GitHub.com.
keyword
github.repository.id
A unique identifier of the repository.
integer
github.repository.is_in_organization
Indicates if a repository is either owned by an organization, or is a private fork of an organization repository.
boolean
github.repository.name
The name of the repository.
keyword
github.repository.owner.email
The public email of repository owner.
keyword
github.repository.owner.html_url
The HTTP URL for the repository owner.
keyword
github.repository.owner.id
ID of the repository owner.
integer
github.repository.owner.login
Login username of repository owner.
keyword
github.repository.owner.name
Name of repository owner.
keyword
github.repository.owner.site_admin
Whether the owner is a site administrator.
boolean
github.repository.owner.type
The type of the repository owner. Example - User.
keyword
github.repository.owner.url
The URL to get more information about the repository owner from the GitHub API.
keyword
github.repository.private
Whether the repository is private.
boolean
github.repository.url
The URL to get more information about the repository from the GitHub API.
keyword
github.secret_scanning.created_at
The time that the alert was created in ISO 8601 format - YYYY-MM-DDTHH:MM:SSZ.
date
github.secret_scanning.html_url
The GitHub URL of the alert resource.
keyword
github.secret_scanning.locations_url
The REST API URL of the code locations for this alert.
keyword
github.secret_scanning.number
The security alert number.
integer
github.secret_scanning.push_protection_bypassed
Whether push protection was bypassed for the detected secret.
boolean
github.secret_scanning.push_protection_bypassed_at
The time that push protection was bypassed in ISO 8601 format - YYYY-MM-DDTHH:MM:SSZ.
date
github.secret_scanning.push_protection_bypassed_by.email
keyword
github.secret_scanning.push_protection_bypassed_by.html_url
keyword
github.secret_scanning.push_protection_bypassed_by.id
integer
github.secret_scanning.push_protection_bypassed_by.login
keyword
github.secret_scanning.push_protection_bypassed_by.name
keyword
github.secret_scanning.push_protection_bypassed_by.node_id
keyword
github.secret_scanning.push_protection_bypassed_by.site_admin
boolean
github.secret_scanning.push_protection_bypassed_by.type
keyword
github.secret_scanning.push_protection_bypassed_by.url
keyword
github.secret_scanning.resolution
Required when the state is resolved. The reason for resolving the alert.
keyword
github.secret_scanning.resolved_at
The time that the alert was resolved in ISO 8601 format - YYYY-MM-DDTHH:MM:SSZ.
date
github.secret_scanning.resolved_by.email
keyword
github.secret_scanning.resolved_by.html_url
keyword
github.secret_scanning.resolved_by.id
integer
github.secret_scanning.resolved_by.login
keyword
github.secret_scanning.resolved_by.name
keyword
github.secret_scanning.resolved_by.node_id
keyword
github.secret_scanning.resolved_by.site_admin
boolean
github.secret_scanning.resolved_by.type
keyword
github.secret_scanning.resolved_by.url
keyword
github.secret_scanning.secret
The secret that was detected.
keyword
github.secret_scanning.secret_type
The type of secret that secret scanning detected.
keyword
github.secret_scanning.secret_type_display_name
User-friendly name for the detected secret, matching the secret_type.
keyword
github.secret_scanning.state
State of the secret scanning alert.
keyword
github.secret_scanning.time_to_resolution.sec
The time taken to either fix the secret in seconds.
long
s
gauge
github.secret_scanning.updated_at
The time that the alert was last updated in ISO 8601 format - YYYY-MM-DDTHH:MM:SSZ.
date
github.secret_scanning.url
The REST API URL of the alert resource
keyword
host.containerized
If the host is a container.
boolean
host.os.build
OS build information.
keyword
host.os.codename
OS codename, if any.
keyword
input.type
Input Type.
keyword
labels.is_transform_source
Distinguishes between documents that are a source for a transform and documents that are an output of a transform, to facilitate easier filtering.
constant_keyword
log.offset
Log Offset.
long

An example event for secret_scanning looks as following:

{
    "@timestamp": "2022-06-30T18:07:27.000Z",
    "agent": {
        "ephemeral_id": "b651a7b7-f9b4-4d2c-a268-85adcaf38b31",
        "id": "a998f341-28a4-4447-91a3-2f132fd17d6e",
        "name": "elastic-agent-83267",
        "type": "filebeat",
        "version": "8.13.0"
    },
    "data_stream": {
        "dataset": "github.secret_scanning",
        "namespace": "15643",
        "type": "logs"
    },
    "ecs": {
        "version": "8.11.0"
    },
    "elastic_agent": {
        "id": "a998f341-28a4-4447-91a3-2f132fd17d6e",
        "snapshot": false,
        "version": "8.13.0"
    },
    "event": {
        "agent_id_status": "verified",
        "created": "2022-06-30T18:07:27Z",
        "dataset": "github.secret_scanning",
        "ingested": "2024-10-30T03:20:24Z",
        "original": "{\"created_at\":\"2022-06-30T18:07:27Z\",\"html_url\":\"https://github.com/sample_owner/sample_repo/security/secret-scanning/3\",\"number\":3,\"push_protection_bypassed\":true,\"push_protection_bypassed_by\":{\"html_url\":\"https://github.com/sample_owner\",\"login\":\"sample_owner\",\"type\":\"User\",\"url\":\"https://api.github.com/users/sample_owner\"},\"resolution\":\"revoked\",\"resolved_by\":{\"login\":\"sample_owner\",\"type\":\"User\",\"url\":\"https://api.github.com/users/sample_owner\"},\"secret\":\"npm_2vYJ3QzGXoGbEgMYduYS1k2M4D0wDu2opJbl\",\"secret_type\":\"npm_access_token\",\"secret_type_display_name\":\"npm Access Token\",\"state\":\"open\",\"url\":\"https://api.github.com/repos/sample_owner/sample_repo/secret-scanning/alerts/3\"}",
        "type": [
            "creation"
        ]
    },
    "github": {
        "repository": {
            "html_url": "https://github.com/sample_owner/sample_repo",
            "name": "sample_repo",
            "owner": {
                "login": "sample_owner"
            },
            "url": "https://api.github.com/repos/sample_owner/sample_repo"
        },
        "secret_scanning": {
            "created_at": "2022-06-30T18:07:27Z",
            "html_url": "https://github.com/sample_owner/sample_repo/security/secret-scanning/3",
            "number": 3,
            "push_protection_bypassed": true,
            "push_protection_bypassed_by": {
                "html_url": "https://github.com/sample_owner",
                "login": "sample_owner",
                "type": "User",
                "url": "https://api.github.com/users/sample_owner"
            },
            "resolution": "revoked",
            "resolved_by": {
                "login": "sample_owner",
                "type": "User",
                "url": "https://api.github.com/users/sample_owner"
            },
            "secret": "npXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbl",
            "secret_type": "npm_access_token",
            "secret_type_display_name": "npm Access Token",
            "state": "open",
            "url": "https://api.github.com/repos/sample_owner/sample_repo/secret-scanning/alerts/3"
        }
    },
    "input": {
        "type": "httpjson"
    },
    "tags": [
        "forwarded",
        "github-secret-scanning",
        "preserve_original_event",
        "hide_secret"
    ]
}

Dependabot

The GitHub Dependabot lets you retrieve known vulnerabilites in dependencies from a repository setup using GitHub Advanced Security Dependabot feature. See About Dependabot for more details.

To use this integration, you must be an administrator for the repository or for the organization that owns the repository, and you must use a personal access token with the repo scope or security_events scope. For public repositories, you may instead use the public_repo scope. See Authenticating with GraphQL and Token Issue

Exported fields

FieldDescriptionType
@timestamp
Date/time when the event originated. This is the date/time extracted from the event, typically representing when the event was generated by the source. If the event source has no original timestamp, this value is typically populated by the first time the event was received by the pipeline. Required field for all events.
date
data_stream.dataset
The field can contain anything that makes sense to signify the source of the data. Examples include nginx.access, prometheus, endpoint etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. event.dataset should have the same value as data_stream.dataset. Beyond the Elasticsearch data stream naming criteria noted above, the dataset value has additional restrictions: * Must not contain - * No longer than 100 characters
constant_keyword
data_stream.namespace
A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with default. If no value is used, it falls back to default. Beyond the Elasticsearch index naming criteria noted above, namespace value has the additional restrictions: * Must not contain - * No longer than 100 characters
constant_keyword
data_stream.type
An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future.
constant_keyword
event.dataset
Name of the dataset. If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name.
constant_keyword
event.kind
constant_keyword
event.module
Name of the module this data is coming from. If your monitoring agent supports the concept of modules or plugins to process events of a given source (e.g. Apache logs), event.module should contain the name of this module.
constant_keyword
github.dependabot.created_at
When was the alert created.
date
github.dependabot.dependabot_update.error.body
The body of the error.
text
github.dependabot.dependabot_update.error.error_type
The error code.
keyword
github.dependabot.dependabot_update.error.title
The title of the error.
keyword
github.dependabot.dependabot_update.pull_request.closed
If the pull request is closed.
boolean
github.dependabot.dependabot_update.pull_request.closed_at
Identifies the date and time when the pull request was closed.
date
github.dependabot.dependabot_update.pull_request.created_at
Identifies the date and time when the pull request was created.
date
github.dependabot.dependabot_update.pull_request.merged
Whether or not the pull request was merged.
boolean
github.dependabot.dependabot_update.pull_request.merged_at
The date and time that the pull request was merged.
date
github.dependabot.dependabot_update.pull_request.number
Identifies the pull request number.
integer
github.dependabot.dependabot_update.pull_request.title
Identifies the pull request title.
keyword
github.dependabot.dependabot_update.pull_request.url
The HTTP URL for this pull request.
keyword
github.dependabot.dependency_scope
The scope of an alert's dependency.
keyword
github.dependabot.dismiss_reason
The reason the alert was dismissed.
keyword
github.dependabot.dismissed_at
When was the alert dismissed.
date
github.dependabot.dismisser.login
The username of the dismisser.
keyword
github.dependabot.dismisser.url
The HTTP URL for this user.
keyword
github.dependabot.fixed_at
When was the alert fixed.
date
github.dependabot.number
Identifies the alert number.
integer
github.dependabot.security_advisory.classification
The classification of the advisory.
keyword
github.dependabot.security_advisory.cvss.vector_string
The CVSS vector string associated with this advisory.
keyword
github.dependabot.security_advisory.cwes
CWEs associated with this Advisory.
nested
github.dependabot.security_advisory.cwes.cwe_id
The id of the CWE.
keyword
github.dependabot.security_advisory.cwes.description
The name of this CWE.
keyword
github.dependabot.security_advisory.cwes.name
A detailed description of this CWE.
keyword
github.dependabot.security_advisory.ghsa_id
The GitHub Security Advisory ID.
keyword
github.dependabot.security_advisory.identifiers
A list of identifiers for this advisory.
nested
github.dependabot.security_advisory.identifiers.type
The identifier type, e.g. GHSA, CVE.
keyword
github.dependabot.security_advisory.identifiers.value
The identifier.
keyword
github.dependabot.security_advisory.origin
The organization that originated the advisory.
keyword
github.dependabot.security_advisory.permalink
The permalink for the advisory.
keyword
github.dependabot.security_advisory.published_at
When the advisory was published.
date
github.dependabot.security_advisory.severity
The severity of the advisory.
keyword
github.dependabot.security_advisory.summary
A short plaintext summary of the advisory.
keyword
github.dependabot.security_advisory.updated_at
When the advisory was last updated.
date
github.dependabot.security_advisory.withdrawn_at
When the advisory was withdrawn, if it has been withdrawn.
date
github.dependabot.security_vulnerability.first_patched_version.identifier
The first version containing a fix for the vulnerability.
keyword
github.dependabot.security_vulnerability.package.ecosystem
The ecosystem the package belongs to, e.g. RUBYGEMS, NPM.
keyword
github.dependabot.security_vulnerability.package.name
The package name.
keyword
github.dependabot.security_vulnerability.updated_at
When the vulnerability was last updated.
date
github.dependabot.security_vulnerability.vulnerable_version_range
A string that describes the vulnerable package versions.
keyword
github.dependabot.state
Identifies the state of the alert.
keyword
github.dependabot.vulnerable_manifest_filename
The vulnerable manifest filename.
keyword
github.dependabot.vulnerable_manifest_path
The vulnerable manifest path.
keyword
github.dependabot.vulnerable_requirements
The vulnerable requirements.
keyword
github.repository.description
The repository description.
text
github.repository.fork
Whether the repository is a fork.
boolean
github.repository.full_name
The full, globally unique, name of the repository.
keyword
github.repository.html_url
The URL to view the repository on GitHub.com.
keyword
github.repository.id
A unique identifier of the repository.
integer
github.repository.is_in_organization
Indicates if a repository is either owned by an organization, or is a private fork of an organization repository.
boolean
github.repository.name
The name of the repository.
keyword
github.repository.owner.email
The public email of repository owner.
keyword
github.repository.owner.html_url
The HTTP URL for the repository owner.
keyword
github.repository.owner.id
ID of the repository owner.
integer
github.repository.owner.login
Login username of repository owner.
keyword
github.repository.owner.name
Name of repository owner.
keyword
github.repository.owner.site_admin
Whether the owner is a site administrator.
boolean
github.repository.owner.type
The type of the repository owner. Example - User.
keyword
github.repository.owner.url
The URL to get more information about the repository owner from the GitHub API.
keyword
github.repository.private
Whether the repository is private.
boolean
github.repository.url
The URL to get more information about the repository from the GitHub API.
keyword
host.containerized
If the host is a container.
boolean
host.os.build
OS build information.
keyword
host.os.codename
OS codename, if any.
keyword
input.type
Input Type.
keyword
labels.is_transform_source
Distinguishes between documents that are a source for a transform and documents that are an output of a transform, to facilitate easier filtering.
constant_keyword
log.offset
Log Offset.
long

An example event for dependabot looks as following:

{
    "@timestamp": "2022-07-11T11:39:07.000Z",
    "agent": {
        "ephemeral_id": "e7f76da2-a5c1-461e-afff-c8d8aaab6f63",
        "id": "63db2a58-1665-44a9-b23a-4dd2b0be9bd6",
        "name": "elastic-agent-88319",
        "type": "filebeat",
        "version": "8.13.0"
    },
    "data_stream": {
        "dataset": "github.dependabot",
        "namespace": "20232",
        "type": "logs"
    },
    "ecs": {
        "version": "8.11.0"
    },
    "elastic_agent": {
        "id": "63db2a58-1665-44a9-b23a-4dd2b0be9bd6",
        "snapshot": false,
        "version": "8.13.0"
    },
    "event": {
        "agent_id_status": "verified",
        "created": "2022-07-11T11:39:07.000Z",
        "dataset": "github.dependabot",
        "ingested": "2024-10-30T03:18:26Z",
        "original": "{\"createdAt\":\"2022-07-11T11:39:07Z\",\"dependabotUpdate\":{\"error\":{\"body\":\"The currently installed version can't be determined.\\n\\nTo resolve the issue add a supported lockfile (package-lock.json or yarn.lock).\",\"errorType\":\"dependency_file_not_supported\",\"title\":\"Dependabot can't update vulnerable dependencies without a lockfile\"},\"pullRequest\":null},\"dependencyScope\":\"RUNTIME\",\"dismissReason\":null,\"dismissedAt\":null,\"dismisser\":null,\"fixedAt\":null,\"number\":1,\"repository\":{\"description\":\"OWASP Juice Shop: Probably the most modern and sophisticated insecure web application\",\"isInOrganization\":false,\"isPrivate\":false,\"name\":\"sample_repo\",\"owner\":{\"login\":\"sample_owner\",\"url\":\"https://github.com/sample_owner\"},\"url\":\"https://github.com/sample_owner/sample_repo\"},\"securityAdvisory\":{\"classification\":\"GENERAL\",\"cvss\":{\"score\":0,\"vectorString\":null},\"cwes\":{\"nodes\":[{\"cweId\":\"CWE-20\",\"description\":\"The product receives input or data, but it does not validate or incorrectly validates that the input has the properties that are required to process the data safely and correctly.\",\"name\":\"Improper Input Validation\"}]},\"description\":\"Versions 4.2.1 and earlier of `jsonwebtoken` are affected by a verification bypass vulnerability. This is a result of weak validation of the JWT algorithm type, occuring when an attacker is allowed to arbitrarily specify the JWT algorithm.\\n\\n\\n\\n\\n## Recommendation\\n\\nUpdate to version 4.2.2 or later.\",\"ghsaId\":\"GHSA-c7hr-j4mj-j2w6\",\"identifiers\":[{\"type\":\"GHSA\",\"value\":\"GHSA-c7hr-j4mj-j2w6\"},{\"type\":\"CVE\",\"value\":\"CVE-2015-9235\"}],\"origin\":\"UNSPECIFIED\",\"permalink\":\"https://github.com/advisories/GHSA-c7hr-j4mj-j2w6\",\"publishedAt\":\"2018-10-09T00:38:30Z\",\"references\":[{\"url\":\"https://nvd.nist.gov/vuln/detail/CVE-2015-9235\"},{\"url\":\"https://github.com/auth0/node-jsonwebtoken/commit/1bb584bc382295eeb7ee8c4452a673a77a68b687\"},{\"url\":\"https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries/\"},{\"url\":\"https://github.com/advisories/GHSA-c7hr-j4mj-j2w6\"},{\"url\":\"https://www.npmjs.com/advisories/17\"},{\"url\":\"https://www.timmclean.net/2015/02/25/jwt-alg-none.html\"},{\"url\":\"https://nodesecurity.io/advisories/17\"}],\"severity\":\"CRITICAL\",\"summary\":\"Verification Bypass in jsonwebtoken\",\"updatedAt\":\"2021-01-08T19:00:39Z\",\"withdrawnAt\":null},\"securityVulnerability\":{\"firstPatchedVersion\":{\"identifier\":\"4.2.2\"},\"package\":{\"ecosystem\":\"NPM\",\"name\":\"jsonwebtoken\"},\"severity\":\"CRITICAL\",\"updatedAt\":\"2018-11-30T19:54:28Z\",\"vulnerableVersionRange\":\"\\u003c 4.2.2\"},\"state\":\"OPEN\",\"vulnerableManifestFilename\":\"package.json\",\"vulnerableManifestPath\":\"package.json\",\"vulnerableRequirements\":\"= 0.4.0\"}",
        "start": "2022-07-11T11:39:07Z",
        "type": [
            "creation"
        ]
    },
    "github": {
        "dependabot": {
            "created_at": "2022-07-11T11:39:07Z",
            "dependabot_update": {
                "error": {
                    "body": "The currently installed version can't be determined.\n\nTo resolve the issue add a supported lockfile (package-lock.json or yarn.lock).",
                    "error_type": "dependency_file_not_supported",
                    "title": "Dependabot can't update vulnerable dependencies without a lockfile"
                }
            },
            "dependency_scope": "RUNTIME",
            "number": 1,
            "security_advisory": {
                "classification": "GENERAL",
                "cwes": [
                    {
                        "cwe_id": "CWE-20",
                        "description": "The product receives input or data, but it does not validate or incorrectly validates that the input has the properties that are required to process the data safely and correctly.",
                        "name": "Improper Input Validation"
                    }
                ],
                "ghsa_id": "GHSA-c7hr-j4mj-j2w6",
                "identifiers": [
                    {
                        "type": "GHSA",
                        "value": "GHSA-c7hr-j4mj-j2w6"
                    },
                    {
                        "type": "CVE",
                        "value": "CVE-2015-9235"
                    }
                ],
                "origin": "UNSPECIFIED",
                "permalink": "https://github.com/advisories/GHSA-c7hr-j4mj-j2w6",
                "published_at": "2018-10-09T00:38:30Z",
                "severity": "CRITICAL",
                "summary": "Verification Bypass in jsonwebtoken",
                "updated_at": "2021-01-08T19:00:39Z"
            },
            "security_vulnerability": {
                "first_patched_version": {
                    "identifier": "4.2.2"
                },
                "package": {
                    "ecosystem": "NPM",
                    "name": "jsonwebtoken"
                },
                "updated_at": "2018-11-30T19:54:28Z",
                "vulnerable_version_range": "< 4.2.2"
            },
            "state": "open",
            "vulnerable_manifest_filename": "package.json",
            "vulnerable_manifest_path": "package.json",
            "vulnerable_requirements": "= 0.4.0"
        },
        "repository": {
            "description": "OWASP Juice Shop: Probably the most modern and sophisticated insecure web application",
            "is_in_organization": false,
            "name": "sample_repo",
            "owner": {
                "login": "sample_owner",
                "url": "https://github.com/sample_owner"
            },
            "private": false,
            "url": "https://github.com/sample_owner/sample_repo"
        }
    },
    "input": {
        "type": "httpjson"
    },
    "tags": [
        "forwarded",
        "github-dependabot",
        "preserve_original_event"
    ],
    "vulnerability": {
        "classification": "CVSS",
        "description": "Versions 4.2.1 and earlier of `jsonwebtoken` are affected by a verification bypass vulnerability. This is a result of weak validation of the JWT algorithm type, occuring when an attacker is allowed to arbitrarily specify the JWT algorithm.\n\n\n\n\n## Recommendation\n\nUpdate to version 4.2.2 or later.",
        "enumeration": "CVE",
        "id": "CVE-2015-9235",
        "reference": [
            "https://nvd.nist.gov/vuln/detail/CVE-2015-9235",
            "https://github.com/auth0/node-jsonwebtoken/commit/1bb584bc382295eeb7ee8c4452a673a77a68b687",
            "https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries/",
            "https://github.com/advisories/GHSA-c7hr-j4mj-j2w6",
            "https://www.npmjs.com/advisories/17",
            "https://www.timmclean.net/2015/02/25/jwt-alg-none.html",
            "https://nodesecurity.io/advisories/17"
        ],
        "scanner": {
            "vendor": "Github"
        },
        "score": {
            "base": 0
        },
        "severity": "critical"
    }
}

Issues

The GitHub Issues datastream lets you retrieve github issues, including pull requests, issue assignees, comments, labels, and milestones. See About Issues for more details. You can retrieve issues for specific repository or for entire organization. Since GitHub API considers pull requests as issues, users can use github.issues.is_pr field to filter for only pull requests.

All issues including closed are retrieved by default. If users want to retrieve only open requests, you need to change State parameter to open.

To use this integration, users must use GitHub Apps or Personal Access Token with read permission to repositories or organization. Please refer to GitHub Apps Permissions Required and Personal Access Token Permissions Required for more details.

Exported fields

FieldDescriptionTypeUnitMetric Type
@timestamp
Date/time when the event originated. This is the date/time extracted from the event, typically representing when the event was generated by the source. If the event source has no original timestamp, this value is typically populated by the first time the event was received by the pipeline. Required field for all events.
date
data_stream.dataset
The field can contain anything that makes sense to signify the source of the data. Examples include nginx.access, prometheus, endpoint etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. event.dataset should have the same value as data_stream.dataset. Beyond the Elasticsearch data stream naming criteria noted above, the dataset value has additional restrictions: * Must not contain - * No longer than 100 characters
constant_keyword
data_stream.namespace
A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with default. If no value is used, it falls back to default. Beyond the Elasticsearch index naming criteria noted above, namespace value has the additional restrictions: * Must not contain - * No longer than 100 characters
constant_keyword
data_stream.type
An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future.
constant_keyword
event.dataset
Name of the dataset. If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name.
constant_keyword
event.kind
constant_keyword
event.module
Name of the module this data is coming from. If your monitoring agent supports the concept of modules or plugins to process events of a given source (e.g. Apache logs), event.module should contain the name of this module.
constant_keyword
github.issues.active_lock_reason
keyword
github.issues.assignee.email
keyword
github.issues.assignee.html_url
keyword
github.issues.assignee.id
integer
github.issues.assignee.login
keyword
github.issues.assignee.name
keyword
github.issues.assignee.site_admin
boolean
github.issues.assignee.type
keyword
github.issues.assignee.url
keyword
github.issues.assignees
Information of users who were assigned the issue.
flattened
github.issues.author_association
keyword
github.issues.body
text
github.issues.closed_at
The time that the issue was closed in ISO 8601 format - YYYY-MM-DDTHH:MM:SSZ.
date
github.issues.closed_by.email
keyword
github.issues.closed_by.html_url
keyword
github.issues.closed_by.id
integer
github.issues.closed_by.login
keyword
github.issues.closed_by.name
keyword
github.issues.closed_by.site_admin
boolean
github.issues.closed_by.type
keyword
github.issues.closed_by.url
keyword
github.issues.comments
integer
github.issues.comments_url
keyword
github.issues.created_at
The time that the issue was created in ISO 8601 format - YYYY-MM-DDTHH:MM:SSZ.
date
github.issues.draft
boolean
github.issues.events_url
keyword
github.issues.html_url
keyword
github.issues.id
The id of GitHub issue.
integer
github.issues.is_pr
boolean
github.issues.labels.description
keyword
github.issues.labels.integration
keyword
github.issues.labels.name
keyword
github.issues.labels.team
keyword
github.issues.labels_url
keyword
github.issues.locked
boolean
github.issues.node_id
The node_id of GitHub issue.
keyword
github.issues.number
integer
github.issues.pull_request.diff_url
keyword
github.issues.pull_request.html_url
keyword
github.issues.pull_request.patch_url
keyword
github.issues.pull_request.url
keyword
github.issues.repository_url
The repository containing the GitHub issue.
keyword
github.issues.state
keyword
github.issues.state_reason
keyword
github.issues.time_to_close.sec
The time taken to close an issue in seconds.
long
s
gauge
github.issues.timeline_url
keyword
github.issues.title
keyword
github.issues.updated_at
The time that the issue was last updated in ISO 8601 format - YYYY-MM-DDTHH:MM:SSZ.
date
github.issues.url
The url of GitHub issue.
keyword
github.issues.user.email
keyword
github.issues.user.html_url
keyword
github.issues.user.id
integer
github.issues.user.login
keyword
github.issues.user.name
keyword
github.issues.user.site_admin
boolean
github.issues.user.type
keyword
github.issues.user.url
keyword
github.repository.description
The repository description.
text
github.repository.fork
Whether the repository is a fork.
boolean
github.repository.full_name
The full, globally unique, name of the repository.
keyword
github.repository.html_url
The URL to view the repository on GitHub.com.
keyword
github.repository.id
A unique identifier of the repository.
integer
github.repository.is_in_organization
Indicates if a repository is either owned by an organization, or is a private fork of an organization repository.
boolean
github.repository.name
The name of the repository.
keyword
github.repository.owner.email
The public email of repository owner.
keyword
github.repository.owner.html_url
The HTTP URL for the repository owner.
keyword
github.repository.owner.id
ID of the repository owner.
integer
github.repository.owner.login
Login username of repository owner.
keyword
github.repository.owner.name
Name of repository owner.
keyword
github.repository.owner.site_admin
Whether the owner is a site administrator.
boolean
github.repository.owner.type
The type of the repository owner. Example - User.
keyword
github.repository.owner.url
The URL to get more information about the repository owner from the GitHub API.
keyword
github.repository.private
Whether the repository is private.
boolean
github.repository.url
The URL to get more information about the repository from the GitHub API.
keyword
host.containerized
If the host is a container.
boolean
host.os.build
OS build information.
keyword
host.os.codename
OS codename, if any.
keyword
input.type
Input Type.
keyword
labels.is_transform_source
Distinguishes between documents that are a source for a transform and documents that are an output of a transform, to facilitate easier filtering.
constant_keyword
log.offset
Log Offset.
long

An example event for issues looks as following:

{
    "@timestamp": "2011-04-22T13:33:48.000Z",
    "agent": {
        "ephemeral_id": "24244f5f-9ce8-4ce3-983d-e172bb7f9fad",
        "id": "1cd88ff5-88f4-4117-b49f-204bb2d5e1c3",
        "name": "elastic-agent-46814",
        "type": "filebeat",
        "version": "8.13.0"
    },
    "data_stream": {
        "dataset": "github.issues",
        "namespace": "81948",
        "type": "logs"
    },
    "ecs": {
        "version": "8.11.0"
    },
    "elastic_agent": {
        "id": "1cd88ff5-88f4-4117-b49f-204bb2d5e1c3",
        "snapshot": false,
        "version": "8.13.0"
    },
    "event": {
        "agent_id_status": "verified",
        "created": "2011-04-22T13:33:48.000Z",
        "dataset": "github.issues",
        "ingested": "2024-10-30T03:19:25Z",
        "original": "{\"active_lock_reason\":\"too heated\",\"assignee\":{\"avatar_url\":\"https://github.com/images/error/octocat_happy.gif\",\"events_url\":\"https://api.github.com/users/octocat/events{/privacy}\",\"followers_url\":\"https://api.github.com/users/octocat/followers\",\"following_url\":\"https://api.github.com/users/octocat/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/octocat/gists{/gist_id}\",\"gravatar_id\":\"\",\"html_url\":\"https://github.com/octocat\",\"id\":1,\"login\":\"octocat\",\"node_id\":\"MDQ6VXNlcjE=\",\"organizations_url\":\"https://api.github.com/users/octocat/orgs\",\"received_events_url\":\"https://api.github.com/users/octocat/received_events\",\"repos_url\":\"https://api.github.com/users/octocat/repos\",\"site_admin\":false,\"starred_url\":\"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/octocat/subscriptions\",\"type\":\"User\",\"url\":\"https://api.github.com/users/octocat\"},\"assignees\":[{\"avatar_url\":\"https://github.com/images/error/octocat_happy.gif\",\"events_url\":\"https://api.github.com/users/octocat/events{/privacy}\",\"followers_url\":\"https://api.github.com/users/octocat/followers\",\"following_url\":\"https://api.github.com/users/octocat/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/octocat/gists{/gist_id}\",\"gravatar_id\":\"\",\"html_url\":\"https://github.com/octocat\",\"id\":1,\"login\":\"octocat\",\"node_id\":\"MDQ6VXNlcjE=\",\"organizations_url\":\"https://api.github.com/users/octocat/orgs\",\"received_events_url\":\"https://api.github.com/users/octocat/received_events\",\"repos_url\":\"https://api.github.com/users/octocat/repos\",\"site_admin\":false,\"starred_url\":\"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/octocat/subscriptions\",\"type\":\"User\",\"url\":\"https://api.github.com/users/octocat\"}],\"author_association\":\"COLLABORATOR\",\"body\":\"I'm having a problem with this.\",\"closed_at\":null,\"closed_by\":{\"avatar_url\":\"https://github.com/images/error/octocat_happy.gif\",\"events_url\":\"https://api.github.com/users/octocat/events{/privacy}\",\"followers_url\":\"https://api.github.com/users/octocat/followers\",\"following_url\":\"https://api.github.com/users/octocat/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/octocat/gists{/gist_id}\",\"gravatar_id\":\"\",\"html_url\":\"https://github.com/octocat\",\"id\":1,\"login\":\"octocat\",\"node_id\":\"MDQ6VXNlcjE=\",\"organizations_url\":\"https://api.github.com/users/octocat/orgs\",\"received_events_url\":\"https://api.github.com/users/octocat/received_events\",\"repos_url\":\"https://api.github.com/users/octocat/repos\",\"site_admin\":false,\"starred_url\":\"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/octocat/subscriptions\",\"type\":\"User\",\"url\":\"https://api.github.com/users/octocat\"},\"comments\":0,\"comments_url\":\"https://api.github.com/repos/octocat/Hello-World/issues/1347/comments\",\"created_at\":\"2011-04-22T13:33:48Z\",\"events_url\":\"https://api.github.com/repos/octocat/Hello-World/issues/1347/events\",\"html_url\":\"https://github.com/octocat/Hello-World/issues/1347\",\"id\":1,\"labels\":[{\"color\":\"f29513\",\"default\":true,\"description\":\"Something isn't working\",\"id\":208045946,\"name\":\"bug\",\"node_id\":\"MDU6TGFiZWwyMDgwNDU5NDY=\",\"url\":\"https://api.github.com/repos/octocat/Hello-World/labels/bug\"}],\"labels_url\":\"https://api.github.com/repos/octocat/Hello-World/issues/1347/labels{/name}\",\"locked\":true,\"milestone\":{\"closed_at\":\"2013-02-12T13:22:01Z\",\"closed_issues\":8,\"created_at\":\"2011-04-10T20:09:31Z\",\"creator\":{\"avatar_url\":\"https://github.com/images/error/octocat_happy.gif\",\"events_url\":\"https://api.github.com/users/octocat/events{/privacy}\",\"followers_url\":\"https://api.github.com/users/octocat/followers\",\"following_url\":\"https://api.github.com/users/octocat/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/octocat/gists{/gist_id}\",\"gravatar_id\":\"\",\"html_url\":\"https://github.com/octocat\",\"id\":1,\"login\":\"octocat\",\"node_id\":\"MDQ6VXNlcjE=\",\"organizations_url\":\"https://api.github.com/users/octocat/orgs\",\"received_events_url\":\"https://api.github.com/users/octocat/received_events\",\"repos_url\":\"https://api.github.com/users/octocat/repos\",\"site_admin\":false,\"starred_url\":\"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/octocat/subscriptions\",\"type\":\"User\",\"url\":\"https://api.github.com/users/octocat\"},\"description\":\"Tracking milestone for version 1.0\",\"due_on\":\"2012-10-09T23:39:01Z\",\"html_url\":\"https://github.com/octocat/Hello-World/milestones/v1.0\",\"id\":1002604,\"labels_url\":\"https://api.github.com/repos/octocat/Hello-World/milestones/1/labels\",\"node_id\":\"MDk6TWlsZXN0b25lMTAwMjYwNA==\",\"number\":1,\"open_issues\":4,\"state\":\"open\",\"title\":\"v1.0\",\"updated_at\":\"2014-03-03T18:58:10Z\",\"url\":\"https://api.github.com/repos/octocat/Hello-World/milestones/1\"},\"node_id\":\"MDU6SXNzdWUx\",\"number\":1347,\"pull_request\":{\"diff_url\":\"https://github.com/octocat/Hello-World/pull/1347.diff\",\"html_url\":\"https://github.com/octocat/Hello-World/pull/1347\",\"patch_url\":\"https://github.com/octocat/Hello-World/pull/1347.patch\",\"url\":\"https://api.github.com/repos/octocat/Hello-World/pulls/1347\"},\"repository_url\":\"https://api.github.com/repos/octocat/Hello-World\",\"state\":\"open\",\"state_reason\":\"completed\",\"title\":\"Found a bug\",\"updated_at\":\"2011-04-22T13:33:48Z\",\"url\":\"https://api.github.com/repos/octocat/Hello-World/issues/1347\",\"user\":{\"avatar_url\":\"https://github.com/images/error/octocat_happy.gif\",\"events_url\":\"https://api.github.com/users/octocat/events{/privacy}\",\"followers_url\":\"https://api.github.com/users/octocat/followers\",\"following_url\":\"https://api.github.com/users/octocat/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/octocat/gists{/gist_id}\",\"gravatar_id\":\"\",\"html_url\":\"https://github.com/octocat\",\"id\":1,\"login\":\"octocat\",\"node_id\":\"MDQ6VXNlcjE=\",\"organizations_url\":\"https://api.github.com/users/octocat/orgs\",\"received_events_url\":\"https://api.github.com/users/octocat/received_events\",\"repos_url\":\"https://api.github.com/users/octocat/repos\",\"site_admin\":false,\"starred_url\":\"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/octocat/subscriptions\",\"type\":\"User\",\"url\":\"https://api.github.com/users/octocat\"}}",
        "type": [
            "creation"
        ]
    },
    "github": {
        "issues": {
            "active_lock_reason": "too heated",
            "assignee": {
                "html_url": "https://github.com/octocat",
                "id": 1,
                "login": "octocat",
                "site_admin": false,
                "type": "User",
                "url": "https://api.github.com/users/octocat"
            },
            "assignees": [
                {
                    "html_url": "https://github.com/octocat",
                    "id": 1,
                    "login": "octocat",
                    "site_admin": false,
                    "type": "User",
                    "url": "https://api.github.com/users/octocat"
                }
            ],
            "author_association": "COLLABORATOR",
            "body": "I'm having a problem with this.",
            "closed_by": {
                "html_url": "https://github.com/octocat",
                "id": 1,
                "login": "octocat",
                "site_admin": false,
                "type": "User",
                "url": "https://api.github.com/users/octocat"
            },
            "comments": 0,
            "comments_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347/comments",
            "created_at": "2011-04-22T13:33:48.000Z",
            "events_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347/events",
            "html_url": "https://github.com/octocat/Hello-World/issues/1347",
            "id": 1,
            "is_pr": true,
            "labels": [
                {
                    "description": "Something isn't working",
                    "name": "bug"
                }
            ],
            "labels_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347/labels{/name}",
            "locked": true,
            "node_id": "MDU6SXNzdWUx",
            "number": 1347,
            "pull_request": {
                "diff_url": "https://github.com/octocat/Hello-World/pull/1347.diff",
                "html_url": "https://github.com/octocat/Hello-World/pull/1347",
                "patch_url": "https://github.com/octocat/Hello-World/pull/1347.patch",
                "url": "https://api.github.com/repos/octocat/Hello-World/pulls/1347"
            },
            "repository_url": "https://api.github.com/repos/octocat/Hello-World",
            "state": "open",
            "state_reason": "completed",
            "title": "Found a bug",
            "updated_at": "2011-04-22T13:33:48.000Z",
            "url": "https://api.github.com/repos/octocat/Hello-World/issues/1347",
            "user": {
                "html_url": "https://github.com/octocat",
                "id": 1,
                "login": "octocat",
                "site_admin": false,
                "type": "User",
                "url": "https://api.github.com/users/octocat"
            }
        },
        "repository": {
            "html_url": "https://github.com/octocat/Hello-World",
            "name": "Hello-World",
            "owner": {
                "login": "octocat"
            },
            "url": "https://api.github.com/repos/octocat/Hello-World"
        }
    },
    "input": {
        "type": "httpjson"
    },
    "related": {
        "user": [
            "octocat"
        ]
    },
    "tags": [
        "forwarded",
        "github-issues",
        "preserve_original_event"
    ],
    "user": {
        "id": "1",
        "name": "octocat"
    }
}

Changelog

VersionDetailsKibana version(s)

2.0.0

Enhancement View pull request
Update fields inside fingerprint processor in code_scanning, secret_scanning, and dependabot to ingest all event updates.

Enhancement View pull request
Reformat fields to add package-fields.yml across all datastreams.

Breaking change View pull request
Remove github.state, github.severity due to inconsistency across datastreams. Update dashboards to use corresponding datastream-level fields instead.

Breaking change View pull request
Remove event.action field from code_scanning, secret_scanning, dependabot, and issues as it is redundant. Update dashboards to use data_stream.dataset instead.

Enhancement View pull request
Add latest transforms for github issues, dependabot, code_scanning, and secret_scanning alerts.

Enhancement View pull request
Add navigation to all dashboards.

Enhancement View pull request
Upgrade legacy visualization to latest for code_scanning and secret_scanning.

Enhancement View pull request
Change dashboards to point to destination index for issues, dependabot, code_scanning, and secret_scanning alerts.

8.13.0 or higher

1.29.3

Bug fix View pull request
Use triple-brace Mustache templating when referencing variables in ingest pipelines.

8.13.0 or higher

1.29.2

Bug fix View pull request
Use triple-brace Mustache templating when referencing variables in ingest pipelines.

8.13.0 or higher

1.29.1

Bug fix View pull request
Fix definition of nested subfields

8.13.0 or higher

1.29.0

Enhancement View pull request
Update the kibana constraint to ^8.13.0. Modified the field definitions to remove ECS fields made redundant by the ecs@mappings component template.

8.13.0 or higher

1.28.0

Enhancement View pull request
Set sensitive values as secret and fix incorrect mappings.

8.12.0 or higher

1.27.3

Bug fix View pull request
Clean up null handling, formatting

8.7.1 or higher

1.27.2

Enhancement View pull request
Changed owners

8.7.1 or higher

1.27.1

Bug fix View pull request
Event duration was in seconds, not nanoseconds.

8.7.1 or higher

1.27.0

Enhancement View pull request
Limit request tracer log count to five.

8.7.1 or higher

1.26.0

Enhancement View pull request
ECS version updated to 8.11.0.

8.7.1 or higher

1.25.0

Enhancement View pull request
Improve 'event.original' check to avoid errors if set.

8.7.1 or higher

1.24.0

Enhancement View pull request
Add support for additional audit log fields.

8.7.1 or higher

1.23.1

Bug fix View pull request
Fix docs for Github Audit log permissions.

8.7.1 or higher

1.23.0

Enhancement View pull request
ECS version updated to 8.10.0.

8.7.1 or higher

1.22.0

Enhancement View pull request
The format_version in the package manifest changed from 2.11.0 to 3.0.0. Removed dotted YAML keys from package manifest. Added 'owner.type: elastic' to package manifest.

8.7.1 or higher

1.21.0

Enhancement View pull request
Add tags.yml file so that integration's dashboards and saved searches are tagged with "Security Solution" and displayed in the Security Solution UI.

8.7.1 or higher

1.20.1

Bug fix View pull request
Make datastreams agree on type of github.repository.description.

8.7.1 or higher

1.20.0

Enhancement View pull request
Add support for github.permission and github.repository_public fields.

8.7.1 or higher

1.19.0

Enhancement View pull request
Update package to ECS 8.9.0.

8.7.1 or higher

1.18.0

Enhancement View pull request
Document duration units.

8.7.1 or higher

1.17.0

Enhancement View pull request
Update package-spec to 2.9.0.

8.7.1 or higher

1.16.0

Enhancement View pull request
Convert dashboard visualizations to lens.

8.7.1 or higher

1.15.0

Enhancement View pull request
Document valid duration units.

8.7.1 or higher

1.14.0

Enhancement View pull request
Document valid duration units.

1.13.0

Enhancement View pull request
Ensure event.kind is correctly set for pipeline errors.

8.7.1 or higher

1.12.2

Bug fix View pull request
Fix documentation for audit log prerequisites

8.7.1 or higher

1.12.1

Bug fix View pull request
Remove additional repository fields github.issues.

8.7.1 or higher

1.12.0

Enhancement View pull request
Update package to ECS 8.8.0.

8.7.1 or higher

1.11.0

Enhancement View pull request
Add a new flag to enable request tracing

8.7.1 or higher

1.10.2

Bug fix View pull request
Removed fixReason from Dependabot request

8.4.1 or higher

1.10.1

Bug fix View pull request
Add issues datastream into README.

8.4.1 or higher

1.10.0

Enhancement View pull request
Update package to ECS 8.7.0.

8.4.1 or higher

1.9.0

Enhancement View pull request
Release Github datastreams as GA.

8.4.1 or higher

1.8.2

Enhancement View pull request
Added categories and/or subcategories.

8.4.1 or higher

1.8.1

Bug fix View pull request
Fix pagination in Github audit

8.4.1 or higher

1.8.0

Enhancement View pull request
Add Github Issues datastream

8.4.1 or higher

1.7.0

Enhancement View pull request
Update package to ECS 8.6.0.

8.4.1 or higher

1.6.0

Enhancement View pull request
Update package to ECS 8.5.0.

8.4.1 or higher

1.5.0

Enhancement View pull request
Add org endpoints for code_scanning and secret_scanning along with dashboards

8.4.1 or higher

1.4.0

Enhancement View pull request
Add Dependabot alerts

8.3.0 or higher

1.3.0

Enhancement View pull request
Update package to ECS 8.4.0

7.16.0 or higher
8.0.0 or higher

1.2.3

Bug fix View pull request
Fix proxy URL documentation rendering.

7.16.0 or higher
8.0.0 or higher

1.2.2

Bug fix View pull request
Update Github Secret Scanning fingerprint with resolved_at

7.16.0 or higher
8.0.0 or higher

1.2.1

Enhancement View pull request
Update package name and description to align with standard wording

7.16.0 or higher
8.0.0 or higher

1.2.0

Enhancement View pull request
Add GitHub Advanced Security integration

7.16.0 or higher
8.0.0 or higher

1.1.0

Enhancement View pull request
Update package to ECS 8.3.0.

7.16.0 or higher
8.0.0 or higher

1.0.3

Bug fix View pull request
Add support for @timestamp and missing created_at fields

1.0.2

Bug fix View pull request
Add correct field mapping for event.created

7.16.0 or higher
8.0.0 or higher

1.0.1

Enhancement View pull request
Update readme

7.16.0 or higher
8.0.0 or higher

1.0.0

Enhancement View pull request
Make GA

7.16.0 or higher
8.0.0 or higher

0.4.0

Enhancement View pull request
Update to ECS 8.2

0.3.4

Bug fix View pull request
Fix typo in config template for ignoring host enrichment

0.3.3

Enhancement View pull request
Add documentation for multi-fields

0.3.2

Bug fix View pull request
Fix date format used in queries.

0.3.1

Bug fix View pull request
Resolve invalid query operator

0.3.0

Enhancement View pull request
Update to ECS 8.0

0.2.2

Bug fix View pull request
Removes saved search used for testing

0.2.1

Bug fix View pull request
Regenerate test files using the new GeoIP database

0.2.0

Enhancement View pull request
Add 8.0.0 version constraint

0.1.1

Bug fix View pull request
Update Title and Description.

0.1.0

Enhancement View pull request
initial release