Forgejo notification API
The notification API from Forgejo — 4 operation(s) for notification.
The notification API from Forgejo — 4 operation(s) for notification.
swagger: '2.0'
info:
description: This documentation describes the Forgejo API.
title: Forgejo activitypub notification API
license:
name: This file is distributed under the MIT license for the purpose of interoperability
url: http://opensource.org/licenses/MIT
version: 16.0.0-dev-465-4b83448b7d+gitea-1.22.0
basePath: /api/v1
schemes:
- https
- http
consumes:
- application/json
- text/plain
produces:
- application/json
- text/html
security:
- BasicAuth: []
- AuthorizationHeaderToken: []
- SudoParam: []
- SudoHeader: []
- TOTPHeader: []
tags:
- name: notification
paths:
/notifications:
get:
consumes:
- application/json
produces:
- application/json
tags:
- notification
summary: List users's notification threads
operationId: notifyGetList
parameters:
- type: boolean
description: If true, show notifications marked as read. Default value is false
name: all
in: query
- type: array
items:
type: string
collectionFormat: multi
description: 'Show notifications with the provided status types. Options are: unread, read and/or pinned. Defaults to unread & pinned.'
name: status-types
in: query
- type: array
items:
enum:
- issue
- pull
- repository
type: string
collectionFormat: multi
description: filter notifications by subject type
name: subject-type
in: query
- type: string
format: date-time
description: Only show notifications updated after the given time. This is a timestamp in RFC 3339 format
name: since
in: query
- type: string
format: date-time
description: Only show notifications updated before the given time. This is a timestamp in RFC 3339 format
name: before
in: query
- type: integer
description: page number of results to return (1-based)
name: page
in: query
- type: integer
description: page size of results
name: limit
in: query
responses:
'200':
$ref: '#/responses/NotificationThreadList'
put:
consumes:
- application/json
produces:
- application/json
tags:
- notification
summary: Mark notification threads as read, pinned or unread
operationId: notifyReadList
parameters:
- type: string
format: date-time
description: Describes the last point that notifications were checked. Anything updated since this time will not be updated.
name: last_read_at
in: query
- type: boolean
description: If true, mark all notifications on this repo. Default value is false
name: all
in: query
- type: array
items:
type: string
collectionFormat: multi
description: 'Mark notifications with the provided status types. Options are: unread, read and/or pinned. Defaults to unread.'
name: status-types
in: query
- type: string
description: Status to mark notifications as, Defaults to read.
name: to-status
in: query
responses:
'205':
$ref: '#/responses/NotificationThreadListWithoutPagination'
/notifications/new:
get:
tags:
- notification
summary: Check if unread notifications exist
operationId: notifyNewAvailable
responses:
'200':
$ref: '#/responses/NotificationCount'
/notifications/threads/{id}:
get:
consumes:
- application/json
produces:
- application/json
tags:
- notification
summary: Get notification thread by ID
operationId: notifyGetThread
parameters:
- type: integer
format: int64
description: id of notification thread
name: id
in: path
required: true
responses:
'200':
$ref: '#/responses/NotificationThread'
'403':
$ref: '#/responses/forbidden'
'404':
$ref: '#/responses/notFound'
patch:
consumes:
- application/json
produces:
- application/json
tags:
- notification
summary: Mark notification thread as read by ID
operationId: notifyReadThread
parameters:
- type: integer
format: int64
description: id of notification thread
name: id
in: path
required: true
- type: string
default: read
description: Status to mark notifications as
name: to-status
in: query
responses:
'205':
$ref: '#/responses/NotificationThread'
'403':
$ref: '#/responses/forbidden'
'404':
$ref: '#/responses/notFound'
/repos/{owner}/{repo}/notifications:
get:
consumes:
- application/json
produces:
- application/json
tags:
- notification
summary: List users's notification threads on a specific repo
operationId: notifyGetRepoList
parameters:
- type: string
description: owner of the repo
name: owner
in: path
required: true
- type: string
description: name of the repo
name: repo
in: path
required: true
- type: boolean
description: If true, show notifications marked as read. Default value is false
name: all
in: query
- type: array
items:
type: string
collectionFormat: multi
description: 'Show notifications with the provided status types. Options are: unread, read and/or pinned. Defaults to unread & pinned'
name: status-types
in: query
- type: array
items:
enum:
- issue
- pull
- repository
type: string
collectionFormat: multi
description: filter notifications by subject type
name: subject-type
in: query
- type: string
format: date-time
description: Only show notifications updated after the given time. This is a timestamp in RFC 3339 format
name: since
in: query
- type: string
format: date-time
description: Only show notifications updated before the given time. This is a timestamp in RFC 3339 format
name: before
in: query
- type: integer
description: page number of results to return (1-based)
name: page
in: query
- type: integer
description: page size of results
name: limit
in: query
responses:
'200':
$ref: '#/responses/NotificationThreadList'
put:
consumes:
- application/json
produces:
- application/json
tags:
- notification
summary: Mark notification threads as read, pinned or unread on a specific repo
operationId: notifyReadRepoList
parameters:
- type: string
description: owner of the repo
name: owner
in: path
required: true
- type: string
description: name of the repo
name: repo
in: path
required: true
- type: boolean
description: If true, mark all notifications on this repo. Default value is false
name: all
in: query
- type: array
items:
type: string
collectionFormat: multi
description: 'Mark notifications with the provided status types. Options are: unread, read and/or pinned. Defaults to unread.'
name: status-types
in: query
- type: string
description: Status to mark notifications as. Defaults to read.
name: to-status
in: query
- type: string
format: date-time
description: Describes the last point that notifications were checked. Anything updated since this time will not be updated.
name: last_read_at
in: query
responses:
'205':
$ref: '#/responses/NotificationThreadListWithoutPagination'
definitions:
Team:
description: Team represents a team in an organization
type: object
properties:
can_create_org_repo:
type: boolean
x-go-name: CanCreateOrgRepo
description:
type: string
x-go-name: Description
id:
type: integer
format: int64
x-go-name: ID
includes_all_repositories:
type: boolean
x-go-name: IncludesAllRepositories
name:
type: string
x-go-name: Name
organization:
$ref: '#/definitions/Organization'
permission:
type: string
enum:
- none
- read
- write
- admin
- owner
x-go-name: Permission
units:
type: array
items:
type: string
x-go-name: Units
example:
- repo.code
- repo.issues
- repo.ext_issues
- repo.wiki
- repo.pulls
- repo.releases
- repo.projects
- repo.ext_wiki
units_map:
type: object
additionalProperties:
type: string
x-go-name: UnitsMap
example:
repo.actions: none
repo.code: read
repo.ext_issues: none
repo.ext_wiki: none
repo.issues: write
repo.packages: none
repo.projects: none
repo.pulls: owner
repo.releases: none
repo.wiki: admin
x-go-package: forgejo.org/modules/structs
Organization:
description: Organization represents an organization
type: object
properties:
avatar_url:
type: string
x-go-name: AvatarURL
created:
type: string
format: date-time
x-go-name: Created
description:
type: string
x-go-name: Description
email:
type: string
x-go-name: Email
full_name:
type: string
x-go-name: FullName
id:
type: integer
format: int64
x-go-name: ID
location:
type: string
x-go-name: Location
name:
type: string
x-go-name: Name
repo_admin_change_team_access:
type: boolean
x-go-name: RepoAdminChangeTeamAccess
username:
description: deprecated
type: string
x-go-name: UserName
visibility:
type: string
x-go-name: Visibility
website:
type: string
x-go-name: Website
x-go-package: forgejo.org/modules/structs
Permission:
description: Permission represents a set of permissions
type: object
properties:
admin:
type: boolean
x-go-name: Admin
pull:
type: boolean
x-go-name: Pull
push:
type: boolean
x-go-name: Push
x-go-package: forgejo.org/modules/structs
User:
description: User represents a user
type: object
properties:
active:
description: Is user active
type: boolean
x-go-name: IsActive
avatar_url:
description: URL to the user's avatar
type: string
x-go-name: AvatarURL
created:
type: string
format: date-time
x-go-name: Created
description:
description: the user's description
type: string
x-go-name: Description
email:
type: string
format: email
x-go-name: Email
followers_count:
description: user counts
type: integer
format: int64
x-go-name: Followers
following_count:
type: integer
format: int64
x-go-name: Following
full_name:
description: the user's full name
type: string
x-go-name: FullName
html_url:
description: URL to the user's profile page
type: string
x-go-name: HTMLURL
id:
description: the user's id
type: integer
format: int64
x-go-name: ID
is_admin:
description: Is the user an administrator
type: boolean
x-go-name: IsAdmin
language:
description: User locale
type: string
x-go-name: Language
last_login:
type: string
format: date-time
x-go-name: LastLogin
location:
description: the user's location
type: string
x-go-name: Location
login:
description: the user's username
type: string
x-go-name: UserName
login_name:
description: the user's authentication sign-in name.
type: string
default: empty
x-go-name: LoginName
prohibit_login:
description: Is user login prohibited
type: boolean
x-go-name: ProhibitLogin
pronouns:
description: the user's pronouns
type: string
x-go-name: Pronouns
restricted:
description: Is user restricted
type: boolean
x-go-name: Restricted
source_id:
description: The ID of the user's Authentication Source
type: integer
format: int64
x-go-name: SourceID
starred_repos_count:
type: integer
format: int64
x-go-name: StarredRepos
visibility:
description: 'User visibility level option: public, limited, private'
type: string
x-go-name: Visibility
website:
description: the user's website
type: string
x-go-name: Website
x-go-package: forgejo.org/modules/structs
APIForbiddenError:
type: object
properties:
message:
type: string
x-go-name: Message
url:
type: string
x-go-name: URL
x-go-package: forgejo.org/services/context
APINotFound:
type: object
properties:
errors:
type: array
items:
type: string
x-go-name: Errors
message:
type: string
x-go-name: Message
url:
type: string
x-go-name: URL
x-go-package: forgejo.org/services/context
NotificationSubject:
description: NotificationSubject contains the notification subject (Issue/Pull/Commit)
type: object
properties:
html_url:
type: string
x-go-name: HTMLURL
latest_comment_html_url:
type: string
x-go-name: LatestCommentHTMLURL
latest_comment_url:
type: string
x-go-name: LatestCommentURL
state:
$ref: '#/definitions/StateType'
title:
type: string
x-go-name: Title
type:
$ref: '#/definitions/NotifySubjectType'
url:
type: string
x-go-name: URL
x-go-package: forgejo.org/modules/structs
ExternalWiki:
description: ExternalWiki represents setting for external wiki
type: object
properties:
external_wiki_url:
description: URL of external wiki.
type: string
x-go-name: ExternalWikiURL
x-go-package: forgejo.org/modules/structs
NotifySubjectType:
description: NotifySubjectType represent type of notification subject
type: string
x-go-package: forgejo.org/modules/structs
InternalTracker:
description: InternalTracker represents settings for internal tracker
type: object
properties:
allow_only_contributors_to_track_time:
description: Let only contributors track time (Built-in issue tracker)
type: boolean
x-go-name: AllowOnlyContributorsToTrackTime
enable_issue_dependencies:
description: Enable dependencies for issues and pull requests (Built-in issue tracker)
type: boolean
x-go-name: EnableIssueDependencies
enable_time_tracker:
description: Enable time tracking (Built-in issue tracker)
type: boolean
x-go-name: EnableTimeTracker
x-go-package: forgejo.org/modules/structs
ExternalTracker:
description: ExternalTracker represents settings for external tracker
type: object
properties:
external_tracker_format:
description: External Issue Tracker URL Format. Use the placeholders {user}, {repo} and {index} for the username, repository name and issue index.
type: string
x-go-name: ExternalTrackerFormat
external_tracker_regexp_pattern:
description: External Issue Tracker issue regular expression
type: string
x-go-name: ExternalTrackerRegexpPattern
external_tracker_style:
description: External Issue Tracker Number Format, either `numeric`, `alphanumeric`, or `regexp`
type: string
x-go-name: ExternalTrackerStyle
external_tracker_url:
description: URL of external issue tracker.
type: string
x-go-name: ExternalTrackerURL
x-go-package: forgejo.org/modules/structs
RepoTransfer:
description: RepoTransfer represents a pending repo transfer
type: object
properties:
doer:
$ref: '#/definitions/User'
recipient:
$ref: '#/definitions/User'
teams:
type: array
items:
$ref: '#/definitions/Team'
x-go-name: Teams
x-go-package: forgejo.org/modules/structs
StateType:
description: StateType issue state type
type: string
x-go-package: forgejo.org/modules/structs
Repository:
description: Repository represents a repository
type: object
properties:
allow_fast_forward_only_merge:
type: boolean
x-go-name: AllowFastForwardOnly
allow_merge_commits:
type: boolean
x-go-name: AllowMerge
allow_rebase:
type: boolean
x-go-name: AllowRebase
allow_rebase_explicit:
type: boolean
x-go-name: AllowRebaseMerge
allow_rebase_update:
type: boolean
x-go-name: AllowRebaseUpdate
allow_squash_merge:
type: boolean
x-go-name: AllowSquash
archived:
type: boolean
x-go-name: Archived
archived_at:
type: string
format: date-time
x-go-name: ArchivedAt
avatar_url:
type: string
x-go-name: AvatarURL
clone_url:
type: string
x-go-name: CloneURL
created_at:
type: string
format: date-time
x-go-name: Created
default_allow_maintainer_edit:
type: boolean
x-go-name: DefaultAllowMaintainerEdit
default_branch:
type: string
x-go-name: DefaultBranch
default_delete_branch_after_merge:
type: boolean
x-go-name: DefaultDeleteBranchAfterMerge
default_merge_style:
type: string
x-go-name: DefaultMergeStyle
default_update_style:
type: string
x-go-name: DefaultUpdateStyle
description:
type: string
x-go-name: Description
empty:
type: boolean
x-go-name: Empty
external_tracker:
$ref: '#/definitions/ExternalTracker'
external_wiki:
$ref: '#/definitions/ExternalWiki'
fork:
type: boolean
x-go-name: Fork
forks_count:
type: integer
format: int64
x-go-name: Forks
full_name:
type: string
x-go-name: FullName
globally_editable_wiki:
type: boolean
x-go-name: GloballyEditableWiki
has_actions:
type: boolean
x-go-name: HasActions
has_issues:
type: boolean
x-go-name: HasIssues
has_packages:
type: boolean
x-go-name: HasPackages
has_projects:
type: boolean
x-go-name: HasProjects
has_pull_requests:
type: boolean
x-go-name: HasPullRequests
has_releases:
type: boolean
x-go-name: HasReleases
has_wiki:
description: is the wiki enabled
type: boolean
x-go-name: HasWiki
has_wiki_contents:
description: have wiki pages ever been created
type: boolean
x-go-name: HasWikiContents
html_url:
type: string
x-go-name: HTMLURL
id:
type: integer
format: int64
x-go-name: ID
ignore_whitespace_conflicts:
type: boolean
x-go-name: IgnoreWhitespaceConflicts
internal:
type: boolean
x-go-name: Internal
internal_tracker:
$ref: '#/definitions/InternalTracker'
language:
type: string
x-go-name: Language
languages_url:
type: string
x-go-name: LanguagesURL
link:
type: string
x-go-name: Link
mirror:
type: boolean
x-go-name: Mirror
mirror_interval:
type: string
x-go-name: MirrorInterval
mirror_updated:
type: string
format: date-time
x-go-name: MirrorUpdated
name:
type: string
x-go-name: Name
object_format_name:
description: ObjectFormatName of the underlying git repository
type: string
enum:
- sha1
- sha256
x-go-name: ObjectFormatName
open_issues_count:
type: integer
format: int64
x-go-name: OpenIssues
open_pr_counter:
type: integer
format: int64
x-go-name: OpenPulls
original_url:
type: string
x-go-name: OriginalURL
owner:
$ref: '#/definitions/User'
parent:
$ref: '#/definitions/Repository'
permissions:
$ref: '#/definitions/Permission'
private:
type: boolean
x-go-name: Private
release_counter:
type: integer
format: int64
x-go-name: Releases
repo_transfer:
$ref: '#/definitions/RepoTransfer'
size:
type: integer
format: int64
x-go-name: Size
ssh_url:
type: string
x-go-name: SSHURL
stars_count:
type: integer
format: int64
x-go-name: Stars
template:
type: boolean
x-go-name: Template
topics:
type: array
items:
type: string
x-go-name: Topics
updated_at:
type: string
format: date-time
x-go-name: Updated
url:
type: string
x-go-name: URL
watchers_count:
type: integer
format: int64
x-go-name: Watchers
website:
type: string
x-go-name: Website
wiki_branch:
type: string
x-go-name: WikiBranch
wiki_clone_url:
type: string
x-go-name: WikiCloneURL
wiki_ssh_url:
type: string
x-go-name: WikiSSHURL
x-go-package: forgejo.org/modules/structs
NotificationThread:
description: NotificationThread expose Notification on API
type: object
properties:
id:
type: integer
format: int64
x-go-name: ID
pinned:
type: boolean
x-go-name: Pinned
repository:
$ref: '#/definitions/Repository'
subject:
$ref: '#/definitions/NotificationSubject'
unread:
type: boolean
x-go-name: Unread
updated_at:
type: string
format: date-time
x-go-name: UpdatedAt
url:
type: string
x-go-name: URL
x-go-package: forgejo.org/modules/structs
NotificationCount:
description: NotificationCount number of unread notifications
type: object
properties:
new:
type: integer
format: int64
x-go-name: New
x-go-package: forgejo.org/modules/structs
responses:
NotificationThreadListWithoutPagination:
description: NotificationThreadListWithoutPagination - Notification threads without pagination headers
schema:
type: array
items:
$ref: '#/definitions/NotificationThread'
forbidden:
description: APIForbiddenError is a forbidden error response
schema:
$ref: '#/definitions/APIForbiddenError'
NotificationThreadList:
description: NotificationThreadList
schema:
type: array
items:
$ref: '#/definitions/NotificationThread'
headers:
X-Total-Count:
type: integer
format: int64
description: The total number of notification threads
NotificationThread:
description: NotificationThread
schema:
$ref: '#/definitions/NotificationThread'
NotificationCount:
description: Number of unread notifications
schema:
$ref: '#/definitions/NotificationCount'
notFound:
description: APINotFound is a not found error response
schema:
$ref: '#/definitions/APINotFound'
securityDefinitions:
AuthorizationHeaderToken:
description: API tokens must be prepended with "token" followed by a space.
type: apiKey
name: Authorization
in: header
BasicAuth:
type: basic
SudoHeader:
description: Sudo API request as the user provided as the key. Admin privileges are required.
type: apiKey
name: Sudo
in: header
SudoParam:
description: Sudo API request as the user provided as the key. Admin privileges are required.
type: apiKey
name: sudo
in: query
TOTPHeader:
description: Must be used in combination with BasicAuth if two-factor authentication is enabled.
type: apiKey
name: X-FORGEJO-OTP
in: header