3.8.11. Source stamps connector
- class buildbot.db.sourcestamps.SourceStampsConnectorComponent
This class manages source stamps, as stored in the database. A source stamp uniquely identifies a particular version of a single codebase. Source stamps are identified by their ID. It is safe to use sourcestamp ID equality as a proxy for source stamp equality. For example, all builds of a particular version of a codebase will share the same sourcestamp ID. This equality does not extend to patches: two sourcestamps generated with exactly the same patch will have different IDs.
Relative source stamps have a
revisionof None, meaning “whatever the latest is when this sourcestamp is interpreted”. While such source stamps may correspond to a wide array of revisions over the lifetime of a Buildbot installation, they will only ever have one ID.An instance of this class is available at
master.db.sourcestamps.Sourcestamps are represented by a
SourceStampModeldataclass with the following fields:ssidbranch(branch, orNonefor default branch)revision(revision, orNoneto indicate the latest revision, inwhich case this is a relative source stamp)
repository(repository containing the source; neverNone)created_at(timestamp when this stamp was first created)codebase(codebase this stamp is in; neverNone)project(project this source is for; neverNone)patch(aPatchModelorNone, see below)
PatchModelpatchid(ID of the patch)body(body of the patch, orNone)level(directory stripping level of the patch, orNone)subdir(subdirectory in which to apply the patch, orNone)author(author of the patch, orNone)comment(comment for the patch, orNone)
Note that the patch body is a bytestring, not a unicode string.
- findSourceStampId(branch=None, revision=Node, repository=None, project=None, patch_body=None, patch_level=None, patch_author=None, patch_comment=None, patch_subdir=None)
- Parameters:
branch (unicode string or None)
revision (unicode string or None)
repository (unicode string or None)
project (unicode string or None)
codebase (unicode string (required))
patch_body (bytes or unicode string or None) – patch body
patch_level (integer or None) – patch level
patch_author (unicode string or None) – patch author
patch_comment (unicode string or None) – patch comment
patch_subdir (unicode string or None) – patch subdir
- Returns:
ssid, via Deferred
Create a new SourceStamp instance with the given attributes, or find an existing one. In either case, return its ssid. The arguments all have the same meaning as in an
SourceStampModel.If a new SourceStamp is created, its
created_atis set to the current time.
- getSourceStamp(ssid)
- Parameters:
ssid – sourcestamp to get
no_cache (boolean) – bypass cache and always fetch from database
- Returns:
SourceStampModel, orNone, via Deferred
Get an
SourceStampModelrepresenting the given source stamp, orNoneif no such source stamp exists.
- getSourceStamps()
- Returns:
list of
SourceStampModel, via Deferred
Get all sourcestamps in the database. You probably don’t want to do this! This method will be extended to allow appropriate filtering.
- get_sourcestamps_for_buildset(buildsetid)
- Parameters:
buildsetid – buildset ID
- Returns:
list of
SourceStampModel, via Deferred
Get sourcestamps related to a buildset.
- getSourceStampsForBuild(buildid)
- Parameters:
buildid – build ID
- Returns:
list of
SourceStampModel, via Deferred
Get sourcestamps related to a build.