Skip to content
Merged
Show file tree
Hide file tree
Changes from 48 commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
379ca05
WIP: Vocabulary for Issue management
jaden-young Mar 4, 2018
5dba581
Changed meaning of OPEN and ACTIVE
jaden-young Mar 5, 2018
9066292
Added description for IssueAssigned
jaden-young Mar 20, 2018
b471188
Modified description of IssueDefined
jaden-young Mar 20, 2018
94a14a7
Removed second paragraph (#6)
BCurran94 Mar 28, 2018
8085e64
Merge pull request #7 from BCurran94/issue-6
jaden-young Mar 28, 2018
4e473fc
Moved data.issues into links. (#4)
jaden-young Mar 28, 2018
2633843
Add version history to IDE. Closes #15
jaden-young Mar 28, 2018
8bbdfc9
Added version history for ISM, Closes #13
jaden-young Mar 28, 2018
826d680
Added version history for IA. Closes #14
jaden-young Mar 28, 2018
b729cef
Moved data.issues into links. (#4)
jaden-young Mar 28, 2018
6ffa30c
Replace data.issues in IV with links (#5)
Brett-Knecht Mar 28, 2018
b7b811d
Added jsonschema for ISM (#21)
jaden-young Apr 8, 2018
aa77e2e
Add simple example for EiffelIssueStatusModifiedEvent (#11)
jaden-young Apr 8, 2018
94f302b
Added jsonschema for issue defined (#24)
BrandonRudiselNDSU Apr 9, 2018
23f3879
Move data.value into issue link types (#19)
Brett-Knecht Apr 9, 2018
192a523
WIP: Vocabulary for Issue management
jaden-young Mar 4, 2018
e999e90
Changed meaning of OPEN and ACTIVE
jaden-young Mar 5, 2018
de0870b
Added description for IssueAssigned
jaden-young Mar 20, 2018
ae8a419
Modified description of IssueDefined
jaden-young Mar 20, 2018
14707a8
Removed second paragraph (#6)
BCurran94 Mar 28, 2018
69f5911
Moved data.issues into links. (#4)
jaden-young Mar 28, 2018
bce1bd8
Add version history to IDE. Closes #15
jaden-young Mar 28, 2018
a309b9f
Added version history for ISM, Closes #13
jaden-young Mar 28, 2018
44cee69
Added version history for IA. Closes #14
jaden-young Mar 28, 2018
bad0d5f
Moved data.issues into links. (#4)
jaden-young Mar 28, 2018
6181219
Replace data.issues in IV with links (#5)
Brett-Knecht Mar 28, 2018
3981ce0
Added jsonschema for ISM (#21)
jaden-young Apr 8, 2018
c63a04f
Add simple example for EiffelIssueStatusModifiedEvent (#11)
jaden-young Apr 8, 2018
deb8092
Added jsonschema for issue defined (#24)
BrandonRudiselNDSU Apr 9, 2018
24a0c21
Move data.value into issue link types (#19)
Brett-Knecht Apr 9, 2018
3ff605c
Merging changes resulting from rebase/revert conflicts
jaden-young Apr 9, 2018
30b1c98
Issue link types reflect original issues.transition semantics (#27)
jaden-young Apr 9, 2018
f523e2a
Changed link type to reflect change in spec doc
jaden-young Apr 9, 2018
7070763
Reset copyright to Ericsson
jaden-young Apr 9, 2018
751351a
Add jsonschema and example for ID (#1) (#12)
BrandonRudiselNDSU Apr 10, 2018
e12f861
Add JSONSchema for IA (#3)
BCurran94 Apr 10, 2018
c451796
Removed trailing whitespace
jaden-young Apr 10, 2018
1755667
Removed unneded file
jaden-young Apr 10, 2018
445b33c
Add example of IA (#10)
BCurran94 Apr 10, 2018
95f6498
Replaced tabs with spaces
jaden-young Apr 10, 2018
4ef4e4a
Renamed version 1.1.1 to 2.0.0
jaden-young Apr 11, 2018
49f8af1
Elaborated on issue description
jaden-young Apr 11, 2018
bb76787
Added example clarifying DERESOLVED_ISSUE
jaden-young Apr 11, 2018
a0d5696
__must__ -> MUST, compy with IETF RFCs
jaden-young Apr 11, 2018
2bcdd38
Added inital status and category to ID
jaden-young Apr 11, 2018
39adacd
Removed misnamed/empty schema file
jaden-young Apr 11, 2018
b05a955
Changed `data.category` to free form string
jaden-young Apr 13, 2018
3099871
Fixed typos
jaden-young Apr 13, 2018
75b2ff7
Removed refs to ActT and TCT
jaden-young Apr 16, 2018
bf8a6e9
Removed initialStatus/initialCategory
jaden-young Apr 16, 2018
d9e0486
Removed ISM/IA
jaden-young Apr 16, 2018
281d3ad
Bumped version to 2.0.0
jaden-young Apr 16, 2018
47e849c
Bumped version to 2.0.0
jaden-young Apr 16, 2018
86b0c3c
Bumped version to 2.0.0
jaden-young Apr 16, 2018
dba95e8
Added link to ID in README
jaden-young May 16, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
242 changes: 242 additions & 0 deletions eiffel-vocabulary/EiffelIssueAssignedEvent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,242 @@
<!---
Copyright 2017 Jaden Young
For a full list of individual contributors, please see the commit history.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
--->

# EiffelIssueAssignedEvent (IA)
The EiffelIssueAssignedEvent declares that an issue defined by an
[EiffelIssueDefinedEvent](./EiffelIssueDefinedEvent.md) has been assigned to a
contributor. The fields of an __assignee__ in this event are intended to mirror
the fields of an __author__ in
[EiffelSourceChangeCreatedEvent](./EiffelSourceChangeCreatedEvent.md) to
facilitate traceability.

## Data Members
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not necessarily a request for change, but a reflection. We are now creating the same problem for people, as we are solving for issues: multiple events referencing people with free-form strings. Is the next step an EiffelPersonIdentifiedEvent?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mentioned this in the issue #187 description, and that's why IssueAssigned is marked optional. It does feel like a slippery slope.


### data.assignees
__Type:__ Object[]
__Required:__ Yes
__Description:__ A list of people this issue is assigned to.

#### data.assignees.name
__Type:__ String
__Required:__ No
__Description:__ The name of the assignee.

#### data.assignees.email
__Type:__ String
__Required:__ No
__Description:__ The email address of the assignee.

#### data.assignees.id
__Type:__ String
__Required:__ No
__Description:__ Any identity, username or alias of the assignee.

#### data.assignees.group
__Type:__ String
__Required:__ No
__Description:__ Any group or organization to which the assignee belongs.

## Links

### ISSUE
__Required:__ Yes
__Legal targets:__ [EiffelIssueDefinedEvent](./EiffelIssueDefinedEvent)
__Multiple allowed:__ No
__Description:__ Identifies the issue to which contributors are being assigned.

### CAUSE
__Required:__ No
__Legal targets:__ Any
__Multiple allowed:__ Yes
__Description:__ Identifies a cause of the event occurring. SHOULD not be
used in conjunction with __CONTEXT__: individual events providing __CAUSE__
within a larger context gives rise to ambiguity. It is instead recommended to
let the root event of the context declare __CAUSE__.

### CONTEXT
__Required:__ No
__Legal targets:__
[EiffelActivityTriggeredEvent](../eiffel-vocabulary/EiffelActivityTriggeredEvent.md),
[EiffelTestSuiteStartedEvent](../eiffel-vocabulary/EiffelTestSuiteStartedEvent.md)
__Multiple allowed:__ No
__Description:__ Identifies the activity or test suite of which this event
constitutes a part.

### FLOW_CONTEXT
__Required:__ No
__Legal targets:__
[EiffelFlowContextDefinedEvent](./EiffelFlowContextDefinedEvent.md)
__Multiple allowed:__ No
__Description:__ Identifies the flow context of the event: which is the
continuous integration and delivery flow in which this occurred – e.g. which
product, project, track or version this is applicable to.

## Meta Members
### meta.id
__Type:__ String
__Format:__ [UUID](http://tools.ietf.org/html/rfc4122)
__Required:__ Yes
__Description:__ The unique identity of the event, generated at event
creation.

### meta.type
__Type:__ String
__Format:__ An event type name
__Required:__ Yes
__Description:__ The type of event. This field is required by the recipient
of the event, as each event type has a specific meaning and a specific set of
members in the __data__ and __links__ objects.

### meta.version
__Type:__ String
__Format:__ [Semantic Versioning 2.0.0](http://semver.org/spec/v2.0.0.html)
__Required:__ Yes
__Description:__ The version of the event type. This field is required by the
recipient of the event to interpret the contents. Please see
[Versioning](../eiffel-syntax-and-usage/versioning.md) for more information.

### meta.time
__Type:__ Integer
__Format:__ Milliseconds since epoch.
__Required:__ Yes
__Description:__ The event creation timestamp.

### meta.tags
__Type:__ String[]
__Format:__ Free text
__Required:__ No
__Description:__ Any tags or keywords associated with the events, for
searchability purposes.

### meta.source
__Type:__ Object
__Format:__
__Required:__ No
__Description:__ A description of the source of the event. This object is
primarily for traceability purposes, and while optional, some form of
identification of the source is __HIGHLY RECOMMENDED__. It offers multiple
methods of identifying the source of the event, techniques which may be
select from based on the technology domain and needs in any particular use
case.

#### meta.source.domainId
__Type:__ String
__Format:__ Free text
__Required:__ No
__Description:__ Identifies the domain that produced an event. A domain is an
infrastructure topological concept, which may or may not corresponds to an
organization or product structures. A good example would be Java packages
notation, ex. com.mycompany.product.component or mycompany.site.division.
Also, keep in mind that all names are more or less prone to change.
Particularly, it is recommended to avoid organizational names or site names,
as organizations tend to be volatile and development is easily relocated.
Relatively speaking, product and component names tend to be more stable and
are therefore encouraged, while code names may be an option. You need to
decide what is the most sensible option in your case.

#### meta.source.host
__Type:__ String
__Format:__ Hostname
__Required:__ No
__Description:__ The hostname of the event sender.

#### meta.source.name
__Type:__ String
__Format:__ Free text
__Required:__ No
__Description:__ The name of the event sender.

#### meta.source.serializer
__Type:__ Object
__Format:__
__Required:__ No
__Description:__ The
[GAV](https://maven.apache.org/guides/mini/guide-naming-conventions.html)
coordinates of the serializer software used to construct the event.

##### meta.source.serializer.groupId
__Type:__ String
__Format:__ groupId
__Required:__ Yes
__Description:__ The groupId of the serializer software.

##### meta.source.serializer.artifactId
__Type:__ String
__Format:__ artifactId
__Required:__ Yes
__Description:__ The artifactId of the serializer software.

##### meta.source.serializer.version
__Type:__ String
__Format:__ version
__Required:__ Yes
__Description:__ The version of the serializer software.

#### meta.source.uri
__Type:__ String
__Format:__ URI
__Required:__ No
__Description:__ The URI of, related to or describing the event sender.

### meta.security
__Type:__ Object
__Format:__
__Required:__ No
__Description:__ An optional object for enclosing security related
information, particularly supporting data integrity. See
[Security](../eiffel-syntax-and-usage/security.md) for further information.

#### meta.security.sdm
__Type:__ Object
__Format:__
__Required:__ No
__Description:__ An optional object for properties supporting the [Strong
Distribution Model](http://www.cryptnet.net/fdp/crypto/strong_distro.html).
Note that this only addressed the _integrity_ of the Eiffel event, not its
_confidentiality_ or _availability_.

##### meta.security.sdm.authorIdentity
__Type:__ String
__Format:__
__Required:__ Yes
__Description:__ The identity of the author of the event. This property is
intended to enable the recipient to look up the appropriate public key for
decrypting the digest and thereby verifying author identity and data
integrity. The format of the author identity varies depending on the key
infrastructure solution used. Note that this requires the presence of a
Trusted Authority (TA) which the recipient can query for the correct public
key. The identity and location of the TA must never be included in the event
itself, as this would compromise the security of the solution.

##### meta.security.sdm.encryptedDigest
__Type:__ String
__Format:__
__Required:__ Yes
__Description:__ The encrypted digest. The cryptographic hash function and
the decryption algorithm to use, similarly to the Trusted Authority (TA),
must be known to the recipient. Note that the digest of the entire event is
affected by the value of this property. For this reason the input to the hash
function SHALL be the entire event unaltered in all parts except for this
property, which SHALL be replaced by an empty string.

## Version History
| Version | Introduced in | Changes |
| --------- | ------------------------------------------------------ | --------------------------------------- |
| 1.0.0 | Current version | Initial version. |

## Examples

Loading